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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[eCommerce] Double identification


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut [eCommerce] Double identification
    bonsoir à tous,

    je débute dans le script php et je réalise un site internet qui permet de gérer une association de musique.
    je souhaite utiliser le site tant pour les identifications des adhérents que pour l'utilisation des employés.
    donc j'ai une fenêtre d'identification et je veux que le script exécute une action lorsque le login correspond à un adhérent et une autre action lorsque le login correspond à un employé.
    je vous mets le script que j'ai fait, pouvez-vous me le corriger?
    je vous remercie

    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
    <?php
     
    // Etablissement de la connexion avec le serveur
    $connexion=mysql_connect("localhost","root");
     
    // Test de la connexion
    if (!$connexion) {
    	echo "La connexion au serveur n'a pu être établie<BR>";
    	exit;
    }
     
    //Test de l'accès à la base
    if (!mysql_select_db("c.h.a.r.m.",$connexion)) {
    	echo "L'accès à la base n'est pas permis<BR>";
    	exit;
    }
     
     
    if(isset ($_POST) && !empty($_POST['identifiant']) && !empty($_POST['login'])) {
     
    $login=$_POST['identifiant'];
    $pwd=$_POST['login'];
    $adh="select NomAdh from adherents where NomAdh='".$login."'";
    $emp="select NomEmp from employes where NomEmp='".$login."'";
     
    	if (!empty($adh)) {
    	// on recupère le password de la table qui correspond au login du visiteur
    	$sql = "select MotDePasseAdh, NomAdh, PrenomAdh from adherents where NomAdh='".$login."'";
    	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    	$data = mysql_fetch_assoc($req);
     
    		if($data['MotDePasseAdh'] != $pwd) {
    			echo '<br>Mauvais identifiant ou mot de passe.<br> Merci de recommencer';
    		}
    		else {
    			session_start();
    			$_SESSION['NomAdh'] = $login;
     
    			header ("location: accueil_utilisateur.php");
    		}   
    	}
    	elseif (!empty($emp)) {
    	// on recupère le password de la table qui correspond au login du visiteur
    	$sql = "select MotDePasseEmp, NomEmp, PrenomEmp from employes where NomEmp='".$login."'";
    	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    	$data = mysql_fetch_assoc($req);
     
    		if($data['MotDePasseEmp'] != $pwd) {
    			echo '<br>Mauvais identifiant ou mot de passe.<br> Merci de recommencer';    
    		}
    		else {
    			session_start();
    			$_SESSION['NomEmp'] = $login;
     
    			header ("location: accueil_employe.php");
    		}   
    	}
    }
    ?>

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi avoir deux tables pour gérer des utilisateurs ?

  3. #3
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonsoir,

    pense à utiliser la fonction mysql_real_escape_string() afin de te protéger contre les injections SQL

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    bonsoir

    comment dois-je insérer cette fonction dans mon code?

    @sabotage : je suis obligé de faire deux table car ma base de donnée gère le prêts de disques à des adhérents et je dois pouvoir voir quel employé a fait la location.

  5. #5
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tout les utilisateurs etaient dans une même table, tu le pourrais aussi.

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    ma base est déjà créé avec tous les enregistrements et j'ai pas le temps de modifier ma base
    je voudrais juste faire fonctionner mon code de façon à ouvrir un espace adhérents lorsque c'est un adhérent qui se connecte et ouvrir un espace magasin lorsque c'est un employé qui se connecte
    donc merci à ceux qui me trouve une solution car c'est assez urgent, il faudrait qu'il soit fait pour la fin de la semaine

  7. #7
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    bonjour

    je reviens sur mon pb car je ne l'ai toujours pas résolu.
    j'ai créer une vue afin d'avoir tous mes personnes qui peuvent se connecter (adhérents, employé et administrateur)
    je vous mets le script que j'ai écrit ci-dessous
    mon erreur vient des if mais je comprend pas pourquoi
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    <?php
     
    // Etablissement de la connexion avec le serveur
    $connexion=mysql_connect("localhost","root");
     
    // Test de la connexion
    if (!$connexion) {
    	echo "La connexion au serveur n'a pu être établie<BR>";
    	exit;
    }
     
    //Test de l'accès à la base
    if (!mysql_select_db("c.h.a.r.m.",$connexion)) {
    	echo "L'accès à la base n'est pas permis<BR>";
    	exit;
    }
     
    if(isset ($_POST) && !empty($_POST['identifiant']) && !empty($_POST['login'])) {
     
    $login=$_POST['identifiant'];
    $pwd=$_POST['login'];
     
    	// on recupère le password de la table qui correspond au login du visiteur
    	$sql = "select Nom, Prénom, Motdepasse, adm from internautes where Nom='".$login."';";
    	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    	$data = mysql_fetch_assoc($req);
     
    		if($data['Motdepasse'] != $pwd) {
    			echo '<br>Mauvais identifiant ou mot de passe.<br> Merci de recommencer';
    		}
    		elseif ($data['adm']='N'){
    				session_start();
    				$_SESSIONEMP['Nom'] = $login;
     
    				header ("location: accueil_employe.php");
    			 }
    			elseif ($data['adm']='O'){
    					session_start();
    					$_SESSIONADM['Nom'] = $login;
     
    					header ("location: accueil_aministrateur.php");
    			}	
    				else
    					session_start();
    					$_SESSIONADH['Nom'] = $login;
     
    					header ("location: accueil_utilisateur.php");
    	}			
    ?>
    sur les pages destinataires il y a ce code
     <?php
     // Etablissement de la connexion avec le serveur
    $connexion=mysql_connect("localhost","root");
     
    // Test de la connexion
    if (!$connexion) {
    	echo "La connexion au serveur n'a pu être établie<BR>";
    	exit;
    }
     
    //Test de l'accès à la base
    if (!mysql_select_db("c.h.a.r.m.",$connexion)) {
    	echo "L'accès à la base n'est pas permis<BR>";
    	exit;
    }
     
    session_start();
    /*
    si la variable de session login n'existe pas cela siginifie que le visiteur
    n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
    acceder à l'espace membres
    */
     
    if(!isset($_SESSIONADH['Nom'])) {
      echo 'Vous n\'êtes pas autorisé à acceder à cette zone';
      header('location:accueil.php');
      exit;
      }
    else {
    $sql='SELECT Nom, Prénom, Motdepasse, adm from internautes WHERE Nom="'.$_SESSIONADH['Identifiant'].'";';
    $req = mysql_query($sql);
     
    while($data = mysql_fetch_array($req)){
    echo "Bienvenue ";
    echo $data['Prénom'];
    echo "&nbsp;";
    echo $data['Nom'];
    }
    }
    ?>
    donc je peux mettre n'importe quoi (que ça soit vrai ou faux) je retourne toujours sur ma page accueil.php

    quelqu'un aurait-il une solution?
    merci d'avance

  8. #8
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as mis des = au lieu de == dans tes conditions.

    De plus, tu ne proteges pas ton données dans les requêtes, ton site est donc ouvert aux injections SQL.

Discussions similaires

  1. Identification variables en double
    Par justine59670 dans le forum R
    Réponses: 1
    Dernier message: 27/10/2016, 13h11
  2. Double demande d'identification
    Par SkyCoke dans le forum SharePoint
    Réponses: 7
    Dernier message: 31/07/2009, 15h50
  3. [Double][NaN] identification d'un Type Not A Number
    Par bahamouth dans le forum Langage
    Réponses: 2
    Dernier message: 12/11/2004, 17h06
  4. String -> long double (_strlold ?)
    Par haypo dans le forum C
    Réponses: 7
    Dernier message: 25/07/2002, 20h22
  5. Réponses: 3
    Dernier message: 12/06/2002, 21h15

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