Pagina di login

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Ciao a tutti! In questo tutorial dil login mi dà questo errore:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\login\login.php on line 29
Nome Utente o Password errati


PHP:
<?php
// Includo la connessione al database
require('config.php');
 
// Se il modulo viene inviato...
if(isset($_POST['login']))
{
 
 // Dati Inviati dal modulo
 $cognome = (isset($_POST['cognome'])) ? trim($_POST['cognome']) : ''; // Metto nella variabile 'cognome' il dato inviato dal modulo, se non viene inviato dò di default ''
        $nome = (isset($_POST['nome'])) ? trim($_POST['nome']) : ''; // Metto nella variabile 'nome' il dato inviato dal modulo, se non viene inviato dò di default ''
 $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
 
 // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
 if (!get_magic_quotes_gpc()) {
     $cognome = addslashes($cognome);
        $nome = addslashes($nome);
  $pass = addslashes($pass);
 }
 
 // Crypto la password e la confronto con quella nel database
 $pass = md5($pass);
 
 // Controllo l'utente esiste
 $query = mysql_query("SELECT id FROM utenti WHERE cognome = '$cognome', nome = '$nome' AND pass = '$pass' LIMIT 1");
 
 // Se ha trovato un record
 if(mysql_num_rows($query) == 2)
 {
  // prelevo l'id dal database
  $login = mysql_fetch_array($query);
 
  // Creo una variabile di sessione
  $_SESSION['login'] = $login['id'];
 
  // reindirizzo l'utente
  header('Location: privata.php');
  exit;
 }
 // se non esiste da l'errore
 else
  die('Nome Utente o Password errati');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>
<body>
<form action="" method="post">
 <input name="cognome" type="text" id="cognome" value="COGNOME" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
 <input name="nome" type="text" id="nome" value="NOME" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
 <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
 <input name="login" type="submit" value="Login" /><br />
</form>
</body>
</html>
Confermo però che i nomi nel db vengono registrati, cognome, nome, pass ed email.

Originariamente c'erano solo i campi user e pass, io ho messo nome, cognome.

Dove sbaglio?

Grazie!
 
quel tipo di errore ti viene restituito nel caso in cui mysql_query() produce un risultato anomalo, prova a verificare la query in questo modo.

PHP:
$query = mysql_query("SELECT id FROM utenti WHERE cognome = '$cognome', nome = '$nome' AND pass = '$pass' LIMIT 1") or die (mysql_error());
 

Discussioni simili