PHP / MySQL - Login page

January 2017


Member Area PHP / MySQL




Issue


I've created a members area on my website but I have a big problem at the login page! Can you help me?
  • I use a MySQL database
  • The form is not on the login page but all (and he returns to the login page so it creates variables "$ _POST ['variable']").
  • I do requests the username and password to login


So if you can do without a script PHP / MySQL (I'll manage to fit), would really cool and nice

Solution

  • So if we assume that your login form and type:

<form action = "connexion.php" method="post"> 
Login <input type="text" name="login" /><br /> 
Mot de passe <input type="password" name="mdp" /><br /><br /> 
<input type="submit" value="Se connecter" /> 
</form> 

Therefore the connexion.php page could look like this:

<?php 
session_start;// ne pas oublier avant tout code html si on attaque les session 
if (($_GET['action'])=='deconnection' && isset($_SESSION['login']) && isset($_SESSION['mdp']))//Si on va sur cette page mais que les sessions 'login' et 'mdp' existe déjà, c'est que l'on veut se deconnecter ... donc action ! ^_^' 
{ 
session_destroy();// on se déconnecte de la session 
echo '<meta http-equiv="refresh" content="3;URL=index.php">'; 
echo '<center><font color=red><b><br>Vous vous êtes bien déconnecté</b><br /><br />Vous allez être redirigé dans 3 secondes</font><br /><br /><a href="index.php">Ne pas attendre</a></center>'; 
} 
else if (!isset($_SESSION['login']) && !isset($_SESSION['mdp']))//Sinon, si ces sessions n'existent pas, c'est qu'on veut se connecter ... donc action ! ^_^' 
{ 
if (isset($_POST['login']) AND isset($_POST['mdp'])) // Si les variables existent 
{ 

  mysql_connect(_DBHOST,_DBUSER,_DBPASS);//Identifiant à remplacer 
  mysql_select_db(_DBNAME);//Nom de la base à remplacer aussi 
  $login= mysql_real_escape_string(htmlspecialchars($_POST['login']));//Sécurité au cas ou ! 
  $mdp = mysql_real_escape_string(htmlspecialchars($_POST['mdp']));//Sécurité au cas ou ! 
  $reponse = mysql_query("SELECT * FROM membres WHERE login='$login' AND mdp='$mdp'");// On fait le tour de la base pour voir si le login entré existe et a pour mot de passe celui entré 
  $donnees = mysql_fetch_array($reponse);//on créé un petit tableau des résultats (normalement, il y en a qu'un si t'as tout bien configuré lors de l'inscription) 
  if (($donnees['login']) AND ($donnees['mdp']))//Si on a un resultat ... on a plus qu'a créer les session 
   { 
   $_SESSION['login'] = $login; // Session contenant le login du membre 
   $_SESSION['mdp'] = md5($mdp);// Session contenant le mot de passe hashé en md5 (par mesure de sécurité et surtout de confidentialité ;) ) 
   $_SESSION['email'] = $donnees['email'];// Session contenant l'e-mail du membre 
   //Donc ici, tu peux plus ou moins mettre des sessions de ce que tu veux et plus ou moins autant que tu veux. 
   // L'option du cookies n'est pas dévellopé ici car tu ne l'a pas demandé :p lol 
   echo '<meta http-equiv="refresh" content="3;URL=index.php">'; 
   echo '<center><font color=red><b><br>Vous êtes bien identifié</b><br /><br />Vous allez être redirigé dans 3 secondes</font><br /><br /><a href="index.php">Ne pas attendre</a></center>'; 
   } 
  else 
   { 
   echo '<center><font color=red><b><br>Erreur d\'authentification !</b><br />Votre login ou votre mot de passe est faux</font><br><br><a href="index.php">Retour</a></center>'; 
   } 
 mysql_close(); 
} 
} 
else 
{ 
echo '<center><font color=red><b><br>Erreur !</b><br />Vous ne pouvez pas aller sur cette page, vous êtes déjà connecté.</font><br><br><a href="Javascript:history.go(-1)">Retour</a></center>'; 
} 
?> 


Note


Solved by gaerebut

Related


Published by aakai1056. Latest update on July 18, 2011 at 12:24 PM by aakai1056.
This document, titled "PHP / MySQL - Login page," is available under the Creative Commons license. Any copy, reuse, or modification of the content should be sufficiently credited to CCM (ccm.net).