Ragazzi, davvero... sto sclerando...
forse sarà una mia distrazione, non so...
cmq, allora: ho questo script di login, scritto fra ieri notte e oggi, che legge in un file di testo nickname e password degli utenti (memorizzati un utente x riga, secondo uno schema "a records", come se fossero tabelle, separati da dei caratteri separatori).
In pratica sono le solite verifiche, che vedono se nickname e pass coincidono e ti fanno entrare.
Ma in pratica è come se un IF non funzionasse...
anche se i due nicknames (quello immesso e quello rilevato nel txt) coincidono PERFETTAMENTE (verificato tramite echo), l'istruzione è come se "saltasse", dicendomi che il nickname non esiste
Nei commenti ho messo qualche spiegazione in più...
Sbaglio in qualcosa?Codice PHP:
session_start();
session_register('nickname');
include("txtop.php");
$indirizzo=$_GET['page']; $nickname=$_POST['nickname']; $password=$_POST['password'];
if(ereg("^[A-Za-z0-9_ -]+$",$nickname) and ereg("^[A-Za-z0-9_ -]+$",$password)){ // Solita verifica dei caratteri immessi...
$n_users=count(file("utenti.txt")); //Prende il numero degli utenti dal file
$found_nickname=false; $right_password=false; // "Inizializzazione" di due variabili bool
for($cu=1;$cu<=$n_users;$cu++){ //Ciclo for che scorre gli utenti
$at_nickname=leggirecord("utenti.txt",$cu,1); //Utente dell'attuale riga
$at_password=leggirecord("utenti.txt",$cu,2); //Pasword dell'attuale riga
// QUI AVEVO MESSO GLI ECHO DI VERIFICA //
if($nickname==$at_nickname){ //La riga incriminata: le ho provate tutte ma anche quando i due nicknames sono uguali l'istruzione non fa il suo dovere!
/* IL RESTO "SEMBRA" FUNZIONARE */
$found_nickname=true;
$rightpassword=$at_password;
if($password==$at_password){
$right_password=true;
}
}
}
if($right_password){ $all_done_ok=true; $_SESSION['nickname']=$nickname; }else session_unset();
$right_items=true;
}else session_unset();
if(!isset($all_done_ok)){
if(!$right_password) $errore="LA PASSWORD INSERITA NON E' CORRETTA!";
if(!$found_nickname) $errore="IL NICKNAME INSERITO NON ESISTE!";
if(!$right_items) $errore="IL NICKNAME O LA PASSWORD INSERITI CONTENGONO CARATTERI NON VALIDI!";
}