|
|||||||
|
|
|
![]() |
|
|
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: 23:22.




















