Correction ithentification

Bonjour,
je compte sur vous tous pour cette correction.
merci

erreur qu 'il affiche :

Notice: Use of undefined constant link - assumed 'link' in c:\program files\easyphp1-7\www\gestionetudiant\connexion.php on line 34
Identifiant Inconnu! Retour
Notice: Undefined variable: row in c:\program files\easyphp1-7\www\gestionetudiant\connexion.php on line 47
Mot de Passe Incorrect! Retour

FICHIER CONNEXION
<body>
<?php session_start();

//test si la variable de session user existe pour verifier si l'authentification a ete effectuée
if(!isset($_SESSION['user'])){
echo "<center>Il faut être authentifié !</center>";
echo "<meta http-equiv=\"Refresh\" content=\"1;URL=connexion.php\">";
exit();
}
?>
<?php
$_SESSION['categorie']=$_POST['categorie'];
$_SESSION['Login']=$_POST['Login'];
$_SESSION['pw']=$_POST['pw'];
$c=$_POST['categorie'];
if($c==1){$t='eleve';} elseif($c==2 ){$t='maitre';} else{$t='lieu';}
$link=mysql_connect('localhost','root','root');
if (!link)
{
die ('<p>Impossible de se connecter : '.mysql_error().'<p>');
}
$db=mysql_select_db('gestionstage',$link);
if(!$db) {die ('<p>Impossible utiliser la base : '.mysql_error().'<p>');}
$Login=$_POST['Login'];
$query="select Nom,Prenom,Login,pw from $t where Login='$Login'";
$resultat=mysql_query($query);
if(mysql_num_rows($resultat)==0) { echo" Identifiant Inconnu!";
echo"<a href='index.php'> Retour </a>";}
else
$row=mysql_fetch_array($resultat, MYSQL_ASSOC);
if($row['pw']!=$_POST['pw']){
echo "Mot de Passe Incorrect!";
echo"<a href='index.php'> Retour </a>";}
else {echo"<p> Bienvenue<strong>".$row['Prenom']."".$row['Nom']."</strong>"."</p>";

}
?>
</body>

FICHIER FORMULAIRE
<form name ="form1" method="post" action="connexion.php"><h3 class="Style2">Connexion au systeme de Gestion des stages:</h3>
<p><strong><em> Parametre de Connexion:</em></strong></p>
<label>
<div align="left">
<input name="categorie" type="radio" value="checked">
<strong>Eleve</strong></div>
</label><br>
<label>
<div align="left">
<input name="categorie" type="radio" value="checked">
<strong>Maitre de stage</strong></div>
</label><br>
<label>
<div align="left">
<input name="categorie" type="radio" value="checked">
<strong> Responsable de site</strong></div>
</label><br>
<label>

<p align="left"><strong>Login</strong>:
<input type="text" name="Login">
</p>
<p align="left"><strong>Password</strong>:
<input type="password" name="pw">
</p>
<label></label>
<p align="center">
<input name type="submit"" value="OK""submit />
</p>
</form>
Configuration: Windows XP
Firefox 2.0.0.16

