le 17/07/2010 à 10:52
erreur Notice
Merci LA GLOBULE pour ces indications que j'ai suivies.
J'ai échappé les variables mais cela n'a rien changé, en effet les pseudo de connexion utilisés ne comportaient pas de caractères spéciaux.
En continuant les essais j'ai constaté que si le SELECT n'aboutit pas, parce que le nom d'utilisateur est inconnu dans la table, MySql renvoie quand même TRUE avec une tableau vide. C'est surprenant. Cela apparaît avec le code ci-dessous qui détecte seulement l'erreur sur un test d'extraction de ligne :
if(!$ligne1 = mysql_fetch_object($resultat1))
Voici le code :
Finalement il me semble qu'utiliser l'opérateur @ pour ne pas afficher les erreurs, évite bien des complications.
Que penses-tu de tout cela ?
Gilbert
J'ai échappé les variables mais cela n'a rien changé, en effet les pseudo de connexion utilisés ne comportaient pas de caractères spéciaux.
En continuant les essais j'ai constaté que si le SELECT n'aboutit pas, parce que le nom d'utilisateur est inconnu dans la table, MySql renvoie quand même TRUE avec une tableau vide. C'est surprenant. Cela apparaît avec le code ci-dessous qui détecte seulement l'erreur sur un test d'extraction de ligne :
if(!$ligne1 = mysql_fetch_object($resultat1))
Voici le code :
if ( (!empty( $_POST['nom'])) AND (!empty( $_POST['password'])))
{
include(get_include_path() . 'connexion.php');
$nom_saisi = $_POST['nom'];
$password_saisi = $_POST['password'];
$paswd_saisi = crypt($password_saisi,'ig');
$requete1 = sprintf("SELECT * FROM pass WHERE pass_nom='%s'",
mysql_real_escape_string($nom_saisi));
$resultat1 = mysql_query($requete1,$connexion);
if(!$resultat1 ){
$message = 'Requete1 invalide : ' . mysql_error() ;
die($message);
}
if(!$ligne1 = mysql_fetch_object($resultat1)) {
$message = 'Erreur de connexion, reconnectez vous';
die($message);
}
$priv_fichier = $ligne1->pass_privilege;
$password_fichier = $ligne1->pass_pwd;
if($password_fichier == $paswd_saisi)
{
$_SESSION['pseudo'] = $nom_saisi;
Finalement il me semble qu'utiliser l'opérateur @ pour ne pas afficher les erreurs, évite bien des complications.
Que penses-tu de tout cela ?
Gilbert
