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 :

Aide authentification par session PHP MySql (Débutant) [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Responsable d'équipe
    Inscrit en
    Novembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable d'équipe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 42
    Par défaut Aide authentification par session PHP MySql (Débutant)
    Bonjour à tous,
    Je sollicite votre aide pour la création d'un script d'ouverture de session via une base MySql.
    Je tiens à préciser que je débute avec php/mysql.
    Dans la mesure du possible quelqu'un pourrait-il m'envoyer un script déjà tout préparé pour que je comprenne.
    Ça fait plusieurs jours que je surf en essayant divers tuto mais à chaque fois ça bloque et les méthodes d'authentification diffèrent d'un site à un autre.
    Sinon si quelqu'un pouvait m'aiguiller...
    En partant d'un truc tout simple sans forcement avec les protocoles de sécurité je souhaite arriver à un truc du genre :
    index.php ==> Contient le formulaire d'authentification
    config.php ==> lié à toutes les pages du site par require_once et connecté à la base
    authentification.php ==> vérifie que le user et le password est conforme
    page1.php ==> si authentification réussi, session ouverte avec info de l'utilisateur enregistré sur la base.
    La ou je bloque c'est quel script ou méthode utiliser pour vérifier que les données du formulaire correspondent à la base.
    Toute aide serait le bienvenue
    Merci

  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
    Si tu as déjà essayé plein de tutos et que tu ne t'en sors pas, on ne va pas t'en redonner un de plus.
    Montre nous plutôt ton code le plus convaincant et dit nous ce que tu obtiens avec.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Responsable d'équipe
    Inscrit en
    Novembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable d'équipe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 42
    Par défaut
    Merci de m'avoir répondu.
    Le problème des tutos que j'ai essayé c'est qu'ils sont vieux et que certains scripts PHP sont inutilisable dans la version actuelle de PHP.
    J'essaie encore et dès que j'ai un truc un peu plus convenable je vous l'envoi.

  4. #4
    Membre averti
    Homme Profil pro
    Responsable d'équipe
    Inscrit en
    Novembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable d'équipe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 42
    Par défaut
    Bon mes codes sont pas super c'est juste pour comprendre le fonctionnement voici ma page de connexion : index.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
     
    <?php
    include('config.php')
    ?>
    <!DOCTYPE>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>Index</title>
    <link href="style.css" rel="stylesheet" />
    </head>
    <body>
    <p>Bonjour</p>
    <p>Bienvenue sur notre site.</p>
    <div class="content">
        <form action="connexion.php" method="post">
            <p>Veuillez entrer vos identifiants pour vous connecter:<p/>
            <div class="center">
                <label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" /><br />
                <label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
                <input type="submit" value="Connection"/>
    		</div>
        </form>
    </div>
    </body>
    </html>
    Voici ma page config.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
     
    <?php
    //On demarre les sessions
    session_start();
    	//se connecte à la base de données
    			try
    			{
    				$bdd = new PDO('mysql:host=localhost;dbname=basededonne','root','')	;		
    			}
    			catch (Exception $e)
    			{
    				die('Erreur : '.$e->getMessage());			
    			}
    			$reponse = $bdd->query('SELECT * FROM users');
    			?>
    Voici ma page de connexion : connexion.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
     
    <?php
    include('config.php');
    ?>
    <!DOCTYPE>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>Connexion</title>
    <link href="style.css" rel="stylesheet" />
    </head>
    <body>
        	<div class="header">
    	    </div>
    <?php
    $username = ($_POST['username']);
    $password = ($_POST['password']);
    echo $username;
    echo $password;
    function getLoginCheck($username, $password) 
    {
    	$username = ($username);
    	$password = ($password);
    }
    ?>
    <?php
    if(getLoginCheck($username, $password) = true) 
    { 
    echo "ca marche";
    }
    ?>
    	</body>
    </html>
    Ça marche pas.

    Merci pou toute l'aide que vous pourrez m'apporter.

  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
    Par défaut
    Pour savoir si le login et le mot de passe correspondent il faudrait peut être aller regarder dans la base de données
    Ici je fais comme si tes mots de passes sont stockés en clair dans ta base de données (ce qui n'est pas une bonne chose) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    include('config.php');
    $sth = $bdd->query ('SELECT username FROM users WHERE username = :username AND password = :password');
    $sth->execute(array(':username'=>$_POST['username'], ':password'=>$_POST['password']));
    if ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
         session_regenerate_id();
         $_SESSION['username'] == $row['username'];
         echo 'connecté';
    }
    Et ça (lire l'intégralité de la table users), tu le retires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = $bdd->query('SELECT * FROM users');
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre averti
    Homme Profil pro
    Responsable d'équipe
    Inscrit en
    Novembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable d'équipe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 42
    Par défaut
    Merci de ton aide.

    Ca a démarré la session. Mais j'ai un message d'erreur :

    Fatal error: Uncaught Error: Call to a member function execute() on boolean in /opt/lampp/htdocs/test9/connexion.php:28 Stack trace: #0 {main} thrown in /opt/lampp/htdocs/test9/connexion.php on line 28

    Du coup j'ai mit un else mais j'ai toujours le même message d'erreur.

    Voici à quoi ressemble l'assemblage :
    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
     
    <?php
    include('config.php');
    ?>
    <!DOCTYPE>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>Connexion</title>
    <link href="style.css" rel="stylesheet" />
    </head>
    <body>
        	<div class="header">
    	    </div>
    <?php
    $username = ($_POST['username']);
    $password = ($_POST['password']);
    echo $username;
    echo $password;
    function getLoginCheck($username, $password) 
    {
    	$username = ($username);
    	$password = ($password);
    }
    ?>
    <?php
    include('config.php');
    $sth = $bdd->query ('SELECT username FROM users WHERE username = :username AND password = :password');
    $sth->execute(array(':username'=>$_POST['username'], ':password'=>$_POST['password']));
    if ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
         session_regenerate_id();
         $_SESSION['username'] == $row['username'];
         echo 'connecté';
    }
    else {
        echo"erreur";
    }
    ?>
    	</body>
    </html>
    En te remerciant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Aide pour un code PHP/MySQL
    Par sara21 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/04/2010, 08h36
  2. get remplacer par session php
    Par kate59 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 03/06/2009, 18h46
  3. [Flash MX 2004] Php Mysql (débutant)
    Par mooky dans le forum Flash
    Réponses: 7
    Dernier message: 08/02/2006, 20h55

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