Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problemi con inserimento dati nel DB con PHP

    Ciao a tutti ragazzi,
    ho creato uno script in php ma sto avendo dei problemi al momento dell'inserimento del dato nel campo della tabella...
    In breve vi spiego a cosa serve anche se penso non ce ne sia bisogno
    Dunque, lo script verifica se nella tabella 'utenti', nel campo 'ip' dell'utente 'XYZ' sono presenti, appunto, IP uguali a quello attuale e in tal caso impedisce la visualizzazione. In caso,invece, l'IP attuale non fosse ancora esistente, quindi è la prima volta che si accede alla pagina dal dispositivo, provvede anzitutto ad inserire l'IP attuale nel campo 'IP' dell'utente e poi mostra il contenuto.
    Vi posto qui sotto il codice e l'errore che mi viene restituito.... sperando che qualcuno riesca a trovare la soluzione, credetemi ne sto uscendo pazzo

    Ecco il codice PHP...
    codice:
    <?php$servername = "host";
    $username = "utente";
    $password = "psw";
    $dbname = "nome_db";
    $utente = "utente_XYZ";
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    
    
    $sql = "SELECT ip FROM account WHERE user='$utente'";
    $result = $conn->query($sql);
    
    
    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo "Lista Vecchia: " . $row["ip"]."<br>";
            $ip = $row["ip"];
        }
    } else {
        echo "PROBLEMA!";
    }
    
    
    $ipnow = $_SERVER['REMOTE_ADDR']; //RECUPERA IP DISPOSITIVO ATTUALE //
    $listaip = "$ip -- $ipnow<br>";   //MOSTRA GLI IP REGISTRATI E L'IP ATTUALE//
    echo "IP NOW: $ipnow<br>";        //MOSTRA IP ATTUALE//
    echo "Lista Nuova: $listaip<br>"; //MOSTRA GLI IP REGISTRATI E L'IP ATTUALE//
    
    
    if (strpos($ip, "$ipnow")==FALSE)
    {    
    
    
        $connessione = mysql_connect("host","utente","psw")or die("Connessione non riuscita: " . mysql_error());
           print (" Connesso con successo -");
    
    
        mysql_select_db("nome_db", $connessione) or die(" -Errore nella selezione del database -");
    
    
        $query = mysql_query("INSERT INTO account (ip) VALUES ('$listaip') WHERE user='$utente'",$connessione);
    
    
        if ($query==FALSE) die("- errore nella composizione della query -");
    
    
        mysql_close($connessione);
    
    
    }
    else
    print "NON PUOI PROCEDERE!!!";
    
    
    ?>
    Ecco qui il risultato che mi esce... (Gli ip sono "strani" perché lo sto provando su XAMPP)

    Lista Vecchia: ::14
    IP NOW: ::1
    Lista Nuova: ::14 -- ::1

    Connesso con successo -- errore nella composizione della query -

    Grazie a tutti per la collaborazione in anticipo

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ma perché mischi mysqli e mysql? Usane uno, mysqli.
    Dopo aver modificato tutto per usare mysqli, la seconda connessione non serve, perché l'hai già fatta all'inizio dello script, ma chiaramente non è solo per questo che ti dico di usare solo mysqli, è anche perché mysql è deprecato e perché usare 2 diversi driver non è una cosa da fare.

    Per vedere che problema c'è con la query, fanne l'echo invece di eseguirla e vedi se è corretta.

    Altra cosa, con strpos() si usa === non == perché se la stringa che cerchi è all'inizio, strpos() ritorna 0 che è == false (quindi ti genera un comportamento non voluto), ma non è === false (il che genera il comportamento corretto).
    Leggi la documentazione delle funzioni che usi, lì c'è scritto in evidenza in un Warning di questa cosa.

  3. #3
    Ciao Alhazred, anzitutto grazie mille per la risposta. Grazie ai tuoi consigli e di altri forum in giro ho risolto.
    Grazie Mille.

    A presto

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.