IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

authentification et redirection


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 1
    Par défaut authentification et redirection
    lors pour mon site web développé en PHP j'ai trois types d'utilisateurs qui sont déjà enregistrés dans la base de données , ces derniers se connectent via une même interface d'authentification et seront redirigé chacun vers son propre espace.
    Donc l'accès au site est limité seulement à ces utilisateurs. mais là seule la page d'administrateur est bloqué il m'affiche le message "Mauvais login/password"
    alors que ce n'est pas le cas
    les autres authentification sont fonctionnelles
    voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <?php
    session_start();
    //require('./includes/login.php');
     
    /*************************************/
    /*Proc?dure de connexion au base
    /***********************************/
     
    $host="127.0.0.1";
    $user="root";
    $password="root";
    $myconnex=mysql_connect($host,$user,$password) or die("connexion impossible");
    ////////////////////////////////// Test l'existance de la base et le nom de la base ////////////////////////
    $bdd="stage";
    mysql_select_db($bdd) or die ("erreur de connexion à la base de donn?es");
     
    if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['mot_de_passe']) && !empty($_POST['mot_de_passe']))) { 
      extract($_POST);
     
      // on recupère le password et le login  de la table qui correspond au visiteur
      $sql = 'SELECT * FROM `admin_smtp` WHERE login="'.mysql_escape_string($_POST['login']).'" AND mot_de_passe="'.mysql_escape_string(md5($_POST['mot_de_passe'])).'"';
      $result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
      $count=mysql_num_rows($result);
      $row=mysql_fetch_array($result); 
      mysql_free_result($result); 
      mysql_close();
     
     if($row['login'] != $login) {
        echo '<p>Mauvais login / password. Merci de recommencer</p>';
        include('./index.php'); // On inclut le formulaire d'identification
        exit;
      }	
      else {
      //connexion selon le type de l'utilisateur 
     
      switch ($row['statut']) {
      case 2:
        $_SESSION['login'] = $_POST['login']; 
             header('Location:./admin/services.php'); 
             exit();
    	     echo ("you logged in as admin"); 	
        break;
      case 0:
       $_SESSION['login'] = $_POST['login'];            
    		   header("location:./user/smtp_client.php");
                echo ("you logged in as client");
        break;
      case 1:
         $_SESSION['login'] = $_POST['login'];            
    		   header("location:./sup/smtp_sup.php");
                echo ("you logged in as supervisor");
        break;
     
    }
     }
      }
      else {
       echo '<p>Vous avez oublié de remplir un champ.</p>';
       include('./index.php'); // On inclut le formulaire d'identification
       exit;
     
    }
     
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pour la forme, tu peux faire un debugage toi même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if($row['login'] != $login) {
        echo '<p>Mauvais login / password. Merci de recommencer</p>
                 login saisie : ' . $login . ' - login trouvé ' . $row['login'];
    Sur le fond, ton code n'est pas génial :
    - empty inclus le test isset, donc pas la peine de mettre les deux
    - ton extract est inutile
    - l'extension mysql est obsolète
    - tu as mysql_num_rows mais tu n'en fais rien
    - ça n'a pas vraiment de sens de faire une comparaison des login puisque soit ils sont égaux (je ne parle pas de différence de casse) soit la requête ne retourne rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    session_start();
     
    $host="127.0.0.1";
    $user="root";
    $password="root";
    $myconnex=mysql_connect($host,$user,$password) or die("connexion impossible");
    $bdd="stage";
    mysql_select_db($bdd) or die ("erreur de connexion à la base de données");
     
    if (!empty($_POST['login']) && !empty($_POST['mot_de_passe'])) { 
      $sql = 'SELECT login FROM `admin_smtp` WHERE login="'.mysql_real_escape_string($_POST['login']).'" AND mot_de_passe="'.mysql_real_escape_string(md5($_POST['mot_de_passe'])).'"';
      $result = mysql_query($sql); 
      $count=mysql_num_rows($result);
      $row=mysql_fetch_array($result); 
     
     if ($count != 1) {
        echo '<p>Mauvais login / password. Merci de recommencer</p>';
        include('./index.php'); // On inclut le formulaire d'identification
        exit;
      }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [MySQL] Authentification et redirection
    Par magicpierre95 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 17/05/2009, 22h04
  2. Authentification et redirection
    Par moutey dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/04/2009, 13h37
  3. [ASP.net 2.0] Authentification et redirection
    Par Spoonnny dans le forum ASP.NET
    Réponses: 0
    Dernier message: 20/10/2008, 18h40
  4. Authentification et redirection
    Par KeKeMaN dans le forum MVC
    Réponses: 4
    Dernier message: 02/05/2007, 20h19
  5. authentification (puis redirection)
    Par vever88 dans le forum ASP
    Réponses: 12
    Dernier message: 25/04/2007, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo