Problème PHP-Mysql
Delphine97224
Messages postés
102
Statut
Membre
-
Dr Zoidberg Messages postés 547 Statut Membre -
Dr Zoidberg Messages postés 547 Statut Membre -
Bonjour,
Je souhaite créer une interface pour envoyer des newsletters. Je rencontre un problème dans mon script. J'ai créé une page où l'utilisateur peut soit se loguer, soit s'enregistrer. Jusque là tout va bien sauf que quand je me logue je suis systématiquement renvoyé sur la page d'erreur alors que le login et le mot de passe sont les bons.
Pouvez vous m'aider. Merci d'avance ;)
Mon script
<?php
$login = $_POST['login'];
$password = $_POST['password'];
$requete = mysql_query("SELECT login, password FROM membre WHERE login=\"$login\" and password=\"$password\"") or die(mysql_error());
if(mysql_num_rows($requete)==0)
{
header("Location:$url_erreur");
}
Je souhaite créer une interface pour envoyer des newsletters. Je rencontre un problème dans mon script. J'ai créé une page où l'utilisateur peut soit se loguer, soit s'enregistrer. Jusque là tout va bien sauf que quand je me logue je suis systématiquement renvoyé sur la page d'erreur alors que le login et le mot de passe sont les bons.
Pouvez vous m'aider. Merci d'avance ;)
Mon script
<?php
$login = $_POST['login'];
$password = $_POST['password'];
$requete = mysql_query("SELECT login, password FROM membre WHERE login=\"$login\" and password=\"$password\"") or die(mysql_error());
if(mysql_num_rows($requete)==0)
{
header("Location:$url_erreur");
}
Configuration: Windows 7 / Internet Explorer 7.0
10 réponses
-
salut
pour commencer tu as oublier le " ?> " a la fin de ton script :)
ensuite ,
je te propose la chose suivante :
<?php if isset($_POST['login'])) { $login = $_POST['login']; } if isset($_POST['password'])) { $password = $_POST['password']; } //deux precautions vallent mieux qu'une comme on dit, sa te dit que si t'es zone de texte du login et password sont remplis, alors tu les affecte dans les variables .. $requete = mysql_query("SELECT login, password FROM membre WHERE login='$login' and password='$password' ") or die(mysql_error()); //on suppose que tu as un bouton connexion if (isset($_POST['btnConnexion'] //si tu cliques sur le bouton { if(mysql_num_rows($requete)==0) //ici cela me semble bon { header("Location:$url_erreur"); } } // à ne pas oublier ?> -
Merci, j'ai fait tout ce que tu m'as dit mais je suis redirigée sur la page d'erreur.
Tu as oublié plusieurs parenthèses mais bon j'ai corrigé.
Je n'ai pas mis le ?> à la fin parce qu'il a encore du code à la fin avec la condition du "else". -
oui dsl autant pour moi, bon j'ai une excuse, suis debout depuis 6h lol
$url_erreur je suppose c'est la page d'erreur en question ??
sinon dsl mais là je ne vois pas du tout , si tu peux donner plus de code, pour voir un peu la structure peut etre?et j'esserais de voir sa dans la soirée ou sa devra attendre demain pour ma part dsl, mais là je fatigue sec et j'ai une heure de route qui mattend lol
n'hesite pas à me MP au besoin, bon courage ! -
Merci beaucoup pour ton aide.
<?php
include("connexion.php");
include("conf.php");
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php"; exit;}
if (isset($_POST['login']))
{
$login = $_POST['login'];
}
if (isset($_POST['password']))
{
$password = $_POST['password'];
}
$requete = mysql_query("SELECT login, password FROM membre WHERE login='$login' and password='$password' ") or die(mysql_error());
if (isset($_POST['bt_submit'])) //si tu cliques sur le bouton
{
if(mysql_num_rows($requete)==0) //ici cela me semble bon
{
header("Location:$url_erreur");
}
}
else
{
$taille = 20;
$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
srand(time());
for ($i=0;$i<$taille;$i++)
{
$id.=substr($lettres,(rand()%(strlen($lettres))),1);
}
$requete = mysql_query("UPDATE membre set id=\"$id\" WHERE login=\"$login\" and password=\"$password_membre\"") or die(mysql_error());
header("Location:bienvenue.php?id=$id");
}
mysql_close();
?> -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
-
-
Rofl ce genre de formulaire de connexion -_-'
<?php require_once "connexion.php"; require_once "conf.php"; // Deconnexion if(isset($_SESSION['utilisateur'])){ unset($_SESSION['utilisateur']); } // donnée du formulaire de connexion + vérification que se n'est pas un bot if(isset($_REQUEST['login']) && isset($_REQUEST['password']) && (!isset($_SESSION['erreur_login']) || $_SESSION['erreur_login'] != 3)){ // Protection du password en MD5 $query = mysql_query (" SELECT * FROM membre WHERE login = '".htmlspecialchars($_REQUEST['login'])."' AND password= '".md5(htmlspecialchars($_REQUEST['password']))."'", $mySQL_connect); // Login existant, on le log. if (mysql_num_rows($query) == 1){ $_SESSION['utilisateur'] = mysql_fetch_array ($query, MYSQL_ASSOC); header("Location: index.php"); }else{ // Tentative échoué. restriction le nb de connexion if(isset($_SESSION['erreur_login'])) $_SESSION['erreur_login'] += 1; else $_SESSION['erreur_login'] = 1; } } header("Location: index.php"); ?>
Bien sur le plus judicieux c'est de bloquer l'IP pendant 24 heure plutot que mettre une session -
Siluni ta réponse n'est pas exactement ce que je souhaite faire.
Merci quand même !
Je suis toujours à la recherche du problème qui fait qu'en rentrant le bon mot de passe et le bon login que je sois réorienté sur la page erreur au lieu de la page bienvenue.
Merci à toute aide ! -
Salut,
Histoire de debugger un peu tu peux essayer de modifier un peu ton code pour voir où ca peut coincer, quelques chose du genre afin de valider la requête sql:$sql = "SELECT login, password FROM membre WHERE login='$login' and password='$password' "; $requete = mysql_query($sql) or die(mysql_error()); if (isset($_POST['bt_submit'])) //si tu cliques sur le bouton { if(mysql_num_rows($requete)==0) //ici cela me semble bon { echo 'requete effectuée '.$sql; } }
Ensuite essai de tester la requête directement dans un client Mysql afin de valider qu'elle retourne bien ce que tu attends.