Problème PHP-Mysql

Delphine97224 Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   -  
Dr Zoidberg Messages postés 529 Date d'inscription   Statut Membre Dernière intervention   -
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");
}
A voir également:

10 réponses

angelus1821 Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   16
 
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
?> 
0
Delphine97224 Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   9
 
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".
0
angelus1821 Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   16
 
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 !
0
Delphine97224 Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   9
 
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();
?>
0

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

Posez votre question
Delphine97224 Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   9
 
up ^^
0
Delphine97224 Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   9
 
Personne ne peut m'aider ?
0
Delphine97224 Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   9
 
toujours rien ?
0
Siluni
 
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
0
Delphine97224 Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   9
 
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 !
0
Dr Zoidberg Messages postés 529 Date d'inscription   Statut Membre Dernière intervention   100
 
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.
0