- Home
- Categorie
- Coding e Sistemistica
- Coding
- Mancato riconoscimento di variabili identiche
-
Mancato riconoscimento di variabili identiche
Ciaooo a tutti!!!
Cerco di spiegarmi al meglio ma ho timore di non riuscire...
Da un semplice form registro su txt una ipotetica password. Tutto ok.
In un altro form richiedo l'inserimento della password per accedere ad una pagina. Lo script è il seguente.[PHP]
// INIZIO CODICE APERTURA E LETTURA FILE CON PASS Provaaaaaaaaaaaaaa
$filepassword = "pass.txt";
$handle = fopen($filepassword, "r");
$contenutopass = fread($handle, filesize($filepassword));
echo "$contenutopass";
fclose($handle);
// FINE CODICE APERTURA E LETTURA FILE CON PASS
// INIZIO CODICE VERIFICA PASSWORD
$password=$_POST['password'];//recupero la variabile globale var1 di tipo POST
$password = str_replace(" ", "", $password);
$password = trim($password);
$password = stripslashes($password);
if ($password=="$contenutopass"){ // PUNTO DI VERIFICA
echo ""; // PASSWORD RICONOSCIUTA CORRETTAMENTE
} else {
echo "Password Errata $password";
include("finale_panart_error.php"); // CARICAMENTO PARTE FINALE DELLA PAGINA
exit();
}
// FINE CODICE VERIFICA PASSWORD
[/PHP]La cosa assurda è che da verifica stampate a video con "echo" la variabile $contenutopass, che contiene i dati del file pass.txt, risulta corrispondere a $password, che è appunto quella inserita nel secondo form per cui richiedo la verifica.
Mi potreste aiutare???? sto veramente impazzendo!!!!!!
x
:():
-
Ciao, se ho capito bene a te non funziona la variabile passato con il $_post
Prova una di queste 2 pero non sono sicuro che funziona
prova 1
[php]// INIZIO CODICE VERIFICA PASSWORD
$password=$_POST['password'];//recupero la variabile globale var1 di tipo POST
$password .= str_replace(" ", "", $password);
$password .= trim($password);
$password .= stripslashes($password);
if ($password=='$contenutopass'){ // PUNTO DI VERIFICA
echo "Se Funziona mi stai leggento"; // PASSWORD RICONOSCIUTA CORRETTAMENTE
} else
{
echo "Password Errata $password";
include("finale_panart_error.php"); // CARICAMENTO PARTE FINALE DELLA PAGINA
exit();
}[/php]Prova 2
[php]
// INIZIO CODICE VERIFICA PASSWORD
$password= trim(stripslashes(str_replace(" ", "", $_POST['password'])));//recupero la variabile globale var1 di tipo POST
// se ti da errore prova questa[/
// $password = addslashes(ltrim(rtrim(strip_tags(stripslashes($_POST['password'])))));
if ($password=='$contenutopass'){ // PUNTO DI VERIFICA
echo "Se Funziona mi stai leggento"; // PASSWORD RICONOSCIUTA CORRETTAMENTE
} else
{
echo "Password Errata $password";
include("finale_panart_error.php"); // CARICAMENTO PARTE FINALE DELLA PAGINA
exit();
}[/php]
-
Ciao usaikarts,
hai controllato che in $contenutopass non ci siano dei \n?
-
Come no, certamente ho controllato.
-
Il mio problema non è tanto nel recupero del dato inviato da form. Ma il controllo di cosa è registrato sul file txt ($contenutopass) rispetto a ciò che viene ripreso da $_Post. Comunque da quanto ho capito non è proprio così scontanta come cosa...
-
Ho provato il tuo codice, il file pass.txt lo scritto a mano e funziona bene, tu come creai il file pass.txt?? Credo che l'errore sia nel salvataggio della password in pass.txt.
-
Grazie per l'interessamento. Il file lo scrivo in questo modo:
[php]
$var=@fopen("artisti"."/".$vardirectory."/"."pass.txt","x+");//apro il file .txt (modalità lettura/scrittura)
@fwrite($var,$password."\r");//scrivo la variabile del form nel file .txt
@fclose($var);//chiudo il file .txt[/php]Ancora non ne sono venuto fuori... comunque il file ovviamente me lo scrive... e da verifica con comando echo sembra tutto ok... però poi non passa... sigh sigh sigh!!!!!
-
Ciao usaikarts,
forse c'è un errore nella condizione che testi:
[PHP]
if ($password=='$contenutopass'){ // PUNTO DI VERIFICA
echo "Se Funziona mi stai leggento"; // PASSWORD RICONOSCIUTA CORRETTAMENTE
}
[/PHP]Io proverei così:
[PHP]
if ($password == $contenutopass){ // PUNTO DI VERIFICA
echo "Se Funziona mi stai leggento"; // PASSWORD RICONOSCIUTA CORRETTAMENTE
}
[/PHP]Ciao
-
Ciao, io personamente non ho mai usato x+, come il tuo esempio, queste sono i modi di lettura / scrittura di php + usati
la modalità per aprire un file hanno i seguenti simboli:
"r" -> apre il file in sola lettura;
"r+" -> apre il file in lettura ed in scrittura;
"w" -> apre il file in sola scrittura;
"w+" -> apre il file in lettura e scrittura;
"a" -> apre il file in sola scrittura e inserisce il puntatore alla fine del file ("w" lo inserisce all'inizio)
"a+" -> apre il file in lettura e scrittura inserendo il puntatore alla fine del file;.Quindi in teoria il tuo codice deve diventare cosi.
[php]
$var=@fopen("artisti"."/".$vardirectory."/"."pass.txt","w+");//apro il file .txt (modalità lettura/scrittura)
@fwrite($var,$password."\r");//scrivo la variabile del form nel file .txt
@fclose($var);//chiudo il file .txt
[/php]
-
A list of possible modes for fopen() using mode
'r' Open for reading only; place the file pointer at the beginning of the file.
'r+' Open for reading and writing; place the file pointer at the beginning of the file.
'w' Open for writing only; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.
'w+' Open for reading and writing; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it. 'a' Open for writing only; place the file pointer at the end of the file. If the file does not exist, attempt to create it.
'a+' Open for reading and writing; place the file pointer at the end of the file. If the file does not exist, attempt to create it.
'x' Create and open for writing only; place the file pointer at the beginning of the file. If the file already exists, the fopen() call will fail by returning FALSE and generating an error of level E_WARNING. If the file does not exist, attempt to create it. This is equivalent to specifying O_EXCL|O_CREAT flags for the underlying open(2) system call.
'x+' Create and open for reading and writing; place the file pointer at the beginning of the file. If the file already exists, the fopen() call will fail by returning FALSE and generating an error of level E_WARNING. If the file does not exist, attempt to create it. This is equivalent to specifying O_EXCL|O_CREAT flags for the underlying open(2) system call.
-
Ciao, ti chiedo scusa, non volevo dire che è sbagliato usare x+, ma di provare anche w+ e perchè no anche r+, il controllo if funziona e se fai un file pass.txt a mano e lo provi ti funziona, quindi le cose "credo" sono 2, il file pass.txt non è nella stessa cartelladel file che lo chiama per il controllo (ma non credo non funzionava neanche echo) , o salvi la password con qualche carattere speciale che echo non stampa.
-
Mi chiedi scusa?????? Ma che scherzi sono io che ti ringrazio ancora per l'interessamento... sono stato un pò brusco forse nel postare queste info senza un mio testo, ma andavo di fretta....!!! Davvero!!!!!!
Comunque avevo già testato anche questo tipo di variante!! (Purtroppo non ne esco fuori!!!!!!!!!!!!)
-
Se con echo va bene probabile il problema dello \n, che lo vedi solo dal fatto che nel sorgente della pagina dopo l'echo va a capo.
L'unica cosa possibile se l'echo funziona bene è quella.
-
Fai cosi, perchè l'errore c'è, ma non lo vediamo:), da quesllo che ho capito tu usi 2 form vero? Il primo ti crei la password da inviare al pass.txt e il secondo scrivi una password che va controllata tra quelle salvate nel pass.txt giusto?
Poi mettere il 1 form quello per creare la password che poi invii al file che la scrive nel pass.txt.
Ciao.
-
Ho risolto. Grazie a tutti. Era come diceva Thedarkita.... un cavolo di stupido errore \r nella compilazione del fwrite.... che scemo... che scemo.... che SCEMO!!!!!!!!!!!!!! Scusate tutti per il tempo perso e ancora grazie!!!!!
-
De Nada.