PHP Login et mot de passe

TRUNCKS Messages postés 1066 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai réactiver un site qui se trouvait en PHP 4 et qui maintenant est en PHP 5.

Mais mon bout de code ( qui date de 5 ans maintenant ), ne fonctionne plus,
je n'arrive pas à me connecter avec le script de login et mot de passe, il me retourne toujours une erreur.

Quelque chose vous choque là dedans:

<?php
require("connexion/conf.php");

/*-----------------------------------------------------------------*/
/* PROGRAMME PRINCIPAL   */
/*-----------------------------------------------------------------*/

// CONNEXION A LA BASE DE DONNEE
$conn = mysql_connect($sql_serveur, $sql_user, $sql_passwd) or trigger_error(mysql_error(),E_USER_ERROR);mysql_select_db($sql_bdd, $conn); 


// Récupération des variables necessaires
$login = stripslashes(mysql_real_escape_string($_POST['pseudo_membre']));
$pass = stripslashes(mysql_real_escape_string(sha1($_POST['passe_membre'])));

// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
// MOT DE PASSE SAISIS A LA PAGE INDEX.HTM
$requete = "SELECT id_utilisateur FROM utilisateurs WHERE pseudo = '$login' AND pass = '$pass'";    // pas besoin de ( ) 
$reponse= mysql_query($requete) or die (mysql_error()); 
$resultat = mysql_fetch_array($reponse);  // $reponse et pas $resultat 

if (!$resultat)

{
 // REDIRECTION VERS LA PAGE ERREUR
 echo header("Location:erreur.php");
 }

// SI LE LOGIN ET MOT DE PASSE SONT EXACTES 
elseif($resultat)
 {
  
    session_start();
 $_SESSION['login'] = $login;
 echo header("Location: admin.php");
 } 
 
else{
 
echo header("Location:erreur.php");
 
}

?>


EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.

7 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    il me retourne toujours une erreur.

    Quel est le message d'erreur ?
    0
  2. TRUNCKS Messages postés 1066 Statut Membre 8
     
    Merci :)

    --
    0
  3. TRUNCKS Messages postés 1066 Statut Membre 8
     
    Et bien il me renvoie le contenu de erreur.php.
    En gros que le login et le mot de passe ne sont pas bon.

    Il n'y a pas d'erreur dans le code, juste que le résultat est toujours faux.

    --
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Dans ce cas, es tu sûr des identifiants ?
      As tu testé ta requête directement dans ta BDD pour voir ?
      Lors de ton passage à php5 .. as tu modifié aussi la BDD ?

      Peux tu essayer ce code et nous dire ce que ça te donne ?
      <?php
      //Démarrage 'propre' des SESSION Avant toute autre chose
      if(session_id() == '') {
          session_start();
      }
      
      // CONNEXION A LA BASE DE DONNEE
      $conn = mysql_connect($sql_serveur, $sql_user, $sql_passwd) or trigger_error(mysql_error(),E_USER_ERROR);mysql_select_db($sql_bdd, $conn); 
      
      
      // Récupération 'propre' des variables necessaires
      $login = !empty($_POST['pseudo_membre']) ? stripslashes(mysql_real_escape_string($_POST['pseudo_membre'])) : NULL;
      $pass = !empty($_POST['passe_membre']) ? stripslashes(mysql_real_escape_string(sha1($_POST['passe_membre']))) : NULL;
      
      // ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
      // MOT DE PASSE SAISIS A LA PAGE INDEX.HTM
      if($login && $pass){
        $requete = "SELECT id_utilisateur FROM utilisateurs WHERE pseudo = '$login' AND pass = '$pass'";    // pas besoin de ( ) 
        $reponse= mysql_query($requete) or die (mysql_error() . " <br> Requete : ".$requete); 
        $resultat = mysql_fetch_array($reponse);  // $reponse et pas $resultat 
      	
        if (count($resultat)<1){
          // REDIRECTION VERS LA PAGE ERREUR
             echo "requete = ".$requete ;
           // Le temps des tests...désactivation de la redirection
           //  header("Location:erreur.php");
           // exit();
      
        }elseif($resultat) {
          // SI LE LOGIN ET MOT DE PASSE SONT EXACTES 
          $_SESSION['login'] = $login;
          header("Location: admin.php");
          exit();
        }else{
          header("Location:erreur.php");
          exit();
       }
      	
      }else{
      	echo "<br>Erreur : Merci de remplir les champs Login et Password";
      	//le temps des tests:
      	print_r($_POST);
      }
      
      
      0
  4. TRUNCKS Messages postés 1066 Statut Membre 8
     
    Je vais l'essayer dès mon retour merci.

    Il y avait des choses a modifier dans la bdd lors du passage ?
    Excusez moi, je n'ai pas énormément de connaissances.

    Merci :)

    --
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. TRUNCKS Messages postés 1066 Statut Membre 8
     
    J'ai essayé, mais cela me donne une page blanche sur login.php

    --
    0
  7. TRUNCKS Messages postés 1066 Statut Membre 8
     
    En fait, je viens de me rendre compte, qu'il n'y a pas d'erreur de php au niveau du code, aucun message d'erreur, mais la base SQL ne retourne rien.

    --
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      C'est bien pour ça que je t'ai demandé :
      As tu testé ta requête directement dans ta BDD pour voir ?


      Si tu as changé de version de mysql/php .. l'encodate Sha a changé .. ton mot de passe crypté n'est donc plus le même...
      Il faut que tu te créé une page dans laquel tu code l'encodage de ton password .. puis que tu récupère cette valeur pour remplacer celle contenue dans ta BDD.
      0
  8. Utilisateur anonyme
     
    Ça ne dérange personne la grosse faille d'injection MySQL ? En + de reprendre le code comme ça..
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Si .... c'est bien pour ça que je l'ai invité à passer à la PDO.....
      0