View Full Version : [php] strano comportamento
arghideutis
20-02-2011, 16:24
Ciao,
non capisco come fa a non funzionare questo script, in pratica entra nel "foreach" ma non nel "if". Ho controllato i valori delle variabili con un echo e la condizione dell'if sembra rispettata...
Ho anche provato con strcmp() al posto degli === ma niente...
Cosa può essere che non va?
function checklogin($xml){
if (!empty($_POST['email']) && !empty($_POST['password']) && !isset($_COOKIE['logged'])){
foreach ($xml->user as $user) {
if ($user->password===$_POST['password'] && $user->mail===$_POST['email'] && $user->status==="ok"){
setcookie("logged",$_POST['email'],time()+3600*24*7);
break;
}
}
}
}
bobbytre
20-02-2011, 23:17
Ciao,
non capisco come fa a non funzionare questo script, in pratica entra nel "foreach" ma non nel "if". Ho controllato i valori delle variabili con un echo e la condizione dell'if sembra rispettata...
Ho anche provato con strcmp() al posto degli === ma niente...
Cosa può essere che non va?
function checklogin($xml){
if (!empty($_POST['email']) && !empty($_POST['password']) && !isset($_COOKIE['logged'])){
foreach ($xml->user as $user) {
if ($user->password===$_POST['password'] && $user->mail===$_POST['email'] && $user->status==="ok"){
setcookie("logged",$_POST['email'],time()+3600*24*7);
break;
}
}
}
}
senza sapere il contenuto delle variabili è difficile capire il comportamento del tuo codice.
Comunque prova ad usare l'operatore equal che è meno restrittivo al posto dell'operatore identical .
arghideutis
21-02-2011, 09:59
sono semplici string le variabili, non è che ci siano casini con la @?
arghideutis
21-02-2011, 15:06
leggendo in giro ho cambiato:
$user->password===$_POST['password']
con:
(string)$user->password===$_POST['password']
ma non cambia nulla....non è che sia un problema di altervista? (cmq ho impostato il php5 sul pannello di controllo di altervista)
grazie
bobbytre
21-02-2011, 22:01
hai fatto la prova come ti ho indicato , usando l'operatore == al posto dell'operatore === ?
arghideutis
21-02-2011, 23:11
Si ma niente da fare...
bobbytre
21-02-2011, 23:34
puoi postare i valori di queste variabili
$user->password
$user->mail
$user->status
$_POST
arghideutis
22-02-2011, 13:51
ti posso dire che facendo l'echo restituiscono la stessa identica stringa...quindi dovrebbe andare teoricamente...
malocchio
22-02-2011, 21:45
Il codice sembra corretto.
Usa var_dump. E' molto più chiaro come output ai fini del debug.
Non abbiamo la vista magica, quindi o dai delle informazioni aggiuntive o non potremo aiutarti in nessuna maniera.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.