Aller directement au contenu
  • Catégories
  • Récent
  • Mots-clés
  • Populaire
  • Web
  • Utilisateurs
  • Groupes
Habillages
  • Clair
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Sombre
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Défaut (Aucun habillage)
  • Aucun habillage
Réduire
Melinyel

Melinyel

  1. Accueil
  2. Programmation
  3. Développement web
  4. PHP
  5. Créer un système de Connexion / Inscription en PHP

Créer un système de Connexion / Inscription en PHP

Planifié Épinglé Verrouillé Déplacé PHP
32 Messages 13 Publieurs 64.3k Vues
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • 4Spartan84 Hors-ligne
    4Spartan84 Hors-ligne
    4Spartan8
    a écrit sur dernière édition par
    #23

    Le 18/04/2017 à 19:57, zougui a dit :

    bonjour,

    pour moi cela ne marche pas meme avec le copier coller et en modifiant les identifiants pour se connecter a la base de donner quand je met le login et le mot de passe sa refresh la page mais sa ne fait rien et dans la base de donner il n'y ya ni dans login ni mot de passe d'ajouter

    Bonjour ! Je suis surpris que 3 ans après les messages sur ce tutoriel soient encore d'actualités, ça fait plaisir 😉

    Malheureusement celui-ci est complètement dépassé et ne permet pas de créer un système correctement sécurisé puisque les fonctions de PHP ont évolué depuis pas mal de temps !

    Tu peux toujours envoyer le code et activer les erreurs pour voir d'ou le problème peut venir, une fois cela fait n'hésite pas à les partager ici pour qu'on puisse jeter un coup d'oeil ! Bonne chance pour la suite 😛

    Cordialement, 4Spartan8 - Codeur PHP, JAVA, HTML, CSS

    1 réponse Dernière réponse
    0
    • Z Hors-ligne
      Z Hors-ligne
      zougui
      a écrit sur dernière édition par
      #24

      les erreurs sont déjà activées... le code

      accueil.php

      <!DOCTYPE html>
      
      <HTML>
      
      	<head>
      	
      		<meta content="prototype crystalcraft">
      		<meta charset="utf-8" />
      		<link rel="shortcut icon" href="img/icon 1.png" type="image/x-icon"/>
      		<link rel="apple-touch-icon" href="img/icon 1.png" type="image/x-icon"/>
      		<link rel="stylesheet" href="prototype_1.css"/>
      
      		<title>
      			accueil
      		</title>
      
      	</head>
      
      	<body>
      
      		<?php 
      		$header = file_get_contents('header.html');
      		echo $header;
      	 ?>
      
      	 <section>
      	 	<form method="post" action="inscription.php">
      			<legend>connexion au panel</legend>
      			<div class="form-group">
      				<label class="col-lg-2 control-label">login</label>
      				<div class="col-lg10">
      					<input type="text" class="form-control" name="login" placeholder="login">
      				</div>
      			</div><br/><br/><br/>
      
      			<div class="form-group">
      				<label class="col-lg-2 control-label">mot de passe</label>
      				<div class="col-lg-10">
      					<input type="password" class="form-control" name="password" placeholder="mot de passe">
      				</div>
      			</div>
      
      		<br/><br/><center><button type="submit" name="submit" class="btn btn-primary">connexion</button></center>
      	
      		</form>
      		</form>
      	 </section>
      
      	 <div id="horloge"> </div>
      
      	 <?php 
      		$header = file_get_contents('footer.html');
      		echo $header;
      	 ?>
      		
      	</body>
      
      </HTML>
      

      inscription.php

       <?php
      //Connexion à la BDD
        try
        {
        
          $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
          $bdd = new PDO('mysql:host=**;dbname=**;charset=utf8', '**', '**',$pdo_options);
        
        }
        
        catch(Exception $e)
        {
         die('Erreur :'.$e->getMessage());
        }
        
          if(ISSET($_POST['submit']))
      {
      
      //On créer les variables
      $login =   $_POST['login'];
      $password = $_POST['password'];
      $password = hash("sha256", $password);
      
      $req = $bdd->prepare('INSERT INTO MEMBRE(login, password) VALUES ($login, $password)');
      
      if(!empty($login)) {
      
      }else{
      ?>
      
      <b>mot de passe vide !</b>
      
      <?php
      }
      
      if(empty($login) && empty($password))
      {
      
      }else{
      
      session_start();
      $_SESSION['login'] = $_POST['login'];
      header('Location: accueil.php');
      
      }
      
      }
         
         ?>
      

      une des erreurs venais de cette ligne

       req->execute(array("login" => $login, "password" => $password));  
      

      mais ce n'était pas la seul

      1 réponse Dernière réponse
      0
      • 4Spartan84 Hors-ligne
        4Spartan84 Hors-ligne
        4Spartan8
        a écrit sur dernière édition par
        #25

        Il y a 2 heures, zougui a dit :

        ...

        D'accord, écoute je vais te renvoyer un code propre dans quelques minutes, tu l'essayera et me dira si ça marche (j'éditerai mon message).

        J'ai une autre question, pourquoi faire ça ? :

         <?php 
        		$header = file_get_contents('footer.html');
        		echo $header;
        ?>
        

        Si tu veux inclure le code d'une autre page ici tu n'a qu'à faire un include :

        <?php
        	include('tapage.html');
        ?>
        

        Cordialement, 4Spartan8 - Codeur PHP, JAVA, HTML, CSS

        1 réponse Dernière réponse
        0
        • Z Hors-ligne
          Z Hors-ligne
          zougui
          a écrit sur dernière édition par
          #26

          ok merci, pour le

          <?php 		$header = file_get_contents('footer.html');		echo $header;?>
          	
          
          1 réponse Dernière réponse
          0
          • 4Spartan84 Hors-ligne
            4Spartan84 Hors-ligne
            4Spartan8
            a écrit sur dernière édition par
            #27

            Alors, voilà la page accueil.php :

            <!-- ACCUEIL -->
            <html lang="FR">
            	<head>
            		<meta charset="UTF-8"/>
            		<title>Accueil</title>
            	</head>
            	
            <body style="text-align:center;">
            
            	<!-- FORMULAIRE HTML BASIQUE -->
            	<form method="post" action="inscription.php">
            		<p>Pseudo : <input type="text" name="login" placeholder="Identifiant"/></p>
            		<p>Mot de passe : <input type="password" name="password" placeholder="Mot de passe"/></p>
            		<input type="submit" name="submit" value="Connexion"/>
            		
            	</form>
            
            </body>
            </html>
            

            Et voilà la page inscription.php :

            <?php
            
            /* CONNEXION A LA BASE DE DONNEE */
            try
            {
            	$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '***');
            	$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            }
            catch (Exception $e)
            {
            	die('Erreur : ' . $e->getMessage());
            }
            
            /* ON CREER NOS VARIABLES */
            $login = htmlspecialchars($_POST['login']);
            $password = htmlspecialchars($_POST['password']); //Variable qui ne nous servira qu'une seule fois
            $password_hash = sha1($password); //On créer une nouvelle variable qui comprend le mot de passe entré mais hashé en SHA1
            
            if(isset($_POST['submit'])){ //Si on a soumi le formulaire
            	
            	
            	//Ici on va lister les erreurs dans un tableau, pour chaque nouvelle erreur on créer une case dans le tableau
            	//On part de 0 donc -> $error[0] PUIS ENSUITE $error[1] etc ..
            	
            	if(empty($login)){
            		$error[0] = 'Login vide'; //La première entrée du tableau sera = au message 'Login vide'
            	}
            	
            	if(empty($password)){
            		$error[1] = 'Password vide'; //Pareil que plus haut
            	}
            	
            	
            	if(count($error) == 0){ //Cette fonction compte le nombre d'entrée dans le tableau (attention $error[0] compte comme une entrée. Ici on dit que si le nombre d'entrée dans le tableau est égale à 0 alors on peut faire l'insertion car aucune erreur
            		$req = $bdd->prepare('INSERT INTO members(login, password) VALUES(:login, :password)');
            		$req->execute(array(
            				'login' => $login,
            				'password' => $password_hash));
            		echo 'Inscription validée !'; //On affiche un message quand l'utilisateur est inscrit correctement
            	}else{ //Par contre si le nombre d'entrée est supérieur à zéro alors on fait une boucle et on affiche les erreurs avec la variable $list
            		foreach ($error as $list){
            			echo $list . '<br/>';
            		}
            	}
            	
            }
            ?>
            

            Le code de la page d'inscription est assez compliqué, si tu as des questions n'hésite pas, une fois que tu as essayé donne moi un retour 😉

            Je n'ai pas inclue le code pour la connexion par contre ! 😛

            Cordialement, 4Spartan8 - Codeur PHP, JAVA, HTML, CSS

            1 réponse Dernière réponse
            0
            • Z Hors-ligne
              Z Hors-ligne
              zougui
              a écrit sur dernière édition par
              #28

              ok merci c'est rare de nos jours les gens aussi sympas 😉  je te dirais des nouvelles une fois que se seras importer dans mon site j'ai 500 fichiers en cours donc faut patienter 😕 tinquiète je vais essayer de me bébrouiller pour la connexion,

              EDIT

              ok c'est cool merci maintenant je vais améliorer sa avec une confirmation du mot de passe, mais une question a quoi servent les placeholders ?

              <p>Mot de passe : <input type="password" name="password" placeholder="Mot de passe"/></p>
              
              1 réponse Dernière réponse
              0
              • 4Spartan84 Hors-ligne
                4Spartan84 Hors-ligne
                4Spartan8
                a écrit sur dernière édition par
                #29

                il y a 47 minutes, zougui a dit :

                ok merci c'est rare de nos jours les gens aussi sympas 😉  je te dirais des nouvelles une fois que se seras importer dans mon site j'ai 500 fichiers en cours donc faut patienter 😕 tinquiète je vais essayer de me bébrouiller pour la connexion,

                EDIT

                ok c'est cool merci maintenant je vais améliorer sa avec une confirmation du mot de passe, mais une question a quoi servent les placeholders ?

                <p>Mot de passe : <input type="password" name="password" placeholder="Mot de passe"/></p>
                

                Pas de soucis, c'est normal ! 😉

                Les placeholder servent à afficher un message dans le fond de ton input, regarde ton formulaire sur ta page HTML, tu devrais voir écris "Mot de passe". Bien sur ils ne sont pas indispensables, tu peux très bien les enlever ! 🙂

                Cordialement, 4Spartan8 - Codeur PHP, JAVA, HTML, CSS

                1 réponse Dernière réponse
                0
                • R Hors-ligne
                  R Hors-ligne
                  RedRaven
                  a écrit sur dernière édition par
                  #30

                  Petit probleme tout bete, je suis débutant et je ne sais pas du tout ou et dans quel circonstance placer ce morceaux de code

                  Merci d'avance

                  CREATE TABLE membre (
                     id int(11) NOT NULL auto_increment,
                     login varchar(8) NOT NULL,
                     password varchar(8) NOT NULL,
                     PRIMARY KEY (id),
                     KEY ID_2 (id)
                  );
                  
                  1 réponse Dernière réponse
                  0
                  • SoulalexS Hors-ligne
                    SoulalexS Hors-ligne
                    Soulalex
                    a écrit sur dernière édition par
                    #31

                    Tu exécutes ce bout de code sur ton serveur SQL.

                    Soulalex, Administrateur de Melinyel
                    + E-Mail : [[email protected]](mailto:[email protected] "Lien vers un courriel")
                    + GitHub : [https://github.com/Soualex](https://github.com/Soualex "Lien externe")

                    1 réponse Dernière réponse
                    0
                    • R Hors-ligne
                      R Hors-ligne
                      Robinvtn
                      a écrit sur dernière édition par
                      #32

                      Bonjour! Quant à moi tout fonctionne, sauf la page de connexion, soit la page de connexion ne fonctionne pas (pour moi) soit le code sur les pages spécificiques pour rediriger les utilisateurs si ils ne sont pas connecté ne fonctionne pas, je sais pas quel est le problème .. Quelqu'un pourrait m'aider ?

                      1 réponse Dernière réponse
                      0

                      Bonjour ! Vous semblez intéressé par cette conversation, mais vous n’avez pas encore de compte.

                      Marre de refaire défiler les mêmes messages ? Créez un compte pour retrouver votre position, recevoir des notifications des nouvelles réponses, sauvegarder vos favoris et voter pour les messages que vous appréciez.

                      Grâce à votre participation, ce message peut devenir encore meilleur 💗

                      S'inscrire Se connecter
                      Répondre
                      • Répondre à l'aide d'un nouveau sujet
                      Se connecter pour répondre
                      • Du plus ancien au plus récent
                      • Du plus récent au plus ancien
                      • Les plus votés


                      • Se connecter

                      • Connectez-vous ou inscrivez-vous pour faire une recherche.
                      Powered by NodeBB Contributors
                      • Premier message
                        Dernier message
                      0
                      • Catégories
                      • Récent
                      • Mots-clés
                      • Populaire
                      • Web
                      • Utilisateurs
                      • Groupes