Probleme de requete mysql

momoxe Messages postés 71 Date d'inscription jeudi 18 novembre 2004 Statut Membre Dernière intervention 12 août 2006 - 4 oct. 2005 à 07:45
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 5 oct. 2005 à 09:43
Bonjour, j'ai fait un code en php pour mon site web et il ne fonctionne pas.
A chaque fois, mon serveur me renvoie "parse error on line 5, ce qui correspond a ma requete sql.
Donc si quelqu'un avait la reponse, ca m'aiderait fortement car sans ce code la, je ne peux pas develloper les autres modules de mon portail web.
<?php
session_start();
mysql_connect("localhost", "root", "prenium");
mysql_select_db("website");
$data_query = mysql_query("SELECT login, mdp FROM membres WHERE pseudo="$_POST['login']"");
mysql_close();
$data = mysql_fetch_array($data_query);
$pseudo_bdd = $data['login'];
$password_bdd = $data['mdp'];


if($_GET['action'] == 'login')
{
$pseudo = $_POST['login'];
$password = md5($_POST['password']);



if($password $pseudo_bdd && $pseudo $pseudo_bdd)
{
$_SESSION['pseudo'] = $pseudo_bdd;
$_SESSION['status'] = '1';
header("location: index.php");
exit;
}
else
{
$_SESSION['status'] = '0';
header("location: index.php");
exit;
}

}
elseif($_GET['action'] == 'logout')
{
session_unset();
session_destroy();
header("location: index.php");
}
elseif($_GET['action'] == 'conect')
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
<link href="[file:///D|/webserver/server/www/styles/2col_leftNav.css file:///D|/webserver/server/www/styles/2col_leftNav.css]" rel="stylesheet" type="text/css" />
</head>

<form action="login.php?action=login" method="post" name="form1" target="_parent">

Login :




Mot de passe:







</form>

</html>
<?php
}
?>

Merci pour vos futures reponses

3 réponses

ashboody Messages postés 91 Date d'inscription samedi 30 mars 2002 Statut Membre Dernière intervention 11 octobre 2005
4 oct. 2005 à 09:07
salut,
tu ne peux pas mettres des guillemets dans d'autres guillemets
$data_query = mysql_query("SELECT login, mdp FROM membres WHERE pseudo="".$_POST['login'].""");

le . sert a concatener les chaines et " sert à mettre un guillemet dans une autre chaine.

Tu peux sinon utiliser les quotes '

$data_query = mysql_query("SELECT login, mdp FROM membres WHERE pseudo='".$_POST['login']."'");


bonne continuation

a bientot et si ma réponse te va accepte la
momoxe Messages postés 71 Date d'inscription jeudi 18 novembre 2004 Statut Membre Dernière intervention 12 août 2006
4 oct. 2005 à 23:34
Alors j'ai appliqué tes modifications et j'ai reussi a afficher la page de login sans encombres.
Mais quand je fais login, ce qui envoie le formulaire vers login.php?action=login, j'obtions l'erreur suivante:

Notice: Undefined index: login in d:\webserver\server\www\login.php on line 8

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\webserver\server\www\login.php on line 10

Notice: Undefined index: login in d:\webserver\server\www\login.php on line 13

Notice: Undefined index: password in d:\webserver\server\www\login.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at d:\webserver\server\www\login.php:8) in d:\webserver\server\www\login.php on line 27

Pour info, j'utilise easy php.
@+
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
5 oct. 2005 à 09:43
Hello,



easyphp n'a rien à voir là-dedans. Tu codes comme un sagouin visiblement !! ;-)



Montre ton code de login.php.



mais... :

1 - on récupère les valeurs passées par requête GET
(login.php?action=login) de cette manière : $_GET['action']. Vérifie
donc l'existence de cette variable dans login.php, avec des isset ()
avant de la traiter. C'est valable pour toutes tes variables, ça.

Bref :

if(isset ($_GET['action']) && $_GET['action'] == 'login')

{

$pseudo = $_POST['login'];

$password = md5($_POST['password']);

...

2 - ta requête : $data_query = mysql_query("SELECT login, mdp FROM membres WHERE pseudo="$_POST['login']"");

Même principe !! La première fois que tu arrives sur cette page,
$_POST['login'] n'existe pas! Il faut la tester avant de faire ta
rqeuête. Si elle n'existe pas, ton script n'a rien à faire à part
afficher le formulaire.



3 et 4 - : bon, tu as compris... ? ;-)



5 - on ne peut pas envoyer de sortie html quelconque AVANT d'envoyer
des headers. Ton header (Location:...) est éxécuté APRES l'affichage de
ton formulaire. Ca ne peut pas marcher.

Utilise la bufferisation de sortie si tu tiens à cette structure (ob_start () etc...)
Rejoignez-nous