Buongiorno, magari l'argomento è già stato trattato ma non ne vengo a capo. Sicuramente qualcuno di voi mi può dare un consiglio.
Il problema è questo, ho un form oramai ben sviluppato nel quale devo far registrare un utente, dopo aver processato i dati sia con js che php mi appare questo warning ma dal quale non riesco ad uscirne. Qua di seguito vi metto il motore del form
Il warning me lo da alla riga 205 e cioè
Sapete dirmi come mi cdevo regolare per evitare questo avviso?
Premetto che a parte questo il tutto funziona, la mai la ricevo e vengono inseriti i dati i tabella.
Grazie
Il problema è questo, ho un form oramai ben sviluppato nel quale devo far registrare un utente, dopo aver processato i dati sia con js che php mi appare questo warning ma dal quale non riesco ad uscirne. Qua di seguito vi metto il motore del form
PHP:
<?php
header ('Content-Type: text/html; charset=UTF-8'); //Codifica caratteri accentati TESTO
if(!isset($_GET['passkey'])){
if(!isset($_POST['invia'])){
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$nome = trim($_POST['nome']);
$cognome = trim($_POST['cognome']);
$età = trim($_POST['nascita']);
$username = trim($_POST['username']);
$email = trim($_POST['email']);
$interessi = trim($_POST['interessi']);
$password = trim($_POST['password']);
$password2 = trim($_POST['password2']);
Ci sono qua i controlli su email, controllo dns etc che ho omesso
//preparo un messaggio a vuoto per gli errori
$ok_ko="";
if(!ver_testo($username,6,15)){$ok_ko.="Username non corretto, deve essere compreso tra 6 e 15 caratteri compresi i caratteri jolly <br />";}
if(!ver_testo($password,6,12)){$ok_ko.="La password deve essere composta da 6 a 12 caratteri <br />";}
if(!ver_testo($password2,6,12)){$ok_ko.="La password di conferma non coincide con la prima <br />";}
if($password != $password2){$ok_ko.="Le password non coincidono <br />";}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){$ok_ko.="L'indirizzo email non è valido <br />";}
function controllodata($età){
//"/^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/"
if (!preg_match("/^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/", $età)) {
return false;
} else {
$arrayData = explode("/",$età );
$Giorno = $arrayData[0];
$Mese = $arrayData[1];
$Anno = $arrayData[2];
if(!checkdate($Mese,$Giorno,$Anno)){
return FALSE;
} else {
return TRUE;
}
}
}
if(!controllodata($età)){$ok_ko.="La data non è stata inserita in modo corretto <br />";}
//if(preg_match("/^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/", $età)){$ok_ko.="Devi inserire la tua età <br />";};
if($ok_ko == ""){
//se è rimasto vuoto non ci sono errori
// creazione di un codice di conferma in MD5
$codiceconferma = md5(uniqid(rand()));
$nome = mysql_real_escape_string(strtolower($nome));
$cognome = mysql_real_escape_string(strtolower($cognome));
$username = mysql_real_escape_string((strtolower($username))); //salvo il nickname tutto in minuscolo onde evitare problemi.
$email = mysql_real_escape_string(strtolower($email)); //metto in minuscolo la mail
//Verifico che non ci sia un username o una mail uguale a quello inserito nel form
//$verificauser = mysql_query("SELECT id FROM biblionet nuova ok WHERE username='$username' OR email='$email'");
//$contausermail = mysql_num_rows($verificauser);
//Prova user doppio
$verificauser = "SELECT * FROM biblionet nuova ok WHERE username = '$username' OR email = '$email'";
$risultatouser = mysql_query($verificauser);
$num_righe = mysql_num_rows($risultatouser);
// $recuperouser = mysql_query("SELECT * FROM biblionet nuova ok WHERE username = '$username' OR email = '$email'");
// $controllouser = mysql_num_rows($recuperouser);
if($num_righe > 0){
//$contauserdoppio = mysql_num_rows($risultatoverificauser);
//if($contauserdoppio > 0){
//if($contausermail > 0 ){
//if(mysql_num_rows($verificauseremail > 0)){
//avvisi e torni al form pulito
echo "ATTENZIONE: Username o Email già esistenti, scegline un altro. <br />";
echo "<meta http-equiv='Refresh' content='100; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
} else {
//Invio i dati dell'utente al db
$nome = mysql_real_escape_string($nome);
$cognome = mysql_real_escape_string($cognome);
$età = mysql_real_escape_string($età);
$username = mysql_real_escape_string($username);
$email = mysql_real_escape_string($email);
$interessi = mysql_real_escape_string($interessi);
$password = mysql_real_escape_string($password);
$inviautentitemp = "INSERT INTO biblionet_nuova_temp (codiceconferma, nome, cognome, età, interessi, username, email, password) VALUES ('$codiceconferma', '$nome', '$cognome', '$età', '$interessi', '$username', '$email', '$password')";
if($inviautentitemp){
//se tutto è OK da qua preparo l'invio della mail di conferma per l'avvenuta registrazione.
include_once("class.phpmailer.php");
$mail = new PHPmailer();
$mail->IsSMTP();
$mail->isHTML(true);
$mail->SMTPDebug = true;
$mail->Host = "smtp.fastwebnet.it";
$mail->Port = "25";
$mail->SMTPAuth = true;
$mail->Username = "pippo@aol.com";
$mail->Password = "xxxxxxxx";
// Impostazioni invio mail al cliente
$mail->Setfrom ("admin@biblionetsanmaurizio.com","Biblionet"); //Inserire la mail dell'amministratore ed il nome del sito
$mail->AddReplyTo("noreply@biblionetsanmaurizio.com","Amministratore");
$mail->AddAddress ($email); //Mail di chi si è iscritto che riceverà la richiesta di conferma
$mail->AltBody = "Il tuo client di posta non è settato per la ricezione in HTML";
$mail->Subject = "Conferma di registrazione al sito www.biblionetsanmaurizio.com";
//poi prova a modificare il testo da inviare
$testo="<p>Ecco il tuo codice di attivazione</p><br />";
$testo.="<p>Clicca sul link per confermare la registrazione</p><br />";
$testo.="<a href=\"http://siti/Biblionet%20Nuova%20OK/registrazione.php?passkey=$codiceconferma\">Clicca qui</a>";
$mail->Body =$testo;
if ($mail->Send()){
echo "Tra poco riceverai una mail con il codice di attivazione per confermare l'iscrizione";
echo "<meta http-equiv='Refresh' content='30; URL=Newindex.php'>";
} else {
echo "Si è verificato un errore di trasmissione riprova più tardi";
echo "<meta http-equiv='Refresh' content='30; URL=Newindex.php'>";
}
} else {
echo "ERRORE di connesione, ti preghiamo di riprovare più tardi<br />";
echo "<meta http-equiv='Refresh' content='30; URL=Newindex.php'>";
}
}
} else {
echo $ok_ko;
echo "<meta http-equiv='Refresh' content='300; URL=Newindex.php'>";
}
}
}
} else {
$passkey = htmlspecialchars($_GET['passkey']);
$sqlrecuperauser = "SELECT * FROM biblionet_nuova_temp WHERE codiceconferma = '$passkey'";
$risultatouser = mysql_query($sqlrecuperauser);
if($risultatouser) {
$contauser = mysql_num_rows($risultatouser);
if($contauser == 1){
$rows = mysql_fetch_array($risultatouser);
$nome = $rows ['nome'];
$cognome = $rows ['cognome'];
$età = $rows ['età'];
$username = $rows['username'];
$email = $rows['email'];
$interessi = $rows ['interessi'];
$password = $rows ['password'];
$passwordcript = md5($password);
$sqlconfermauser = mysql_query("INSERT INTO biblionet nuova ok (nome, cognome, età, username, email, interessi, password) VALUES ('$nome', '$cognome', '$età', '$username', '$email', $interessi', '$passwordcript'");
if ($sqlconfermauser == 1) {
echo "Il tuo account è stato attivato con successo, da adesso potrai accedere alle pagine del sito inserendo i tuoi dati.";
$sqleliminadati = mysql_query("DELETE FROM biblionet_nuova_temp WHERE codiceconferma = '$passkey'");
} else {
echo "C'è stato un errore, se hai sbagliato qualcosa riprova, altrimenti segnalacelo. Lo correggeremo il prima possibile!";
echo "<meta http-equiv='Refresh' content='30; URL=Newindex.php'>";
}
}
}
} //Chiudo il controllo sul invio dati alla seconda riga
//Chiudo if/else della passkey alla seconda riga
?>
Il warning me lo da alla riga 205 e cioè
PHP:
$num_righe = mysql_num_rows($risultatouser);
Premetto che a parte questo il tutto funziona, la mai la ricevo e vengono inseriti i dati i tabella.
Grazie