Problème PHP-Mysql

Fermé
Delphine97224 Messages postés 99 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 - 25 févr. 2010 à 15:26
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 - 26 févr. 2010 à 10:43
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");
}

10 réponses

angelus1821 Messages postés 191 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 21 décembre 2014 16
25 févr. 2010 à 15:39
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 lundi 6 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 9
25 févr. 2010 à 15:52
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 dimanche 16 mars 2008 Statut Membre Dernière intervention 21 décembre 2014 16
25 févr. 2010 à 15:59
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 lundi 6 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 9
25 févr. 2010 à 16:08
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 lundi 6 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 9
25 févr. 2010 à 16:41
up ^^
0
Delphine97224 Messages postés 99 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 9
25 févr. 2010 à 18:23
Personne ne peut m'aider ?
0
Delphine97224 Messages postés 99 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 9
25 févr. 2010 à 21:03
toujours rien ?
0
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 lundi 6 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 9
26 févr. 2010 à 10:32
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 jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
26 févr. 2010 à 10:43
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