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 :

Création d'un systeme de connexion php/html/mysql


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2016
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Création d'un systeme de connexion php/html/mysql
    Re-salut la compagnie!
    Me voilà dans un nouveau problème :

    J'essaie de créer un système de connexion, mais ca n'arrive jamais là où j'aimerais que le code arrive, c'est à dire sur google.be... Pouvez-vous m'aider?
    Ma base de donnée : Cocoon
    Ma table : all_accounts
    Voici mon 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
    <?php
    if(isset($_POST['submit'])){
        $email= htmlentities(trim($_POST["email"]));
        $password= htmlentities(trim($_POST["password"]));
     
        if ($email&&$password){
     
    $hostname='localhost';
    $username='root';
    $sqlpassword='';
    $db = new PDO("mysql:host=$hostname;dbname=cocoon;charset=utf8mb4",$username,$sqlpassword);
    $password=md5($password);
    $res = $DB->query("SELECT COUNT(*) FROM all_accounts WHERE email ='$email'&&password ='$password'");
    $num_rows = $res->fetchColumn();    
    echo $num_rows;
    if ($num_rows==1){
        header('Location: http://google.be');
     
    }
        }
    }
    ?>
     
    <html>
        <head>
            <title>Cocoon - Connexion</title>
            <meta charset="UTF-8">
                    <meta name="viewport" content="width=device-width, initial-scale=1.0">
                            <link rel="stylesheet" href="css/principal.css">
     
        </head>
        <body>
            <img class="displayedVertical reduce" src="cocoon-logo.png" alt="Cocoon logo" />
     
            <div class="centered">
      <form class="login-form" method="POST" action="connexion.php">
        <label>
          <input type="email" name="email" required placeholder="Adresse e-mail ou mobile">
        </label>
          <br>
        <label>
          <input type="password" name="password" required placeholder="Mot de passe">
        </label>
          <br>
          <label>
        <input type="submit" value="Connexion">
        </label>
      </form>
                <a class="inscription" href="registration.html">S'inscrire sur Cocoon</a>
                <a class="smaller" href="index.html">Besoin d'aide?</a>
            </div>
     
     
        </body>
    </html>
    Merci d'avance pour! votre réponse

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2016
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    J'ai un peu changé mon code, mais rien n'y faire, ca ne m'envoie pas sur google.be

    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
    <?php
    $hostname='localhost';
    $username='root';
    $sqlpassword='';
    $conn = new PDO("mysql:host=$hostname;dbname=cocoon;charset=utf8mb4",$username,$sqlpassword);
     
    if(isset($_POST['Connexion'])){
        $email= htmlentities(trim($_POST["email"]));
        $password= htmlentities(trim($_POST["password"]));
     
    $password=md5($password);
     
    $query = $conn->prepare("SELECT COUNT(*) FROM 'all_accounts' WHERE 'email' ='$email' AND 'password' ='$password'");
    $query->execute();
    $count = $query->fetchColumn();    
    if ($count=="1"){
        $_SESSION['email'] = $email;
        header('Location: http://www.google.be');
     
    }
     
    }
    ?>
     
    <html>
        <head>
            <title>Cocoon - Connexion</title>
            <meta charset="UTF-8">
                    <meta name="viewport" content="width=device-width, initial-scale=1.0">
                            <link rel="stylesheet" href="css/principal.css">
     
        </head>
        <body>
            <img class="displayedVertical reduce" src="cocoon-logo.png" alt="Cocoon logo" />
     
            <div class="centered">
      <form class="login-form" method="POST">
        <label>
          <input type="email" name="email" required placeholder="Adresse e-mail ou mobile">
        </label>
          <br>
        <label>
          <input type="password" name="password" required placeholder="Mot de passe">
        </label>
          <br>
          <label>
        <input type="submit" name="Connexion" value="Connexion">
        </label>
      </form>
                <a class="inscription" href="registration.html">S'inscrire sur Cocoon</a>
                <a class="smaller" href="index.html">Besoin d'aide?</a>
            </div>
     
     
        </body>
    </html>

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2016
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Encore une fois le problème est résolu en changeant des trucs comme ça xD Quelqu'un pourrait m'expliquer? Voilà le nouveau 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
    <?php
    session_start();
    $hostname='localhost';
    $username='root';
    $sqlpassword='';
    $conn = new PDO("mysql:host=$hostname;dbname=cocoon;charset=utf8mb4",$username,$sqlpassword);
     
    if(isset($_POST['Connexion'])){
        $email= htmlentities(trim($_POST["email"]));
        $password= htmlentities(trim($_POST["password"]));
     
    $password=md5($password);
     
    $query = $conn->prepare("SELECT COUNT(*) FROM all_accounts WHERE password ='$password' AND email ='$email' ");
    $query->execute();
    $count = $query->fetchColumn();    
    if ($count=="1"){
        $_SESSION['email'] = $email;
        header('Location: http://google.be');
     
    }
     
     
    }
    ?>
     
    <html>
        <head>
            <title>Cocoon - Connexion</title>
            <meta charset="UTF-8">
                    <meta name="viewport" content="width=device-width, initial-scale=1.0">
                            <link rel="stylesheet" href="css/principal.css">
     
        </head>
        <body>
            <img class="displayedVertical reduce" src="cocoon-logo.png" alt="Cocoon logo" />
     
            <div class="centered">
      <form class="login-form" method="POST">
        <label>
          <input type="email" name="email" required placeholder="Adresse e-mail ou mobile">
        </label>
          <br>
        <label>
          <input type="password" name="password" required placeholder="Mot de passe">
        </label>
          <br>
          <label>
        <input type="submit" name="Connexion" value="Connexion">
        </label>
      </form>
                <a class="inscription" href="registration.html">S'inscrire sur Cocoon</a>
                <a class="smaller" href="index.html">Besoin d'aide?</a>
            </div>
     
     
        </body>
    </html>

  4. #4
    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
    On ne mets pas d'apostrophes pour encadrer les noms de bases, tables ou colonnes.

    Au passage également, tes htmlentities n'ont rien à faire ici : cette fonction sert pour afficher des valeurs dans une page HTML.
    Et MD5 c'est obsolète.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Pour compléter les remarques de sab' : tu utilises des requêtes préparées et tu passes les paramètres en dur Autant acheter une perceuse électrique et l'utilise sans la brancher, en tapant dessus avec un marteau...

    Et pour les mots de passe, utilise password_​hash pour l'enregistrement et password_​verify pour la vérification.

    En supposant que l'email soit unique dans la base et que tu ais appliqué password_hash au mot de passe à l’enregistrement, ça devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $query = $conn->prepare("SELECT password FROM all_accounts WHERE  email = :email ");
    $query->execute(array(':email' => trim($_POST["email"])));
     
    $valid = false;
    if ($result = $query->fetch()) {
        // email trouvé, on vérifie le mot de passe :
        $valid = password_verify(trim($_POST["email"]), $result['password']);
    }
     
    if ($valid) {
       // authentification ok, on continue...
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2016
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Hahaha elles sont pas mal tes métaphores xD

    Merci, j'ai bien compris et je change ça de suite!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/08/2014, 13h57
  2. [MySQL] connexion php et mysql
    Par algenerale dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 24/04/2009, 18h41
  3. [MySQL] Connexion PHP et MySQL pour des listes
    Par TSniper dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/04/2009, 00h43
  4. [MySQL] Connexion PHP objet / MySQL
    Par Erwan M. dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/03/2008, 16h08
  5. [Wamp] Connexion PHP et MySQL avec include
    Par Ni4k dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 10/07/2007, 19h55

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