$_POST che non mi passa i dati

Indirizzo

Nuovo Utente
20 Ago 2014
18
0
0
Buongiorno a tutti. Dopo parecchie ore passate a scornarmi con il problema in oggetto e averle provate tutte mi sono arreso e ricorro alla vostra benevola consulenza. Provo a riassumere i passi fatti per essere il più chiaro possibile.

[1] Ho scritto (ovviamente ispirandomi/copiando in questo sito) la classica procedura di registrazione di un utente, con tanto di captcha e dopo alcuni errori ora funziona tutto bene.

[2] Poi ho proseguito scrivendo lo script php che permette di resettare la password scordata dall'utente; per fare questo, l'utente deve indicare in un form l'e-mail data al momento della registrazione. E anche questo ora funziona.

[3] Il problema che passo ad esporre è nato nel momento in cui ho voluto inserire il captcha anche nello script del punto [2].

In buona sostanza il codice è:

PHP:
if( !isset($_POST['logSysforgotPass']) && !isset($_GET['resetPassToken']) && !isset($_POST['logSysforgotPassRePass']) ){
	       
            $html='<form action="'.$_SERVER['PHP_SELF'].'" method="POST">';
            	$html.="<img src='CaptchaSecurityImages.php?width=200&height=50&characters=6' /><br />";
				$html.="<input name='security_code' size='35' id='security_code' class='campi' maxlength='6'  type='text' placeholder='Enter the above control code (6 characters)'><br>";
				$html.="<label>$identName<br/><input type='text' id='loginSysIdentification' placeholder='Enter your e-mail' class='campi'  name='identification'/></label><br>";
				$html.="<br/><button class='btn-reset'  name='security_code' type='submit'>Reset my Password</button>";
				
            $html.="</form>";
                        
			echo $html; // questo mi pubblica il captcha, il campo da inserire in captcha, il campo da inserire l'e-mail ed il relativo bottone

Poi eseguo il controllo fra i 6 caratteri captcha generati casualmente e quelli che devo inserire io nel relativo campo, così:

PHP:
  session_start();

if( isset($_POST['security_code'])) {
   if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) {
		$controllo="1"; 
        echo "CODE OK";
		unset($_SESSION['security_code']);
   } else {
		$controllo="0";
        echo "CODE WRONG</br>";
        echo "$_SESSION['security_code'] vale: "
        echo $_SESSION['security_code'];
        echo "<br>$_SESSION['security_code'] vale: "
        echo $_POST['security_code'];
        
   }
}

Il risultato è questo:

immagine.jpg

Come si vede dalla figura, il confronto del captcha fallisce sempre perchè, mentre il codice casuale generato è presente in $_SESSION['security_code'], quello che introduco io $_POST['security_code'] è vuoto.
Perchè?
Grazie come sempre.
 
Ciao, così al volo vedo che hai dato lo stesso name ( name='security_code' ) anche al button del reset, di conseguenza perde il suo valore
 
Ciao, così al volo vedo che hai dato lo stesso name ( name='security_code' ) anche al button del reset, di conseguenza perde il suo valore

Grazie Ciric!!! Che dire avevo l'errore sotto il naso e continuavo a non vederlo! :(
Ora è tutto OK :quote:
Mi sei stato veramente d'aiuto.
Ringrazio anche borgo italia per laa conferma ;)
Buona serata a tutti.
 

Discussioni simili