8 réponses

  1. bonsoir
    tout d'abord verifie bien tes variables par ce que au niveau de ton deuxieme if tu utilise link au lieu de $link
    ensuite pour la deuxième erreur pourquoi tu ajoutes MYSQL_ASSOC ?? à quoi il te sert je comprend pas enlève le et vérifie à nouveau ton code.
    0
    1. ok !
      je viens de le faire
      effectivement tu as raison.mais l'erreur persiste toujours
      voilà l'erreur qu'il m'affiche.

      dentifiant Inconnu! Retour
      Notice: Undefined variable: row in c:\program files\easyphp1-7\www\gestionetudiant\connexion.php on line 47
      Mot de Passe Incorrect! Retour

      merci pour votre aide
      0
      1. c'est pour vous montrer la correction et apparemment le probleme c'est au niveau de connexion

        <?php session_start();

        //test si la variable de session user existe pour verifier si l'authentification a ete effectuée
        if(!isset($_SESSION['user'])){
        echo "<center>Il faut être authentifié !</center>";
        echo "<meta http-equiv=\"Refresh\" content=\"1;URL=connexion.php\">";
        exit();
        }
        ?>
        <?php
        $_SESSION['categorie']=$_POST['categorie'];
        $_SESSION['Login']=$_POST['Login'];
        $_SESSION['pw']=$_POST['pw'];
        $c=$_POST['categorie'];
        if($c==1){$t='eleve';} elseif($c==2 ){$t='maitre';} else{$t='lieu';}
        $link=mysql_connect('localhost','root','root');
        if (!$link)
        {
        die ('<p>Impossible de se connecter : '.mysql_error().'<p>');
        }
        $db=mysql_select_db('gestionstage',$link);
        if(!$db) {die ('<p>Impossible utiliser la base : '.mysql_error().'<p>');}
        $Login=$_POST['Login'];
        $query="select Nom,Prenom,Login,pw from $t where Login='$Login'";
        $resultat=mysql_query($query);
        if(mysql_num_rows($resultat)==0) { echo" Identifiant Inconnu!";
        echo"<a href='index.php'> Retour </a>";}
        else
        $row=mysql_fetch_array($resultat);
        if($row['pw']!=$_POST['pw']){
        echo "Mot de Passe Incorrect!";
        echo"<a href='index.php'> Retour </a>";}
        else {echo"<p> Bienvenue<strong>".$row['Prenom']."".$row['Nom']."</strong>"."</p>";

        }
        ?>
        </body>
        0
        1. bonsoir
          envoie le code de la ligne 47
          j'espère que t'as enlevée MYSQL_ASSOC?
          0
          1. <body>
            <?php session_start();

            //test si la variable de session user existe pour verifier si l'authentification a ete effectuée
            if(!isset($_SESSION['user'])){
            echo "<center>Il faut être authentifié !</center>";
            echo "<meta http-equiv=\"Refresh\" content=\"1;URL=connexion.php\">";
            exit();
            }
            ?>
            <?php
            $_SESSION['categorie']=$_POST['categorie'];
            $_SESSION['Login']=$_POST['Login'];
            $_SESSION['pw']=$_POST['pw'];
            $c=$_POST['categorie'];
            if($c==1){$t='eleve';} elseif($c==2 ){$t='maitre';} else{$t='lieu';}
            $link=mysql_connect('localhost','root','root');
            if (!$link)
            {
            die ('<p>Impossible de se connecter : '.mysql_error().'<p>');
            }
            $db=mysql_select_db('gestionstage',$link);
            if(!$db) {die ('<p>Impossible utiliser la base : '.mysql_error().'<p>');}
            $Login=$_POST['Login'];
            $query="select Nom,Prenom,Login,pw from $t where Login='$Login'";
            $resultat=mysql_query($query);
            if(mysql_num_rows($resultat)==0) { echo" Identifiant Inconnu!";
            echo"<a href='index.php'> Retour </a>";}
            else
            $row=mysql_fetch_array($resultat);
            if($row['pw']!=$_POST['pw']){
            echo "Mot de Passe Incorrect!";
            echo"<a href='index.php'> Retour </a>";}
            else {echo"<p> Bienvenue<strong>".$row['Prenom']."".$row['Nom']."</strong>"."</p>";

            }
            ?>
            </body>

            voilà l'erreur qu'il m'affiche:

            Notice: Undefined index: categorie in c:\program files\easyphp1-7\www\gestionetudiant\connexion.php on line 28

            Notice: Undefined index: categorie in c:\program files\easyphp1-7\www\gestionetudiant\connexion.php on line 31
            Identifiant Inconnu! Retour
            Notice: Undefined variable: row in c:\program files\easyphp1-7\www\gestionetudiant\connexion.php on line 47

            Notice: Undefined variable: row in c:\program files\easyphp1-7\www\gestionetudiant\connexion.php on line 50

            Notice: Undefined variable: row in c:\program files\easyphp1-7\www\gestionetudiant\connexion.php on line 50

            Bienvenue
            0
            1. j'arrive à me connecter mais pas d'authentification c'est à dire meme si je tape le login et mot de pass il m'affiche donc je commence à ameliorer la situation.
              seulement si j'arrive à voir quelqu'un d'autre pour aller le plus rapidement possible.
              merci
              voila ce qu'il affiche

              Identifiant Inconnu! Retour Mot de Passe Incorrect! Retour
              0
              1. bonjour tout le monde
                je contenu à demander tjrs aux bonnes volontés de d me depanner.
                le probleme est que mes fichiers fonctionnent bien mais il ne m'affiche le message de bienvenue qd je me connecte avec mon login + mdp. et je crois que le problemem se trouve au niveau de cette ligne.

                je vous envoi encore le code

                <?php session_start();

                //test si la variable de session user existe pour verifier si l'authentification a ete effectuée
                if(!isset($_SESSION['user'])){
                echo "<center>Il faut être authentifié !</center>";
                echo "<meta http-equiv=\"Refresh\" content=\"1;URL=connexion.php\">";

                exit();
                }
                ?>
                <?php
                $_SESSION['categorie']=$_POST['categorie'];
                $_SESSION['Login']=$_POST['Login'];
                $_SESSION['pw']=$_POST['pw'];
                $c=$_POST['categorie'];
                if($c==1){$t='eleve';} elseif($c==2 ){$t='maitre';}elseif($c==3){$t='stage';} else{$t='lieu';}
                $link=mysql_connect('localhost','root','root');
                if (!$link)
                {
                die ('<p>Impossible de se connecter : '.mysql_error().'<p>');
                }
                $db=mysql_select_db('gestionstage',$link);
                if(!$db) {die ('<p>Impossible utiliser la base : '.mysql_error().'<p>');}
                $Login=$_POST['Login'];
                $query="select Nom,Prenom,Login,pw from $t where Login='$Login'";
                $resultat=mysql_query($query);
                if(mysql_num_rows($resultat)==0) { echo" Identifiant Inconnu!";
                echo"<a href='index.php'> Retour </a>";}
                else
                $row=mysql_fetch_array($resultat);
                if($row['pw']=$_POST['pw']){
                echo "Mot de Passe Incorrect!";
                echo"<a href='index.php'> Retour </a>";}
                else {echo"<p> Bienvenue<strong>".$row['Prenom']."".$row['Nom']."</strong>"."</p>";

                }
                ?>
                merci pour votre aide
                0
                1. salut je te donne un code php qui fonctionne c'est à toi de l'adapter à tes besoins

                  <?php

                  if(!empty($_POST))
                  {
                  // Le login est-il rempli ?
                  if(empty( $_POST["login"]))
                  { $message = 'Veuillez indiquer votre login svp !';
                  echo htmlspecialchars($_SERVER['REQUEST_URI']); }
                  // Le mot de passe est-il rempli ?
                  elseif(empty($_POST["passwd"]))
                  {
                  $message = 'Veuillez indiquer votre mot de passe svp !';
                  echo htmlspecialchars($_SERVER['REQUEST_URI']); }
                  // Le login est-il correct ?

                  else {
                  $login = $_POST["login"];
                  $passwd = $_POST["passwd"];
                  mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_passwd)
                  or die("Impossible de se connecter au serveur de bases de données.");
                  mysql_select_db($BD_base)
                  or die("Impossible de se connecter à la base de données.");

                  $requete = "SELECT * FROM admin ".
                  " WHERE login='$login' AND passwd='$passwd'";

                  $result = mysql_query($requete);

                  if ($enreg = mysql_fetch_array($result)) {

                  // Si une ligne a été trouvée c'est que le couple
                  // (identifant, mot de passe) est valide
                  $_SESSION["admin"] = TRUE;
                  $_SESSION["adminlogin"] = $login;
                  //la session est true alors je redirige l'admin vers une page appelée global.php
                  header("Location: /admin/global.php");

                  die();
                  }
                  /* } else{
                  $_SESSION["admin"] = FALSE;
                  //la session est false j'affiche un message d'erreur
                  $message = 'Mot de passe ou compte erroné Merci de réessayer!';
                  echo htmlspecialchars($_SERVER['REQUEST_URI']); }

                  }

                  ?>
                  bon courage
                  0