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

PHP & Base de données Discussion :

Site protégé par mot de passe


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 610
    Points : 66
    Points
    66
    Par défaut Site protégé par mot de passe
    bonjour je suis entraine de créer un site web dont il y a des page protéger par
    mot de passe mais se n'est pas la même chaque membre a une mot de passe qui est enregistrer dans la basse de donné j'ai connu comment créer une page web protéger par une mot de passe qui n'est pas dans la BD mais qui est enregistrer dans la BD je ne connais pas aideriez-moi pour réaliser cette idée

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    C'est l'hôpital qui se fout de la charité...
    Bref, pour répondre à hibate_allah, la seule différence consiste à aller chercher tes mots de passe dans la base. Si tu as une base MySQL, tu dois utiliser la fonction mysql_connect :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    		$connexion=@mysql_pconnect($serveur,$login,$pwd);
    		if (!$connexion) {
    			$message("Désolé, connexion au serveur $serveur impossible.\n");
    			$erreurRencontree=1;
    		}	
     
    		if (!@mysql_select_db($base,$connexion)) {
    			$erreurRencontree=1;
    			$message("Désolé, connexion à la base $base impossible\n");
    		}
    	}
    Tu dois connaitre le nom du serveur mysql, le nom de la base de données, le login et le mot de passe pour te connecter à la base.
    Ensuite, tu feras une requête sql pour comparer le couple (login/mot de passe ) saisis avec ceux présents dans la base.
    Enfin, fais quelques recherches sur le net (dans ce forum même), il y a plein de tutoriels très bien faits !

  3. #3
    Membre confirmé Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Points : 547
    Points
    547
    Par défaut
    Pour cela nous avons besoin de :

    - 30 gramme de Session.
    - 1 cuillerée à soupe de table MySQL
    - Une motte de fonction.
    - 100 gramme de formulaire
    et enfin une pincée de sécurité !
    But : Afficher un formulaire de connexion (login et password) pour une personne qui tente de se connecté. Si la personne est déjà connecté, on affiche la page!


    Les fichiers :
    secure.fonction.php
    secure.connexion.php
    secure.deconnexion.php

    La table :

    Une table dans votre base de donnée qui s'apellerai compte avec un champ login et un champ password

    La fonction :

    fichier : secure.fonction.fct.php

    Code php : 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
     
    <?php
     
    /**
    * Fonction getSecured()
    * -Vérifie si une personne est enregistré
    * @return string true retourne le formulaire de              
    * connexion si le visiteur n'est pas connecté.
    * @author SphynXz
    * @version 1.0 Developpez.com pour hibate_allah 
    * 
    */
     
    function getSecured()
    {
         //la session est déjà initialisé?
         if( !isset($_SESSION) )
         {
              session_start();
         }
         //La personne est-elle déjà enregistré?
         if( !isset($_SESSION['login']) )
         {
              require_once 'secure.connexion.php';
              exit();
         }
    }
     
    ?>

    Explication : Pour chaque page que vous désirez sécuriser, il vous faudra inclure le fichier et appeler la fonction getSecured(); en début de la page

    exemple pour votre page index :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
     
     
    //Sécurisation de la page
    require_once 'secure.fonction.fct.php';
    getSecured();
    ...

    Fichier : secure.connexion.php
    Code php/html : 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
     
    <?php
     
    /**
    * Page de connexion au site sécurisé
    * - Affiche le formulaire
    * - Le traite lorsqu'il est validé
    * @author SphynXz
    * @version 1.0 Developpez.com pour hibate_allah 
    * 
    */
     
    //le formulaire est-il validé?
    if( isset( $_POST['connexion'] ) && $_POST['connexion'] )
    {
     
    	//la session est déjà initialisé?
    	if( !isset($_SESSION) )
    	{
    	     session_start();
    	}
     
    	// oui ! donc traitement du formulaire
    	if(  isset( $_POST['login'] ) && !empty( $_POST['login'] ) && ( isset( $_POST['pass'] ) && !empty( $_POST['pass'] ) ) )
    	{
     
    		/* Sécurisation des données */ {
    			$login 		=	 htmlentities($_POST['login'], ENT_QUOTES);
    			$pass 		=	 htmlentities($_POST['pass'], ENT_QUOTES);
    		}
     
    		/* connexion au serveur */ {
    			$host 		=	 "localhost" ;
    			$user 		=	 "votre_compte" ;
    			$password	= 	"votre_password" ;
    			$base 		= 	"votre_nom_de_base_de_donnée" ;
    			mysql_connect($host, $user, $password) or die("erreur de connection à la base") ; // Connexion à MySQL
    			mysql_select_db($base) or die("erreur de selection de la base") ; // Sélection de la base
    		}
     
    		/* requètage pour vérifier l'existance de cet utilisateur */ {
    			$query 		= 	sprintf("SELECT COUNT(LOGIN) AS 'count' FROM compte WHERE login='%s' AND password='%s'", 
    							mysql_real_escape_string($login), 
    							mysql_real_escape_string($pass));		
    			$request 	=	mysql_query($query) or die("Erreur avec la requète : $query<br /> Motif : ".mysql_error());
    			$result		=	mysql_fetch_object($request);
    		}
     
    		/* traitement du résultat */ {
    			if(!$result->count)
    			$error 		=	 "Mauvais login et/ou mot de pass!";
    			else{
    			// c'est ici que la validation de l'utilisateur se fait!
    			$_SESSION['login'] = $login;
    			echo "Merci de vous être identifié $login. <a href=\"adresse_de_votre_site\">Cliquez ici pour acceder au site.</a>";
    			}
    		}
    	}
    }
     
    if( (!isset( $_POST['connexion'] ) && !$_POST['connexion']) || ( isset($error) && !empty($error) ) )
    {
    ?>
    <fieldset>
         <legend>Connectez vous!</legend>
         <form method="POST" action="secure.connexion.php">
         <p>
              <label for="login">Login : </label><input type='text' name='login' id='login'   />
         </p>
         <p>
              <label for="pass">Pass : </label><input type='password' name='pass' id='pass' />
         </p>
         <p>
              <input type='submit' value='Connexion' name='connexion'/>&nbsp;<span style="color:red;text-decoration:underline;"><?php echo $error; ?></span>
         </p>
         </form>
    </fieldset>
     
     
    <?php
    }
    ?>

    Explication :

    C'est le cœur de la sécurisation de vos données! cette page va afficher le formulaire de connexion si la personne n'est pas connecté ou si elle a fournit des fausses informations!

    Fichier : secure.deconnexion.php

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    //Sécurisation de la page
    require_once 'secure.fonction.fct.php';
    getSecured();
    unset($_SESSION);
    session_destroy();
     
    echo "Vous êtes à présent déconnecté!";
    ?>
    <a href="adresse_de_votre_site">Retour à l'accueil</a>

    Explication : Cette page va simplement déconnecter la personne

    Exemple d'une page sécurisé :

    Code php/html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    //Sécurisation de la page
    require_once 'secure.fonction.fct.php';
    getSecured();
     
    echo "Bonjour {$_SESSION['login']}! le code secret est : Sésam Ouvre toi ! ";
     
     
    ?>
    <a href="secure.deconnexion.php">Déconnexion</a>

    avec cette page, le code secret ne s'affichera que si la personne est connecté
    I don't know what will be used in the next world war, but the 4th will be fought with stones. - Albert Einstein
    Pour détourner un avion, il faut monter dedans - Frédéric beigbeder

  4. #4
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 610
    Points : 66
    Points
    66
    Par défaut
    bonjours
    alors il faut que j'ajoute une autre table qui contient les login et les mot de passe,puisque j'ai une table 'test' qui contient un champ 'mot_passe'

  5. #5
    Membre confirmé Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Points : 547
    Points
    547
    Par défaut
    dans ce cas tu peux adapter la requête sql en changeant la table compte par le nom de ta table et si le champ login s'appelle autre chose tu peux adapter
    I don't know what will be used in the next world war, but the 4th will be fought with stones. - Albert Einstein
    Pour détourner un avion, il faut monter dedans - Frédéric beigbeder

Discussions similaires

  1. [XL-2007] Liens hypertexte vers site protégé par mot de passe
    Par paulinegue dans le forum Excel
    Réponses: 0
    Dernier message: 27/06/2011, 10h59
  2. Réponses: 1
    Dernier message: 22/03/2007, 20h08
  3. [XP Pro]Partage protégé par mot de passe
    Par arkienou dans le forum Windows XP
    Réponses: 4
    Dernier message: 08/02/2007, 13h41
  4. Comment ouvrir une base Access protègée par mot de passe
    Par Le Pharaon dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 26/09/2006, 13h53
  5. Ouvrir classeur Excel "protégé" par mot de passe
    Par LostIN dans le forum Sécurité
    Réponses: 1
    Dernier message: 19/07/2006, 21h24

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