allora non che io sia un mago del php ma questo ha sempre funzionato con php su linux... ora lo stesso con php5 su win... na ceppa!
ho uno script che posta su se stesso per fare un semplice login... intercetto l'invio dei dati:
if($_POST['invia']) {
print "submit";
$username = $_POST['username'];
$password = $_POST['password'];
$login->login($username, $password);
}
questo è il metodo che fa il login, un po brutale ma ha sempre funzionato:
function login($username, $password) {
$sql = "select * from users where username = '$username' and password = '$password' and confirm = 1";
$result = DB::query($sql);
if(mysql_numrows($result) == 1) {
$row = mysql_fetch_array($result);
session_start();
$_SESSION['sessid'] = $row['id'];
header("Location: /users");
exit;
}
else {
header("Location: /users/login.php");
exit;
}
}
la cosa incredibile è che fallisce all'istruzione:
if(mysql_numrows($result) == 1)
ma se scrivo
if(1)
fallisce lo stesso. insomma è la if.
se prima della if metto un print "ciccio" e un return il tutto viene esegiuito correttamente, viene stampata anche la print del primo script (print "submit". In caso contrario nemmeno quella che si trova prima della chiamata al metodo...
qualche suggerimento?
ciao e grazie
![]()