-
Login-Mission Impossible
sto x prendere a capate il pc...vi prego aiutatemi...
(qst file è incluso in un altro nel quale viene stampata la var $log)
Codice PHP:
<?
include 'users.php';
if(isset($_SESSION['usr']) && isset($_SESSION['psw'])){
for ($x = 0 ; $x < count($users) ; $x++) {
if ($_SESSION['usr'] == $users[$x]["usr"] && $_SESSION['psw'] == $users[$x]["psw"]){
if($_SESSION['usr'] == 'webmaster'){
$log='web';
}else{
$log='nor';
}
}
}
}elseif(isset($_POST['usr']) && isset($_POST['psw'])){
for ($x = 0 ; $x < count($users) ; $x++) {
if ($_POST['usr'] == $users[$x]["usr"] && $_POST['psw'] == $users[$x]["psw"]){
$_SESSION['usr'] = $_POST['usr'];
$_SESSION['psw'] = $_POST['psw'];
if($_POST['usr'] == 'webmaster'){
$log='web';
}else{
$log='nor';
}
break; //correzione
}else{
$log="<center>Login errato:<form name=\"login\" action=\"index.php\" method=\"post\">
<input type=\"text\" name=\"usr\" value=\"Nome Utente\" size=\"10\">
<input type=\"password\" name=\"psw\" value=\"\" size=\"10\">
<img src=\"im/login1.gif\" OnMouseOver=\"src='im/login.gif'\" OnMouseOut=\"src='im/login1.gif'\" OnClick=\"document.login.submit();\">
</form></center>";
}
}
}else{
$log="<center><form name=\"login\" action=\"index.php\" method=\"post\">
<input type=\"text\" name=\"usr\" value=\"Nome Utente\" size=\"10\">
<input type=\"password\" name=\"psw\" value=\"\" size=\"10\">
<img src=\"im/login1.gif\" OnMouseOver=\"src='im/login.gif'\" OnMouseOut=\"src='im/login1.gif'\" OnClick=\"document.login.submit();\">
</form></center>";
}
?>
a gurdarlo così nn sembra nulla di speciale...in teoria dovrebbe funzionare, ma nn nella pratica...nn capisco x quale motivo qnd il login viene sbalgiato la schermata di login errato viene visualizzata 2 volte, cioè qnd sbaglio, anke se dopo faccio il login corretto, la schermata di errore viene visualizzata ancora fino al prossimo reload della pagina...
grazie
-
è quasi normale...
se l'errore lo scrivi dentro il ciclo degli utenti è normale xke + utenti aggiungi + volte viene scritto lerrore
-
nn credo ke il problema sia quello, se fosse così, come hai detto anke tu, + utenti aggiungo + volte viene ripetuto l'errore, invece anke se gli utenti sn 10 l'errore viene ripetuto solo 2 volte (anke se l'asseganzione viene fatta + volte il valore di $log è sempre lo stesso)
grz ugualmente
edit: ho trovato l'erroreeeeeeeeeeee
dovevo fermare il for qnd verificava ke il login è corretto
-
Hai risolto applicando quello che diceva jostock...
-
nn ho applicato quello ke diceva jostoc, lui intendeva un altra cosa.
x risolvere il problema secondo jostoc il break l'avrei dovuto mettere nell'else e nn nell'if
,oppure avrei dovuto spostare l'esle fuori dal ciclo, ma nn avrei risolto nulla lo stesso, xkè, vedi, continuando la verifica anke dopo aver trovato la giusta corrispondenza alla fine sarebbe risultato sempre negativo l'esito della verifica, poichè era l'ultimo elemento dell'array a essere determinante.
jostoc invece diceva ke il problema era dovuto alla presenza dell'else all'interno del for, e aveva pure detto ke + sarebbero stai gli user + volte si sarebbbe ripetuta la schermata d'errore, ma nn è così...
cmq devo ringraziare jostoc xkè è stato rispondendo a lui ke mi è arrivata l' "illuminazione"