problema registrazione

  • Creatore Discussione Creatore Discussione ispanic
  • Data di inizio Data di inizio

ispanic

Utente Attivo
28 Ago 2014
119
0
0
Ciao ragazzi, ho creato una registrazione che valida il codice captcha se giusto o sbagliato e se questo è errato stampa a video: "il codice immesso è errato", il problema che stampando a video questa scritta la pagina si ricarica facendo sì che tutti gli altri campi ("Nome utente, Password ecc..") diventino vuoti.. C'è un modo per far sì che solamente la password e la conferma password si svuotino e gli altri rimangano?
 
Puoi fare che i dati inseriti dall'utente, cioè i dati che ti interessino, vengano salvati in una sessione così non li perdi, naturalmente una volta che è tutto apposto svuota la sessione
 
ciao
ti faccio un esempio
nella pagina di registrazione:
PHP:
<?php
session_start();//questi deve essere sempre la 1° istruzione
//...... tutto l'amabaradan della registrazione e/o accesso alle pagine riservate
//...
if($REGISTRAZIONE === true){//scrivo l'if a caso, voglio dire che la registrazione è andata a buon fine
	$_SESSION['utente']=$nome_utente;//passi in sessione il nome o la pass o l'user
	//e rimandi alla pagina riservata o dove ti serve es. ad una pagina che invia un'email di conferma
}else{//registrazione fallita
	//..rimandi dove vuoi es. alla index o di nuovo al form di registrazione
}
//...
?>
poi nella pagina riservata:
PHP:
<?php
session_start();//sempre prima
if(!isset($_SESSION['utente'])){
	//la sessione non esiste quindi tentativo di accesso non autorizzato
	header('location=dove_vuoi.php');//rimandi dove vuoi
}else{
	//la sessione esiste quindi l'utente si è registrato correttamente
	echo "ciao ".$_SESSION['utente']." fai quello che devi fare";
	//ecc.....
}
?>
come puoi vedere con la sessione ti porti dietro, da una pag all'altra, un valore
 
ciao
ti faccio un esempio
nella pagina di registrazione:
PHP:
<?php
session_start();//questi deve essere sempre la 1° istruzione
//...... tutto l'amabaradan della registrazione e/o accesso alle pagine riservate
//...
if($REGISTRAZIONE === true){//scrivo l'if a caso, voglio dire che la registrazione è andata a buon fine
	$_SESSION['utente']=$nome_utente;//passi in sessione il nome o la pass o l'user
	//e rimandi alla pagina riservata o dove ti serve es. ad una pagina che invia un'email di conferma
}else{//registrazione fallita
	//..rimandi dove vuoi es. alla index o di nuovo al form di registrazione
}
//...
?>
poi nella pagina riservata:
PHP:
<?php
session_start();//sempre prima
if(!isset($_SESSION['utente'])){
	//la sessione non esiste quindi tentativo di accesso non autorizzato
	header('location=dove_vuoi.php');//rimandi dove vuoi
}else{
	//la sessione esiste quindi l'utente si è registrato correttamente
	echo "ciao ".$_SESSION['utente']." fai quello che devi fare";
	//ecc.....
}
?>
come puoi vedere con la sessione ti porti dietro, da una pag all'altra, un valore

Grazie mille per l'aiuto, mi potresti dire cosa c'è di sbagliaot invece in questa stringa?

PHP:
if  (mysql_query ("SELECT * FROM users WHERE email = '$email'"))

{
    header ('location:errore_doppione.php');
    exit;

}
che se l'email è già utilizzata da un errore, il problema è che da sempre errore così
 
Dovresti aggiungere una stringa che contenga i dati di connessione

PHP:
$connessione=mysql_connect("localhost", "root", "");

Quindi adesso fai

PHP:
if  (mysql_query ($connessione,"SELECT * FROM users WHERE email = '.$email.'"))

{
    header ('location:errore_doppione.php');
    exit;

}
 
ciao
prova così
PHP:
<?php
//...
if (mysql_num_rows(mysql_query("SELECT * FROM users WHERE email = '$email'"))>0){
    header ('location:errore_doppione.php');
    exit;
} else{
	//.....
}
?>
con le vecchie mysql se la connessione è unica non serve metterla nella query, mentre con le nuove mysqli si.
poi passa comunque a mysqli
 
PHP:
$query_1 = "SELECT * FROM users WHERE email = '$email'";
$query_2 = mysqli_query($connessione, $query_1) or die('Errore');
if (mysqli_num_rows($query_2) != 0) 
{
header ('location:errore_doppione.php');
exit;
}

Mi da "Errore" il problema è che si trova nella stessa pagina di registrazione li funziona benissimo la registrazione
 
PHP:
$query_1 = mysqli_query($connessione, "SELECT * FROM users WHERE email='$email'");
if(mysqli_num_rows($query_1)>0)
{
header ('location:errore_doppione.php');
exit;
}
else{
// il processo è andato bene
}
 

Discussioni simili