PHP Login et mot de passe
TRUNCKS
Messages postés
1066
Statut
Membre
-
jordane45 Messages postés 40053 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40053 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:
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.
.
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:
- PHP Login et mot de passe
- Trousseau mot de passe iphone - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
- Identifiant et mot de passe - Guide
- Voir mot de passe wifi android - Guide
7 réponses
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.
--
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.
--
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 ?
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);
}
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 :)
--
Il y avait des choses a modifier dans la bdd lors du passage ?
Excusez moi, je n'ai pas énormément de connaissances.
Merci :)
--
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
--
--
C'est bien pour ça que je t'ai demandé :
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.
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.