Php probleme

Bonjour,
j'ai crée un formulaire qui envoie les donné a la bdd correctement ensuite j'ai crée une page login.php ou il y une connexion et quand la connexion est etablie est que sa reidrige la personne sa arrive sur une page ou il me dise error pouver vous me dire se qui va pas

voci ma page login.php :
<html>
<head>
<title>Connexion au site</title>
</head>
<body>
<form method="post" action="verifLogin.php">
<table border="0" width="400" align="center">
<tr>
<td width="200"><b>Vôtre login</b></td>
<td width="200">
<input type="text" name="login">
</td>
</tr>
<tr>
<td width="200"><b>Vôtre mot de passe<b></td>
<td width="200">
<input type="password" name="password">
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value="login">
</td>
</tr>
</table>
</form>
</body>
</html>

et voici ma page verifLogin.php :

<?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 pseudo, age, sexe, ville, mdp 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 !';
}
?>

merci
Configuration: Windows XP
Internet Explorer 7.0

11 réponses

  1. le probleme que tu as c'est la chaine de connection a la base de donnée
    <?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 pseudo, age, sexe, ville, mdp 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 !'; 
    } 
    ?>
    


    il manque quelque chose qui doit ressembler a sa :

    $dbHandler = mysql_connect( $dbHost, $dbUser, $dbPass );
    mysql_select_db( $db, $dbHandler );


    de preference a mettre dans un fichier a par.
    si tu utilise easyphp, les variables vont etre :
    $dbHost = 'localhost';
    $dbUser = 'root';
    $dbPass = '';
    $db = 'le nom de ta base'; 


    pour plus d'infos consulter ce site : http://www.asp-php.net/
    1. je ne vois pas ou c'est
      1. Comment ça ?
      2. C'est du code à ajouter...
      3. @pyschopathej'ai mis les donné jusqu'a la requet sql qu'est ce que je dois mettre
      4. @gui54je repond moi aussi car je suis dans le meme probleme donc je repond aussi
    2. en fait ce que je voudrais faire exactement c'est faire la meme chose mais je voudrais afficher autre chose que des info
      merci
      1. qu'est ce qu'il faut que je change dans mon code alors
        1. $dbHandler = mysql_connect( $dbHost, $dbUser, $dbPass );
          mysql_select_db( $db, $dbHandler );
          $resultat = mysql_query( $req, $dbHandler );

          Utilise un code comme ça.
          $dbHost est l'adresse du serveur mysql (localhost si tu travailles en local), $dbUser est le nom d'utilisateur, $dbPass est le mot de passe, $db est le nom de la base de données, $req est la requête SQL.
      2. non le seul utilisateur puissque que c'est un essay c'es moi yannic81
        1. Et bien il faudrait ouvrir la connexion explicitement.
      3. Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\teste\verifLogin.php on line 14

        Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\teste\verifLogin.php on line 14
        Erreur SQL :
        SELECT pseudo, age, sexe, ville, mdp FROM user WHERE login = 'max1395'
        1. Il y a un problème au niveau de la connexion à la base : est-tu sûr que l'utilisateur ODBC existe ?
      4. voci ma page login.php :
        <html> 
        <head> 
        <title>Connexion au site</title> 
        </head> 
        <body> 
        <form method="post" action="verifLogin.php"> 
        <table border="0" width="400" align="center"> 
        <tr> 
        <td width="200"><b>Vôtre login</b></td> 
        <td width="200"> 
        <input type="text" name="login"> 
        </td> 
        </tr> 
        <tr> 
        <td width="200"><b>Vôtre mot de passe<b></td> 
        <td width="200"> 
        <input type="password" name="password"> 
        </td> 
        </tr> 
        <tr> 
        <td colspan="2"> 
        <input type="submit" name="submit" value="login"> 
        </td> 
        </tr> 
        </table> 
        </form> 
        </body> 
        </html>


        et voici ma page verifLogin.php :

        <?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 pseudo, age, sexe, ville, mdp 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 !'; 
        } 
        ?>


        merci
        1. Quelle est l'erreur affichée sur la page ?
      5. voci ma page login.php : 
        <html> 
        <head> 
        <title>Connexion au site</title> 
        </head> 
        <body> 
        <form method="post" action="verifLogin.php"> 
        <table border="0" width="400" align="center"> 
        <tr> 
        <td width="200"><b>Vôtre login</b></td> 
        <td width="200"> 
        <input type="text" name="login"> 
        </td> 
        </tr> 
        <tr> 
        <td width="200"><b>Vôtre mot de passe<b></td> 
        <td width="200"> 
        <input type="password" name="password"> 
        </td> 
        </tr> 
        <tr> 
        <td colspan="2"> 
        <input type="submit" name="submit" value="login"> 
        </td> 
        </tr> 
        </table> 
        </form> 
        </body> 
        </html> 
        
        et voici ma page verifLogin.php : 
        
        <?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 pseudo, age, sexe, ville, mdp 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 !'; 
        } 
        ?> 
        

        merci
        1. Merci, mais j'espérais une indentation du code ^^ ! Pas grave, on va faire sans...
      6. Tu peux reposter le code avec les balises < code>< /code> stp, c'est beaucoup plus confortable à lire...