Ragazzi 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:
Per controllare che la registrazione è andata a buon fine devo verificare che la variabile della query sia 'false'?
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' '_' .
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"];
//$nome = preg_replace("/[^a-z0-9]+/i", "", $_GET['nome']);
//ad eliminare tutti i caratteri in una stringa che non sono numeri/lettere
//ctype_alnum() -> numeri e lettere
//$str = "CIAO"; $str .= "MONDO"; risultato $str = "CIAO $mondo";
//vedi funzione extract()
//mysql_real_escape_string fa l'escape dei caratteri speciali tipo
//$username_safe = mysql_real_escape_string($username) e nella query devo mettere per tutte le variabili xxxxx_safe per salvaguardarle
//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);
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;
}
?>
Per controllare che la registrazione è andata a buon fine devo verificare che la variabile della query sia 'false'?
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' '_' .