Possible Duplicate:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
Warning: mysql_num_rows() expects parameter 1 to be resource,script de connexion PHP ne fonctionne pas - lancer des erreurs
Je posté une question sur l'autre jour parce que mon script de connexion présentait simplement une page blanche, je me suis retourné sur les rapports d'erreur comme conseillé et résolu le problème, mais maintenant c'est un problème différent, quand je me connecte maintenant il me redirige parfois juste à l'écran de connexion, c'est l'emplacement pour rediriger si la connexion échoue (j'ai vérifié que j'utilise le bon mot de passe). De temps en temps, mais il apparaît l'erreur suivante.
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /Applications/MAMP/htdocs/PropSuite/login.php on line 24
Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/PropSuite/login.php:24) in /Applications/MAMP/htdocs/PropSuite/login.php on line 26
Ceci est mon code:
<?php
error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
session_start(); //must call session_start before using any $_SESSION variables
$username = $_POST['username'];
$password = $_POST['password'];
//connect to the database here
$hostname_PropSuite = "localhost";
$database_PropSuite = "propsuite";
$username_PropSuite = "root";
$password_PropSuite = "root";
$PropSuite = mysql_pconnect($hostname_PropSuite, $username_PropSuite, $password_PropSuite) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_PropSuite, $PropSuite);
$username = mysql_real_escape_string($username);
$query = "SELECT password, salt
FROM users
WHERE username = '$username';";
$result = mysql_query($query);
if(mysql_num_rows($result) < 1) //no such user exists
{
header('Location: http://localhost/PropSuite/index.php');
die();
}
$userData = mysql_fetch_array($result, MYSQL_ASSOC);
$hash = hash('sha256', $userData['salt'] . Hash('sha256', $password));
if($hash != $userData['password']) //incorrect password
{
header('Location: http://localhost/PropSuite/index.php');
die();
}
else
{
validateUser(); //sets the session data for this user
}
//redirect to another page or display "login success" message
header('Location: your-desired-login-location.php');
die()
//redirect to another page or display "login success" message
?>
Je suis assez nouveau pour PHP serait donc apprécier votre aide, par la façon dont je vais a probablement des commentaires au sujet de mettre les informations de base de données directement dans le script, ce sera fait à travers un fichier de connexion éventuellement.
[déjà envoyés par en-têtes PHP] (http://stackoverflow.com/questions/8028957/headers-already-sent-by-php) – deceze
http://stackoverflow.com/a/2973209/476 – deceze
Conseil: N'utilisez pas pconnect. C'est le mauvais choix dans ~ 99% de tous les cas. – Ron