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 en php


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Points : 27
    Points
    27
    Par défaut Authentification en php
    salut tout le monde, c'est mon premier site web en php,
    j'ai un page index.hml qui renvoie un id et password , redirection vers la page traitement.php qui traite le mot de passse et id pour voir s'il s'agit d'un client, conseiller ou admin. J'ai 2 classes: client et administrateur : statuts = 0 admin et conseiller sinon.
    c'est le code de la page traitement.php:
    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
    <?php
    $link = mysqli_connect("localhost", "root", "", "comptebancaire");//or die("Error " . mysqli_error($con ));
    $query = "SELECT * FROM client where id='".$idClient."' And pwd='".$password."'";
    $query1 = "SELECT * FROM administrateur where id='".$id."' And pwd='".$password."'";
    $result = mysqli_query($link, $query);
    $result1 = mysqli_query($link, $query1);
    $res = mysqli_fetch_array($result);
    $res1 = mysqli_fetch_array($result1);
     
     
    if ((!isset($_POST['pwd'])) && (!isset($_POST['id']))) 
    {
        if (mysqli_num_rows($result)==0)
    		header('location:index.html');
    	else 
    {
    		session_start (); 
            $_SESSION['username'] = $_POST['id']; 
            $_SESSION['pwd'] = $_POST['pwd']; 
    		if ($_POST['id'] == $res['idClient'])
    					header('location:client.php');
       		else 
                    {
                        if ($res['statuts'] == 1)
    			    	header('location:admin.php');	
    		else
    				    header('location:conseiller.php');
     
                     }
     
     }
    }
    else 
    header('location:index.html');
     
    	mysqli_free_result($result);
    	mysqli_close($link);
    ?>
    mon probleme c'est que les condtitons ne sont pas valides:
    la premiere pour verifier si on na pas saisit une chaine vide et la deuxieme pour verifier l'identité de l'internaute.
    si j'execute le programme et sans rien saisir il me redirige vers la page conseiller.php, et si je saisis quelque chose il me redirige vers la page index!
    je deviens folle

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Citation Envoyé par soussou1010 Voir le message
    j'ai un page index.hml qui renvoie un id et password , redirection vers la page traitement.php qui traite le mot de passse et id pour voir s'il s'agit d'un client, conseiller ou admin.
    Cela renvoie comment ? Le formulaire est-il adressé vers cette page ? si oui $idClient et $password ne peuvent pas être renseignés... La seule façon qu'ils puissent être renseignés serait que cette page soit inclue (par un include ou un require) dans la page qui défini ces variables. Sinon, si le formulaire est adressé vers cette page, tu devrais utiliser $_POST['pwd'] et $_POST['id'] pour construire tes requêtes.
    Et pourquoi deux requêtes puisque apparemment tu n'en utilise qu'une ?

    Sinon pour tes conditions, évidemment elles ne sont pas bonnes. La fin d'une condition est symbolisée par une accolade fermante qui correspond à l'accolade ouvrante.
    Quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((!isset($_POST['pwd'])) && (!isset($_POST['id'])))
    cela veut dire littéralement : s'il n'existe pas de variable $_POST['pwd'] définie et s'il n'existe pas de variable $_POST['id'] définie, on fait le traitement ci-dessous ... sinon on exécute le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    header('location:index.html');
    	mysqli_free_result($result);
    	mysqli_close($link);
    Et au passage attention : quand on ne met d'accolage pour définir précisément un bloc de code, seule la première ligne qui suit un "if" ou un "else" est prise en compte pour l'exécution du code (et pas les lignes suivantes).

    Autre précision, quand on fait un header de redirection (vers une autre page) il faut toujours faire suivre par un exit

    Citation Envoyé par manuel php
    <?php
    header("Location: http://www.example.com/"); /* Redirection du navigateur */

    /* Assurez-vous que la suite du code ne soit pas exécutée une fois la redirection effectuée. */
    exit;
    ?>

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Ca manque de logique, tout ca...

    Et tu confonds !isset() et !empty()...

    N.B. Il est déconseillé de stocker les mots de passe en clair en base de données.

    Tu trouveras un script ici :
    Système de Gestion-Affichage de Nouvelles : Accès à la partie Administration

    (en mysql_ => à modifier en mysqli_)
    Dernière modification par Invité ; 07/12/2013 à 10h52.

Discussions similaires

  1. [Sécurité] Fenêtre d'authentification en php
    Par The Wretched dans le forum Langage
    Réponses: 7
    Dernier message: 05/08/2008, 17h26
  2. [Oracle] Authentification avec PHP
    Par billainfo dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 16/07/2007, 10h22
  3. [Sécurité] Authentification en php
    Par DrOOMMgba dans le forum Langage
    Réponses: 11
    Dernier message: 04/06/2007, 15h38
  4. authentification .htaccess / PHP
    Par nicoweb371 dans le forum Apache
    Réponses: 1
    Dernier message: 22/11/2006, 22h39
  5. [LDAP] Problème d'authentification via PHP
    Par navis84 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 21/07/2006, 10h45

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