PHP Login et mot de passe

Fermé
TRUNCKS Messages postés 1017 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 8 novembre 2024 - Modifié par jordane45 le 19/08/2015 à 10:44
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 - 19 août 2015 à 21:07
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.
.
A voir également:

7 réponses

jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
19 août 2015 à 10:46
Bonjour,

il me retourne toujours une erreur.

Quel est le message d'erreur ?
0
TRUNCKS Messages postés 1017 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 8 novembre 2024 7
19 août 2015 à 10:51
Merci :)

--
0
TRUNCKS Messages postés 1017 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 8 novembre 2024 7
19 août 2015 à 10:52
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
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
19 août 2015 à 11:59
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
TRUNCKS Messages postés 1017 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 8 novembre 2024 7
19 août 2015 à 13:50
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TRUNCKS Messages postés 1017 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 8 novembre 2024 7
19 août 2015 à 14:39
J'ai essayé, mais cela me donne une page blanche sur login.php

--
0
TRUNCKS Messages postés 1017 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 8 novembre 2024 7
19 août 2015 à 17:00
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
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
19 août 2015 à 20:46
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
Utilisateur anonyme
19 août 2015 à 20:48
Ça ne dérange personne la grosse faille d'injection MySQL ? En + de reprendre le code comme ça..
0
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
19 août 2015 à 21:07
Si .... c'est bien pour ça que je l'ai invité à passer à la PDO.....
0