Problème d'authentification

Fermé
mimouta88 Messages postés 28 Date d'inscription jeudi 15 février 2018 Statut Membre Dernière intervention 18 février 2018 - Modifié le 18 févr. 2018 à 19:10
mimouta88 Messages postés 28 Date d'inscription jeudi 15 février 2018 Statut Membre Dernière intervention 18 février 2018 - 18 févr. 2018 à 21:19
bonjour a tous j'ai crié une page qui contient un login et un mot de passe et je veux que l'admin entre un login et un mot de passe pour avoir accéder a la page accueil.j'ai essayé plusieurs codes mais toujours le cas toujours le code m'affiche la page erreur il y'a pas verification des champs avec la bd(pas de recuperation de donnée de la bdd).svp aidez moi

3 réponses

mimouta88 Messages postés 28 Date d'inscription jeudi 15 février 2018 Statut Membre Dernière intervention 18 février 2018
Modifié le 18 févr. 2018 à 19:07
page index.php

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>

<body style=" background-color:powderblue;">
<div align="center"><h1><i></i></h1></div>
<div class="post" align="center"><h2 class="title"><f> bienvenue </f></h2>

<form name="f1" action="verm.php" method="POST"  onSubmit="return verif_formulaire()"  >
 
<br><br><br><br><br><br>
<div align="right"><input type="login" name="login" />login<br> <br> <br> </div>
<div align="right">  <input type="password" name="mot_de_passe" />mot de passe<br> <br> <br> </div>
<br> <br> <br> 
<input type="submit" value="se connecter" /> 
</p> 
</form> 

    <div style="clear: both;"> </div>
    <div class="entry">
    
    </div>
   </div>
 <!-- jQuery -->
    <script src="../bower_components/jquery/dist/jquery.min.js"></script>

    <!-- Bootstrap Core JavaScript -->
    <script src="../bower_components/bootstrap/dist/js/bootstrap.min.js"></script>

    <!-- Metis Menu Plugin JavaScript -->
    <script src="../bower_components/metisMenu/dist/metisMenu.min.js"></script>

    <!-- Custom Theme JavaScript -->
    <script src="../dist/js/sb-admin-2.js"></script>
 
<script type="text/javascript">
    function verif_formulaire()
    {
     
     if(document.f1.login.value == "") {
       alert("entrer login!");
       document.f1.login.focus();
       return false;
      }
      if(document.f1.mot_de_passe.value == "") {
       alert("entrer mot de passe!");
       document.f1.mot_de_passe.focus();
       return false;
      }
      
    }
  </script> 

</body>
</html>


EDIT: Ajout des balises de code
0
mimouta88 Messages postés 28 Date d'inscription jeudi 15 février 2018 Statut Membre Dernière intervention 18 février 2018
Modifié le 18 févr. 2018 à 18:32
page verm.php

<?php

session_start(); // début de session

if (isset($_POST['login'])){ // execution uniquement apres envoi du formulaire (test si la variable POST existe)
    $login = addslashes($_POST['login']); // mise en variable du nom d'utilisateur
    $mot_de_passe = addslashes(md5($_POST['mot_de_passe'])); // mise en variable du mot de passe chiffré à l'aide de md5 (I love md5)
    
// requete sur la table admin (on récupère les infos de la personne)


$con=@mysql_connect('localhost','root','');
$res2=mysql_select_db('amie',$con);
$verif_query=sprintf("SELECT * FROM admin WHERE login='$login' AND mot_de_passe='$mot_de_passe'"); // requête sur la base amie
$verif = mysql_query($verif_query,$con) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);

    
    if ($utilisateur) {    // On test s'il y a un utilisateur correspondant
    
        session_register("authentification"); // enregistrement de la session
        
        // déclaration des variables de sessio
        $_SESSION['login'] = $row_verif['login']; // Son Login
        $_SESSION['mot_de_passe'] = $row_verif['mot_de_passe']; // Son mot de passe (à éviter)
        
        header("Location:acceuil.php"); // redirection si OK
    }
    else {
        header("Location:index.php?erreur=login"); // redirection si utilisateur non reconnu
    }
}


// Gestion de la  déconnexion
if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){ // Test sur les paramètres d'URL qui permettront d'identifier un contexte de déconnexion
    $login = $_SESSION['login']; // On garde le login en variable pour dire au revoir (soyons polis :-)
    session_unset("authentification");
    header("Location:index.php?erreur=delog&login=$login");
}
?>
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
18 févr. 2018 à 19:10
Bonjour,

1 - Ta question concerne d'avantage le code php qu'un souci de requête SQL ..
Je déplace donc ta question dans le bon forum.

2 - Va lire ceci : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

3 - Applique ce qui est indiqué ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

4 - On n'utilise plus le md5 pour sécuriser les password... ça se craque trop facilement. A la place.. il faut utiliser les fonctions de password_verify
Voici un exemple complet : https://forums.commentcamarche.net/forum/affich-34340900-login-password-php#7


0
mimouta88 Messages postés 28 Date d'inscription jeudi 15 février 2018 Statut Membre Dernière intervention 18 février 2018
18 févr. 2018 à 19:28
jordane s'il vous plait pouvez vous corriger mon code php j'ai toujours un problème j'arrive pas a modifier les codes selon mes besoins et merci d'avance.je vais essayer comme meme
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
18 févr. 2018 à 19:37

j'arrive pas a modifier les codes

Tu as essayé quoi ?? Si tu nous le montres pas.. nous ne pourrons pas t'aider à le corriger !*

NB: Ici on "aide" à coder .... on ne code pas à votre place !
0
mimouta88 Messages postés 28 Date d'inscription jeudi 15 février 2018 Statut Membre Dernière intervention 18 février 2018
Modifié le 18 févr. 2018 à 19:51
oui jordane j'ai demandé si vous pouvez corrigez mon code et ne pas a codé a ma place.voici la page index.php


<?php
 session_start();
 include('config.php');
 $error = '';
 $Login = false;
 $mot_de_passe = false;
 
 //VERIFIE SI FORMULAIRE ENVOYÉ OU PAS
 if(isset($_POST['login'])){
  session_destroy();
 }
  
  
  // Récupération PROPRE des variables AVANT de les utiliser :
  $login = !empty($_POST['login']) ? $_POST['login'] : NULL;
  $mot_de_passe = !empty($_POST['mot_de_passe']) ? $_POST['mot_de_passe'] : NULL;
  
  $user = isset($_SESSION['user']) ? $_SESSION['user'] : ""; 
  
 if($login && $mot_de_passe)){

   if(isset($_POST['login'])){
    $Login = Login ($login, $mot_de_passe);
    if($Login == true){
     $_SESSION['user'] = $login;
    } else {
     echo "LOGIN OU MOT DE PASSE INVALIDE";
    }
   }
      
   if(isset($_POST['se connecter'])){
    $bRegister = Register($login, $mot_de_passe);
    if($bRegister == true){
     $_SESSION['user'] = $login;
    }
   }
   
  }
  else{
   $error = 'Veuillez remplir tous le champs!';
  }


?>

<!DOCTYPE html >

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>

<body style=" background-color:powderblue;">
<div align="center"><h1><i></i></h1></div>
<div class="post" align="center"><h2 class="title"><f> bienvenue </f></h2>

<form name="f1" action="verm.php" method="POST" onSubmit="return verif_formulaire()" >

<br><br><br><br><br><br>
<div align="right"><input type="login" name="login" />login<br> <br> <br> </div>
<div align="right"> <input type="password" name="mot_de_passe" />mot de passe<br> <br> <br> </div>
<br> <br> <br>
<input type="submit" value="se connecter" name="se connecter" />
</p>
</form>

<div style="clear: both;"> </div>
<div class="entry">

</div>
</div>
<!-- jQuery -->
<script src="../bower_components/jquery/dist/jquery.min.js"></script>

<!-- Bootstrap Core JavaScript -->
<script src="../bower_components/bootstrap/dist/js/bootstrap.min.js"></script>

<!-- Metis Menu Plugin JavaScript -->
<script src="../bower_components/metisMenu/dist/metisMenu.min.js"></script>

<!-- Custom Theme JavaScript -->
<script src="../dist/js/sb-admin-2.js"></script>

<script type="text/javascript">
function verif_formulaire()
{

if(document.f1.login.value == "") {
alert("entrer login!");
document.f1.login.focus();
return false;
}
if(document.f1.mot_de_passe.value == "") {
alert("entrer mot de passe!");
document.f1.mot_de_passe.focus();
return false;
}

}
</script>

</body>
</html>
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
18 févr. 2018 à 19:44
Tu as aussi récupéré le code du fichier include('config.php'); ?
Car il te faut la fonction Login ainsi que la fonction Register ... et bien entendu.. la connexion à la bdd qui va avec.

Le code que je t'ai donné n'est qu'un exemple.... à toi de l'adapter à tes besoins.. et pas juste le copier bêtement.
0
mimouta88 Messages postés 28 Date d'inscription jeudi 15 février 2018 Statut Membre Dernière intervention 18 février 2018
18 févr. 2018 à 19:48
voici la page verm.php

<?php

//Import fichier de connexion à la bdd
require_once "config.php";


/**
* Foncion LOGIN
*/
function Login($login, $mot_de_passe){
  $cnn = get_cnx();
  try{
    $stmt = $cnn->prepare('SELECT login, mot_de_passe FROM admin WHERE login = :login');
    $stmt->bindParam(':login', $login);
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_OBJ);
  }catch(Exception $e){
    echo "Error !" .$e->getMessage();
  }
   //print $row->mot_de_passe;
  return  password_verify($mot_de_passe, $row->mot_de_passe) ? true : false ;
}

/**
* Foncion REGISTER
*/
function Register($login, $mot_de_passe){
  $mot_de_passe = password_hash($mot_de_passe, PASSWORD_DEFAULT);

  $cnn = $cnn = get_cnx();
  try{
    $stmt = $cnn->prepare('INSERT INTO admin (login, mot_de_passe) VALUES (:login, :mot_de_passe)');
    $stmt->bindParam(':login', $login);
    $stmt->bindParam(':mot_de_passe', $mot_de_passe);
    $result = $stmt->execute();
  }catch(Exception $e){
    echo "Error !" .$e->getMessage();
    $result = false;  
  }
  return $result;
} 
?>
0