Erreur de php

Eléphanteau du PHP | 48 Messages

19 janv. 2012, 22:47

j'ai un probleme avec ce script alors qu'apparement il devrait fonctionne :

<?php

// On démarre la session
session_start();
$loginOK = false; // cf Astuce


// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {

extract($_POST); // je vous renvoie à la doc de cette fonction

// On va chercher le mot de passe afférent à ce login
$sql = "SELECT login, pwd FROM user WHERE login = '".addslashes($login)."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

// On vérifie que l'utilisateur existe bien
if (mysql_num_rows($req) > 0) {
$data = mysql_fetch_assoc($req);

// On vérifie que son mot de passe est correct
if ($password == $data['mdp']) {
$loginOK = true;
}
}
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
$_SESSION['pseudo'] = $data['pseudo'];
$_SESSION['age'] = $data['age'];
$_SESSION['sexe'] = $data['sexe'];
$_SESSION['ville'] = $data['ville'];
}
else {
echo 'Une erreur est survenue, veuillez réessayer !';
}
?>

j'obtient cette erreur :

Erreur SQL :
SELECT login, pwd FROM bd_principale WHERE login = 'dfgsdg'

j'ai un doute sur ma bd :s
je ne comprend egalement pas ou se fait la connexion a ma bd

Je debute en php alors un peu d'indulgence ;p

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 janv. 2012, 23:19

À lire http://phpdebutant.org/article66.php afin de voir se connecter à mysql.

Tu devrais ajouter l'utilisation de la fonction mysql_error() dans le or die afin d'avoir un message d'erreur correct.
$r = Mysql_query($sql);
If ($r === false){
Echo 'erreur sql : '.mysql_error().'<br/>'.$sql;
}
else{
// traitement de la requête 
}
Par exemple cela permettra à te ce finir correctement.

Ajout une formule de politesse et c'est bon ;)

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 48 Messages

19 janv. 2012, 23:24

merci je teste ca de suite !

a tt de suite

Eléphanteau du PHP | 48 Messages

19 janv. 2012, 23:26

ok ca progresse mas nouvelle erreur que je note:


Parse error: syntax error, unexpected $end in C:\wamp\www\Test\verifLogin.php on line 44


la ligne 44 c'est:

?> lol hum ...

ViPHP
ViPHP | 2291 Messages

20 janv. 2012, 10:25

ok ca progresse mas nouvelle erreur que je note:


Parse error: syntax error, unexpected $end in C:\wamp\www\Test\verifLogin.php on line 44


la ligne 44 c'est:

?> lol hum ...
A mon avis il manque un } a la fin de la page
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 2278 Messages

20 janv. 2012, 12:34

Je vais grogonner, mais si le code était indenté, il serait plus commode à lire:
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) 
{ 
    extract($_POST); // je vous renvoie à la doc de cette fonction
    // On va chercher le mot de passe afférent à ce login
    $sql = "SELECT login, pwd FROM user WHERE login = '".addslashes($login)."'";
    $req = mysql_query($sql) or die('Erreur SQL :'.$sql);
     // On vérifie que l'utilisateur existe bien
    if (mysql_num_rows($req) > 0) 
    {
        $data = mysql_fetch_assoc($req);
       // On vérifie que son mot de passe est correct
       if ($password == $data['mdp']) 
       {
           $loginOK = true;
       }
   }
}

// Si le login a été validé on met les données en sessions
if ($loginOK) 
{
    $_SESSION['pseudo'] = $data['pseudo'];
    $_SESSION['age'] = $data['age'];
    $_SESSION['sexe'] = $data['sexe'];
    $_SESSION['ville'] = $data['ville'];
}
else 
{
    echo 'Une erreur est survenue, veuillez réessayer !';
}
semble indiquer que l'original est exact.
L'erreur vient sans doute d'un ajout AVANT
?>

La cause des erreurs se trouve TOUJOURS AVANT l'endroit où elles sont signalées.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD