|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Dec 2005
Città: Salerno
Messaggi: 529
|
[PHP] registrazione form su database
Ragazzi sono su piattaforma mac e non riesco a eseguire la query.
Devo utilizzare un database per un progetto all'università e stavo gestendo una registrazione e non riesco a inserire i dati, il codice prende input da una form e vanno a finire qui: Codice:
<?PHP // variabili di connessione // nome server, nome utente, // Password, nomedatabase, tabella $ServerName = "localhost"; $UserName = "root"; $Password = "madara"; $DbName = "EP"; $tbl_name="studente"; // la connessione al database e alla tabella $conn = mysql_connect($ServerName, $UserName, $Password) or die("CONNECTION NON RIUSCITA"); mysql_select_db($DbName, $conn); $nome = $_GET["nome"]; $cognome = $_GET["cognome"]; $universita=$_GET['universita']; $username = $_GET["username"]; $password = $_GET["password"]; $conferma=$_GET['conferma']; $email = $_GET["email"]; $universita = $_GET["universita"]; //Verifico il valore di $nome; if(chkEmail($email)) { if( (!empty($password)) and (!empty($conferma)) ){ if( $password!=$conferma ) echo"<center>le password non corrispondono : ricontrolla i campi password</center>"; else{ if( (empty($nome)) or (empty($cognome)) or (empty($username)) ) echo"<center>inserire tutti i campi è obbligatorio</center>"; else{ if( ($universita=="Salerno") or ($universita=="Londra") ){ $MySql = "SELECT * FROM '.$tbl_name.' WHERE user_name='$username'"; $Result = mysql_query($MySql,$conn) or die("Comunicazione al database fallita"); $rs = mysql_fetch_array($Result); $a1 = $rs['user']; $a2 = $rs['email']; $rs->close; if($a1 == $username){ die("Questo Nome utente già esiste!"); } $Result2 = mysql_query("SELECT * FROM '.$tb1_name.' WHERE e-mail='$email'") or die(mysql_query()); $rs2 = mysql_fetch_array($Result2); $a2 = $rs2['email']; $a3 = $rs2['user']; $rs->close; if($a2 == $email){ die("Questa email è già stata usata dall'utente: $a3"); } $query="Insert into `.$tbl_name.` (`nome`,`cognome`,`user_name`,`password`,'e-mail','universita') VALUES ('$nome','$cognome','$username','$password','$email','$universita')"; $password=d5(sha1(md5(sha1($password)))); //$query="Insert into ".$tb1_name." (`nome`,`cognome`,`user_name`,`password`,`e-mail`,`universita`) VALUES ('".$nome."','".$cognome."','".$username."','".$password."','".$email."','".$universita."')"; $result=mysql_query($query,$conn); // result ci serve x fare il controllo //mysql_close($conn); var_dump($query); if (!$result) die("errore registrazione"); else echo "<center>".$nome ." ti sei iscritto, ora sei riconosciuto come ".$username."</center>"; } else{ if(empty($universita)) echo"<center>Spiacente se non inserisce la sua università non può proseguire</center>"; else echo"<center>Spiacente la tua università non fa parte del progetto European Platform </center>"; } } } } else echo"<center>campi password non inseriti correttamente</center>"; } ?> <?php function chkEmail($email) { // elimino spazi, "a capo" e altro alle estremità della stringa $email = trim($email); // se la stringa è vuota sicuramente non è una mail if(!$email) { return false; } // controllo che ci sia una sola @ nella stringa $num_at = count(explode( '@', $email )) - 1; if($num_at != 1) { return false; } // controllo la presenza di ulteriori caratteri "pericolosi": if(strpos($email,';') || strpos($email,',') || strpos($email,' ')) { return false; } // la stringa rispetta il formato classico di una mail? if(!preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email)) { return false; } return true; } ?> Non riesco a capire perchè non riesco ad eseguirla è un problema del database che ho chiamato il nick con campo 'user_name' ? Forse dovrei togliere l' '_' . Cmq come errore mi restituisce : Da errore su questa riga : Codice:
$Result = mysql_query($MySql,$conn) or die("Comunicazione al database fallita"); Ultima modifica di Gacoment : 25-05-2010 alle 12:29. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2008
Città: Catania
Messaggi: 429
|
Credo che hai sbagliato a scrivere questa query:
Codice PHP:
Codice PHP:
Codice PHP:
__________________
Amd X2 5600+ Brisbane -- GIGABYTE MA790X DS4 (REV 1.0)-- POV NVIDIA 9600GS0 EXO -- 2X1GB KINGSTON DDR2 800Mhz -- SAMSUNG HD250HJ 250GB -- LG FLATRON 20" Trattive concluse: fgdac,k1ll3r,PhilAnselmo@Superjoint,danyrs92,emaborsa,ferone,Midia. Ultima modifica di darkito85 : 25-05-2010 alle 13:31. |
![]() |
![]() |
![]() |
#3 |
Bannato
Iscritto dal: Dec 2005
Città: Salerno
Messaggi: 529
|
Non è questo il problema, perchè ho visto che la sintassi con la concatenazione è corretta, cmq anche se ometto i punti l'errore è lo stesso, mi stampa la stringa della prima query di comunicazione fallita. Sinceramente sto uscendo pazzo
![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Quote:
Codice:
$MySql = "SELECT * FROM " . $tbl_name . " WHERE user_name='" . $username . "'"; Ultima modifica di ndakota : 25-05-2010 alle 16:18. |
|
![]() |
![]() |
![]() |
#5 | |
Bannato
Iscritto dal: Dec 2005
Città: Salerno
Messaggi: 529
|
Quote:
Codice:
<?PHP // variabili di connessione // nome server, nome utente, // Password, nomedatabase, tabella $ServerName = "localhost"; $UserName = "root"; $Password = "madara"; $DbName = "EP"; $tbl_name="studente"; // la connessione al database e alla tabella $conn = mysql_connect($ServerName, $UserName, $Password) or die("CONNECTION NON RIUSCITA"); mysql_select_db($DbName, $conn); $nome = $_GET["nome"]; $cognome = $_GET["cognome"]; $universita=$_GET['universita']; $username = $_GET["username"]; $password = $_GET["password"]; $conferma=$_GET['conferma']; $email = $_GET["email"]; $universita = $_GET["universita"]; //Verifico il valore di $nome; if(chkEmail($email)) { if( (!empty($password)) and (!empty($conferma)) ){ if( $password!=$conferma ) echo"<center>le password non corrispondono : ricontrolla i campi password</center>"; else{ if( (empty($nome)) or (empty($cognome)) or (empty($username)) ) echo"<center>inserire tutti i campi è obbligatorio</center>"; else{ if( ($universita=="Salerno") or ($universita=="Londra") ){ $MySql = "SELECT * FROM " . $tbl_name . " WHERE user_name='" . $username . "'"; $Result = mysql_query($MySql,$conn) or die("Comunicazione al database fallita"); $rs = mysql_fetch_array($Result); $a1 = $rs['user']; $a2 = $rs['email']; $rs->close; if($a1 == $username){ die("Questo Nome utente già esiste!"); } $MySql2 = "SELECT * FROM " . $tbl_name . " WHERE e-mail='" . $email ."'"; $Result2 = mysql_query($MySql2,$conn) or die("Comunicazione al database 2 fallita"); $rs2 = mysql_fetch_array($Result2); $a2 = $rs2['email']; $a3 = $rs2['user']; $rs->close; if($a2 == $email){ die("Questa email è già stata usata dall'utente: $a3"); } $query="Insert into `.$tbl_name.` (`nome`,`cognome`,`user_name`,`password`,'e-mail','universita') VALUES ('$nome','$cognome','$username','$password','$email','$universita')"; $password=d5(sha1(md5(sha1($password)))); //$query="Insert into ".$tb1_name." (`nome`,`cognome`,`user_name`,`password`,`e-mail`,`universita`) VALUES ('".$nome."','".$cognome."','".$username."','".$password."','".$email."','".$universita."')"; $result=mysql_query($query,$conn); // result ci serve x fare il controllo //mysql_close($conn); var_dump($query); if (!$result) die("errore registrazione"); else echo "<center>".$nome ." ti sei iscritto, ora sei riconosciuto come ".$username."</center>"; } else{ if(empty($universita)) echo"<center>Spiacente se non inserisce la sua università non può proseguire</center>"; else echo"<center>Spiacente la tua università non fa parte del progetto European Platform </center>"; } } } } else echo"<center>campi password non inseriti correttamente</center>"; } ?> <?php function chkEmail($email) { // elimino spazi, "a capo" e altro alle estremità della stringa $email = trim($email); // se la stringa è vuota sicuramente non è una mail if(!$email) { return false; } // controllo che ci sia una sola @ nella stringa $num_at = count(explode( '@', $email )) - 1; if($num_at != 1) { return false; } // controllo la presenza di ulteriori caratteri "pericolosi": if(strpos($email,';') || strpos($email,',') || strpos($email,' ')) { return false; } // la stringa rispetta il formato classico di una mail? if(!preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email)) { return false; } return true; } ?> |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Gli apici li metti solo intorno alle variabili dei campi stringa.
Codice:
query = "insert into " . $tbl_name. "(nome, cognome, user_name, password, e-mail, universita) VALUES ('$nome', '$cognome', '$username', '$password', '$email', '$universita')"; EDIT: ops, sorry. Penso tu ti riferisca alla select. Solo che quella sembra esatta. Ultima modifica di ndakota : 25-05-2010 alle 20:43. |
![]() |
![]() |
![]() |
#7 |
Bannato
Iscritto dal: Dec 2005
Città: Salerno
Messaggi: 529
|
Allora da errore sempre sulla seconda query e poi per controllare se inserimento della form viene correttamente nel database devo fare quell'if se è falso vuol dire che non è andato a buon fine giusto?
Perchè se è corretto come ho scritto non funziona nemmeno la query per la registrazione. Problema 1: $Result2 da il messaggio di errore Problema 2: se tralascio il precedente $query nell'if(!$result) stampa il messaggio di errore Codice:
<?PHP // variabili di connessione // nome server, nome utente, // Password, nomedatabase, tabella $ServerName = "localhost"; $UserName = "root"; $Password = "madara"; $DbName = "EP"; $tbl_name="studente"; // la connessione al database e alla tabella $conn = mysql_connect($ServerName, $UserName, $Password) or die("CONNECTION NON RIUSCITA"); mysql_select_db($DbName, $conn); $nome = $_GET["nome"]; $cognome = $_GET["cognome"]; $universita=$_GET['universita']; $username = $_GET["username"]; $password = $_GET["password"]; $conferma=$_GET['conferma']; $email = $_GET["email"]; $universita = $_GET["universita"]; //Verifico il valore di $nome; if(chkEmail($email)) { if( (!empty($password)) and (!empty($conferma)) ){ if( $password!=$conferma ) echo"<center>le password non corrispondono : ricontrolla i campi password</center>"; else{ if( (empty($nome)) or (empty($cognome)) or (empty($username)) ) echo"<center>inserire tutti i campi è obbligatorio</center>"; else{ if( ($universita=="Salerno") or ($universita=="Londra") ){ $MySql = "SELECT * FROM " . $tbl_name . " WHERE user_name='" . $username . "'"; $Result = mysql_query($MySql,$conn) or die("Comunicazione al database fallita"); $rs = mysql_fetch_array($Result); $a1 = $rs['user_name']; $a2 = $rs['email']; $rs->close; if($a1 == $username){ die("Questo Nome utente già esiste!"); } $MySql2 = "SELECT * FROM " . $tbl_name . " WHERE e-mail='" . $email ."'"; $Result2 = mysql_query($MySql2,$conn) or die("Comunicazione al database 2 fallita"); $rs2 = mysql_fetch_array($Result2); $a2 = $rs2['email']; $a3 = $rs2['user_name']; $rs->close; if($a2 == $email){ die("Questa email è già stata usata dall'utente: $a3"); } $password=(sha1(md5(sha1($password)))); $query = "insert into " . $tbl_name. "(nome, cognome, user_name, password, e-mail, universita) VALUES ('$nome', '$cognome', '$username', '$password', '$email', '$universita')"; $result=mysql_query($query,$conn); // result ci serve x fare il controllo var_dump($query); //sappiamo cosa ci restituisce la query if (!$result) die("errore registrazione"); else echo "<center>".$nome ." ti sei iscritto, ora sei riconosciuto come ".$username."</center>"; } else{ if(empty($universita)) echo"<center>Spiacente se non inserisce la sua università non può proseguire</center>"; else echo"<center>Spiacente la tua università non fa parte del progetto European Platform </center>"; } } } } else echo"<center>campi password non inseriti correttamente</center>"; } ?> <?php function chkEmail($email) { // elimino spazi, "a capo" e altro alle estremità della stringa $email = trim($email); // se la stringa è vuota sicuramente non è una mail if(!$email) { return false; } // controllo che ci sia una sola @ nella stringa $num_at = count(explode( '@', $email )) - 1; if($num_at != 1) { return false; } // controllo la presenza di ulteriori caratteri "pericolosi": if(strpos($email,';') || strpos($email,',') || strpos($email,' ')) { return false; } // la stringa rispetta il formato classico di una mail? if(!preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email)) { return false; } return true; } ?> Ultima modifica di Gacoment : 25-05-2010 alle 22:25. |
![]() |
![]() |
![]() |
#8 |
Bannato
Iscritto dal: Dec 2005
Città: Salerno
Messaggi: 529
|
Nessuna soluzione?
|
![]() |
![]() |
![]() |
#9 |
Bannato
Iscritto dal: Dec 2005
Città: Salerno
Messaggi: 529
|
ok il problema era la variabile e-mail nel database, non prendeva il trattino ora mettendo e_mail funziona
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:38.