Visualizzazione risultati 1 fino 8 di 8

Discussione: Registrazione

  1. #1
    Guest

    Predefinito Registrazione

    Salve ragazzi,
    Ultimamente mi sto dedicando allo studio del PHP e di MySQL.
    Volendo testare le mie "abilità" ho voluto creare una sorta di registrazione con due pagine, una html e una php.
    Il funzionamento dovrebbe consiste nell'inserire nella pagina html i dati nome e cognome che con un form e un bottone rimanda alla pagina php dove vengono eseguiti i prelievi di dati, collegamento al DB e dovrebbero essere scritti anche i dati nei relativi campi.
    Il problema è che quando vao a fare una query per vedere la presenza di record mi restituisce che i campi sono vuoti.

    Codice pagina HTML:
    Codice HTML:
    <html>
    <head>
    <title>Registrazione</title>
    </head>
    <body>
    <form action="registrazione_com.php" method="post">
    Nome: <input type="text" name="nome" />
    <br>
    Cognome: <input type="text" name="cognome" />
    <br>
    <input type="submit" value="Invia dati" />
    </form>
    </body>
    </html>
    Codice pagina PHP:
    Codice PHP:
    <html>
    <head>
    <title>Registrazione completata</title>
    </head>
    <body>
    <?php
    $nome
    =$_POST["nome"];
    $cognome=$_POST["cognome"];

    $database=mysql_connect("localhost","[nome utente]","[password]");
    $selezione=mysql_select_db("[my_nomeutente (altervista)]");
    $dati=mysql_query("INSERT INTO utenti (ID,Nome,Cognome) VALUES (null,$nome,$cognome)");
    $chiusura=mysql_close($database);

    echo
    "Registrazione completata";
    ?>
    </body>
    </html>
    Fino all'invio dei dati ci sono perché provando a mettere un echo dopo le variabili nome e cognome me li restituisce entrambi, il problema di presenta durante le operazioni con il database.

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    Prima due domande che dovrebbero essere scontate, ma a volte la causa è questa. Quindi:
    Hai attivato il database?
    Hai creato la tabella "utenti"? (con le colonne "ID", "Nome", "Cognome"? Anche rispettando le maiuscole/minuscole?)


    Per il resto, non noto particolari problemi per cui lo script non dovrebbe funzionare.
    Quindi, la prima cosa da fare in questi casi, è utilizzare le funzioni di rilevamento degli errori, come la mysql_error()


    Ah, visto che stai imparando, non ha molto senso imparare a gestire database mysql con le funzioni "mysql_", visto che sono obsolete. Dovresti usare le funzioni "mysqli_" (sì: molto spesso per utilizzarle è sufficiente aggiungere la "i" dopo "mysql").

    Poi, occhio ai controlli dei dati, soprattutto evitare sql injection.

    Infine, può esserti utile dare un'occhiata a questo script che avevo fatto tempo fa.

    Ciao!
    Ultima modifica di alemoppo : 03-09-2013 alle ore 18.54.15

  3. #3
    Guest

    Predefinito

    Allora, il database è attivo alla versione standard.
    Le tabelle e le colonne corrispondono ai nomi.

    Ho provato ad usare la stringa mysql_error per individuare errori cambiando il codice così:

    Codice PHP:
    <html>
    <head>
    <title>Registrazione completata</title>
    </head>
    <body>
    <?php
    $nome
    =$_POST["nome"];
    $cognome=$_POST["cognome"];

    $database=mysql_connect("localhost","callofdutyfan","*****");
    $selezione=mysql_select_db("my_callofdutyfan");
    echo
    mysql_errno() . ": " . mysql_error(). "\n";
    $dati=mysql_query("INSERT INTO utenti (ID,Nome,Cognome) VALUES (null,$nome,$cognome)");
    echo
    mysql_errno() . ": " . mysql_error() . "\n";
    $chiusura=mysql_close($database);

    echo
    "Registrazione completata";
    ?>
    </body>
    </html>
    e in effetti una volta che premo il tasto e mi riporta alla pagina php mi appare:
    0: 1054: Unknown column '[nome inserito]' in 'field list'.

    Per quanto riguarda le funzioni "mysqli_" dove posso trovare qualcosa per capire come funzionano ?
    Ultima modifica di alemoppo : 03-09-2013 alle ore 19.14.38 Motivo: password nascosta

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    Citazione Originalmente inviato da callofdutyfan Visualizza messaggio
    e in effetti una volta che premo il tasto e mi riporta alla pagina php mi appare:
    0: 1054: Unknown column '[nome inserito]' in 'field list'.
    Sembra che non conosca la colonna del database. Ma il campo "ID" se è autoincrement si incrementa in automatico: non specificarlo nemmeno tra i parametri.

    Citazione Originalmente inviato da callofdutyfan Visualizza messaggio
    Per quanto riguarda le funzioni "mysqli_" dove posso trovare qualcosa per capire come funzionano ?
    Leggi qui.

    p.s: cerca di nascondere le password invece di scriverle in un forum pubblico!

    Ciao!

  5. #5
    Guest

    Predefinito

    Ho aggiunto le "i" alle funzioni mysql.
    Ho inoltre eliminato il campo ID come hai detto, questa volta non appaiono errori ma soltanto ": : "
    Ma comunque nella tabella non ci sono i dati.
    Ecco come appare l'errore:


  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    Stampa la query
    Codice:
    "INSERT INTO utenti (Nome,Cognome) VALUES ($nome,$cognome)"
    con una echo. Se i parametri son corretti, prova ad eseguirla da phpMyAdmin.

    Ciao!
    Ultima modifica di alemoppo : 03-09-2013 alle ore 20.07.25

  7. #7
    Guest

    Predefinito

    Il fatto è curioso perché con l'aggiunta della "i" alle funzioni appaiono i puntini "::", mentre se lascio com'era in precedenza da lo stesso errore.

    Inoltre se provo aggiungendo
    Codice PHP:
    echo $dati;
    non riporta nulla sullo schermo.

    Provando invece ad eseguire la query dal phpmyadmin riesco a inserire correttamente sia nome che cognome.

  8. #8
    Guest

    Predefinito

    Credo che l'errore sia dovuto ad una mancanza degli apici dove sono presenti le variabili da inserire nel db.
    Praticamente il codice dovrebbe essere questo:

    Codice PHP:
    $dati=mysql_query("INSERT INTO utenti (Nome,Cognome) VALUES ('$nome','$cognome')");

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •