Problème PHP MySQL
Arnaud
-
Arnaud -
Arnaud -
Bonjour à tous,
Je n'y connais pas grand chose (pour ne pas dire rien) et ai un problème. Voici mon code:
<? include('verifsession.php');
include('sql_connect.php');
$req=mysql_query("select pseudo from membres where login='$_POST[login]'");
$pseudo=mysql_result($req,0,"pseudo");
?>
<html>
<head>
<title>Accueil membre</title>
<SCRIPT LANGUAGE="JavaScript1.1">
function right(e)
{var msg = "Le vol est interdit chez moi";
if (navigator.appName == 'Netscape' && e.which == 3){alert(msg);}
else if (navigator.appName == 'Microsoft Internet Explorer' && event.button==2){alert(msg);}return true;}
document.onmousedown = right;
</SCRIPT>
<script LANGUAGE="JavaScript" FOR="window" EVENT="onload()">
parent.status = ('LFB Promotion 2002')
</script>
<link rel="stylesheet" type="text/css" href="Logo/sommaire.css">
</head>
<body bgcolor="#E7E7CF" text="#000000">
<div align="center">
<p><b><font size="3" face="Arial">Bonjour <? echo"$pseudo" ?></font></b></p>
<p> </p>
<p><a href="modifperso.php"><font size="3" face="Arial">Modifier ses données personnelles (autoriser la publication dans la
liste des membres)</font></a></p>
<p> </p>
<p><a href="deconnexion.php"><font size="3" face="Arial">Se déconnecter</font></a></p>
</div>
</body>
</html>
Voici le texte d'erreur:
Notice: Undefined index: login in c:\program files\easyphp\www\lfb\espacemembre\accueilmembres.php on line 3
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\lfb\espacemembre\accueilmembres.php on line 4
Qui dois-je faire?
Merci d'avance,
Arnaud
Je n'y connais pas grand chose (pour ne pas dire rien) et ai un problème. Voici mon code:
<? include('verifsession.php');
include('sql_connect.php');
$req=mysql_query("select pseudo from membres where login='$_POST[login]'");
$pseudo=mysql_result($req,0,"pseudo");
?>
<html>
<head>
<title>Accueil membre</title>
<SCRIPT LANGUAGE="JavaScript1.1">
function right(e)
{var msg = "Le vol est interdit chez moi";
if (navigator.appName == 'Netscape' && e.which == 3){alert(msg);}
else if (navigator.appName == 'Microsoft Internet Explorer' && event.button==2){alert(msg);}return true;}
document.onmousedown = right;
</SCRIPT>
<script LANGUAGE="JavaScript" FOR="window" EVENT="onload()">
parent.status = ('LFB Promotion 2002')
</script>
<link rel="stylesheet" type="text/css" href="Logo/sommaire.css">
</head>
<body bgcolor="#E7E7CF" text="#000000">
<div align="center">
<p><b><font size="3" face="Arial">Bonjour <? echo"$pseudo" ?></font></b></p>
<p> </p>
<p><a href="modifperso.php"><font size="3" face="Arial">Modifier ses données personnelles (autoriser la publication dans la
liste des membres)</font></a></p>
<p> </p>
<p><a href="deconnexion.php"><font size="3" face="Arial">Se déconnecter</font></a></p>
</div>
</body>
</html>
Voici le texte d'erreur:
Notice: Undefined index: login in c:\program files\easyphp\www\lfb\espacemembre\accueilmembres.php on line 3
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\lfb\espacemembre\accueilmembres.php on line 4
Qui dois-je faire?
Merci d'avance,
Arnaud
A voir également:
- Problème PHP MySQL
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Php alert - Forum PHP
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
33 réponses
Le message suivant:
veut dire qu'il y a une erreur ligne 3:
et selon ce qui est dit, l'index 'login' n'existe pas: autrement dit, dans ton tableau $_POST il n'y pas de login. Il n'est pas passer lors de l'envoit de ton formulaire.
Ton erreur arrive tout le temps ou seulement quand le login est vide ?
Tu peut tester si le login est définie en faisant:
Le deuxieme message d'erreur te dit que le résultat de la requete SQL est invalide ( ce qui découle de ta première erreur)
Notice: Undefined index: login in c:\program files\easyphp\www\lfb\espacemembre\accueilmembres.php on line 3
veut dire qu'il y a une erreur ligne 3:
$req=mysql_query("select pseudo from membres where login='$_POST[login]'");
et selon ce qui est dit, l'index 'login' n'existe pas: autrement dit, dans ton tableau $_POST il n'y pas de login. Il n'est pas passer lors de l'envoit de ton formulaire.
Ton erreur arrive tout le temps ou seulement quand le login est vide ?
Tu peut tester si le login est définie en faisant:
if(isset($_POST['login'])){ //login OK ... } else { //login erreur ... }
Le deuxieme message d'erreur te dit que le résultat de la requete SQL est invalide ( ce qui découle de ta première erreur)
Bon déjà merci,
au départ je tiens à dire que la ligne était comme ça:
$req=mysql_query("select pseudo from membres where login='$login'");
J'ai ajouté le post car il disait undefined variable
Quoi qu'il en soit, le problème intervient tout le temps. Il est impossible d'arriver sur cette page sans avoir mis le login sur celle d'avant.
De plus, pour ton essai, je ne sais pa ou je dois insérer le champs. Jjuste avant ?> au quel car l'erreur ne s'affiche (pas la premiere du moins) mais la page ne s'affiche plus du tout.
Arnaud
au départ je tiens à dire que la ligne était comme ça:
$req=mysql_query("select pseudo from membres where login='$login'");
J'ai ajouté le post car il disait undefined variable
Quoi qu'il en soit, le problème intervient tout le temps. Il est impossible d'arriver sur cette page sans avoir mis le login sur celle d'avant.
De plus, pour ton essai, je ne sais pa ou je dois insérer le champs. Jjuste avant ?> au quel car l'erreur ne s'affiche (pas la premiere du moins) mais la page ne s'affiche plus du tout.
Arnaud
J'ai trouvé mettre ton code. Il me dit:
Notice: Undefined variable: pseudo in c:\program files\easyphp\www\lfb\espacemembre\accueilmembres.php on line 32
Notice: Undefined variable: pseudo in c:\program files\easyphp\www\lfb\espacemembre\accueilmembres.php on line 32
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Il manque un espace :-)
echo "$pseudo";
D'ailleurs tu peux tout aussi bien écrire
echo $pseudo;
echo "$pseudo";
D'ailleurs tu peux tout aussi bien écrire
echo $pseudo;
Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
merci, on avance!!! Voila ce que j'ai maintenant:
Notice: Undefined variable: pseudo in c:\program files\easyphp\www\lfb\espacemembre\accueilmembres.php on line 32
Le nouveau texte est celui ci:
<? include('verifsession.php');
include('sql_connect.php');
if(isset($_POST['login'])){
//login OK
$req=mysql_query("select pseudo from membres where login='$login'");
$pseudo=mysql_result($req,0,"pseudo");
} else {
//login erreur
}
?>
<html>
<head>
<title>Accueil membre</title>
<SCRIPT LANGUAGE="JavaScript1.1">
function right(e)
{var msg = "Le vol est interdit chez moi";
if (navigator.appName == 'Netscape' && e.which == 3){alert(msg);}
else if (navigator.appName == 'Microsoft Internet Explorer' && event.button==2){alert(msg);}return true;}
document.onmousedown = right;
</SCRIPT>
<script LANGUAGE="JavaScript" FOR="window" EVENT="onload()">
parent.status = ('LFB Promotion 2002')
</script>
<link rel="stylesheet" type="text/css" href="Logo/sommaire.css">
</head>
<body bgcolor="#E7E7CF" text="#000000">
<div align="center">
<p><b><font size="3" face="Arial">Bonjour <? echo "$pseudo" ?></font></b></p>
<p> </p>
<p><a href="modifperso.php"><font size="3" face="Arial">Modifier ses données personnelles (autoriser la publication dans la
liste des membres)</font></a></p>
<p> </p>
<p><a href="deconnexion.php"><font size="3" face="Arial">Se déconnecter</font></a></p>
</div>
</body>
</html>
Notice: Undefined variable: pseudo in c:\program files\easyphp\www\lfb\espacemembre\accueilmembres.php on line 32
Le nouveau texte est celui ci:
<? include('verifsession.php');
include('sql_connect.php');
if(isset($_POST['login'])){
//login OK
$req=mysql_query("select pseudo from membres where login='$login'");
$pseudo=mysql_result($req,0,"pseudo");
} else {
//login erreur
}
?>
<html>
<head>
<title>Accueil membre</title>
<SCRIPT LANGUAGE="JavaScript1.1">
function right(e)
{var msg = "Le vol est interdit chez moi";
if (navigator.appName == 'Netscape' && e.which == 3){alert(msg);}
else if (navigator.appName == 'Microsoft Internet Explorer' && event.button==2){alert(msg);}return true;}
document.onmousedown = right;
</SCRIPT>
<script LANGUAGE="JavaScript" FOR="window" EVENT="onload()">
parent.status = ('LFB Promotion 2002')
</script>
<link rel="stylesheet" type="text/css" href="Logo/sommaire.css">
</head>
<body bgcolor="#E7E7CF" text="#000000">
<div align="center">
<p><b><font size="3" face="Arial">Bonjour <? echo "$pseudo" ?></font></b></p>
<p> </p>
<p><a href="modifperso.php"><font size="3" face="Arial">Modifier ses données personnelles (autoriser la publication dans la
liste des membres)</font></a></p>
<p> </p>
<p><a href="deconnexion.php"><font size="3" face="Arial">Se déconnecter</font></a></p>
</div>
</body>
</html>
Ca par contre c'est bizzare. L'erreur dit que la variable $pseudo n'est pas définie et pourtant si....
PS: Bloquer le clic droit de la souris ne te préservera en rien du vol ;-)
PS: Bloquer le clic droit de la souris ne te préservera en rien du vol ;-)
Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
En fait c'est un script qu'un ami m'a fait, et qu'il a adapté il y a quelque temps sur mon site multimania. Mais maintenant, je l'héberge chez moi avec easyphp... Cela dit, le script marche très bien sur multimania...
Ah , j'ai trouvé... Etant donné que la page n'a pas reçu la variable $_POST['login'], eh bien la variable $pseudo n'a pas été initialisée....
Donc remplacer
Par
Ta page doit elle obligatoirement recevoir un utilisateur connecté avec login?
Donc remplacer
Bonjour <? echo "$pseudo" ?>
Par
Bonjour <? if (isset($pseudo)) echo $pseudo ?>
Ta page doit elle obligatoirement recevoir un utilisateur connecté avec login?
Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
Je n'ai plus de message d'érreur, par contre il n'y a rien d'écrit à coté de bonjour...
Et oui, il est impossible d'acceder a cette page sans se logger a la page precedente
Arnaud
Et oui, il est impossible d'acceder a cette page sans se logger a la page precedente
Arnaud
Je n'y connais rien, mais quand je me log depuis la page d'avant, il y atrès rapidement une page ou je crois lire d'autres undefined variable... Le problème vient peut etre d'une autre page non? car depuis que j'ai transferé mes pages depuis multimania, plus aucune des bases ne fonctionne...
De plus je viens de remarquer que quelque soit le mot de passe que l'on met, il valide du moment que le login est existant...
De plus je viens de remarquer que quelque soit le mot de passe que l'on met, il valide du moment que le login est existant...
J'ai aussi oublié de dire qu'au départ j'utilisait easyphp 1.7 mais que l'on m'a conseillé d'utiliser easyphp 1.6 pour des raisons de compatibilité... Et en effet quand je suis passé sur le six, la plupart des scripts fonctionnaient (dont celui de l'espace membre sur lequel nous sommes en train de nous arracher les cheveux). mais depuis que j'ai redemarré mon ordi ce matin, c'est revenu comme avant sur easyphp 1.7
Arnaud
Arnaud
Bon... Multimania a probablement activé les variables globales, chose que ne fait peut être pas easyphp 1.7 contrairement au 1.6 (ce n'est qu'une supposition).
Pour expliquer en gros: sur multimania lorsque tu envoies une variable via un formulaire tu trouveras dans ce formulaire:
<input type="text" name="une_variable">
Lorsque tu la reçois sur la page de traitement (avec variables globales activées) tu l'auras de cette manière;
// Affichera le contenu de $ma_variable echo $ma_variable;
Avec les variables globales désactivées il faut la recupérer comme ça:
/* Selon la methode employée par le formulaire (get ou post), on va prendre post pat défaut */ echo $_POST['ma_variable'];
Voir: http://www.commentcamarche.net/php/phpform.php3
Bon je dis ça ce n'est qu'une supposition.... En tout cas la seconde solution marche, quelque soit le statut des variables.
Ensuite je n'ai pas l'impression que ton script vérifie le mot de passe des utilisateurs, il va cherche le pseudo dans la base de données puis c'est tout.
On peut même se connecter sur ta page sans s'être loggué.
Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
Merci encore,
J'ai donc remplacé
echo $pseudo
par
echo $_POST['pseudo'];
Mais ça n'a rien changé...
Je file lire ton lien, même si je suis à peu prêt sur que je ne vais rien y comprendre... ;-)
Que penses-tu de tout ça? Que dois je faire? Si le problème est globale il est possible que cela ne viennent pas du code en lui même si?
Arnaud
J'ai donc remplacé
echo $pseudo
par
echo $_POST['pseudo'];
Mais ça n'a rien changé...
Je file lire ton lien, même si je suis à peu prêt sur que je ne vais rien y comprendre... ;-)
Que penses-tu de tout ça? Que dois je faire? Si le problème est globale il est possible que cela ne viennent pas du code en lui même si?
Arnaud
Si tu veux t'adapter à Easy Php 1.7 il faut changer certaines variables qui sont entrées par methode post ou get (voir dans les formulaires:
A partir de là tu adaptes tes variables, au lieu de recevoir des variables depuis un formulaire par $variable, tu reçois par $_GET['variable'] ou $_POST['variable'] selon la methode employée...
<form method="post".......> <form method="post">
A partir de là tu adaptes tes variables, au lieu de recevoir des variables depuis un formulaire par $variable, tu reçois par $_GET['variable'] ou $_POST['variable'] selon la methode employée...
Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
Ce que je ne comprends pas, c'est pourquoi cela a marché quelque temps... Et maintenant fini...
Si tu veux te rendre compte de ce qu'est mon malheur, rdv là:
http://arnaud.myftp.biz
Nous travaillons actuellement dans l'espace membre mais il y a aussi le forum et le chat qui ne marchent pas... plus tout ce qui est mail
Si tu veux tester, tu peux utiliser le pseudo superman et comme mot de passe (bien que tu n'en aie pas besoin) superman64
Arnaud
Si tu veux te rendre compte de ce qu'est mon malheur, rdv là:
http://arnaud.myftp.biz
Nous travaillons actuellement dans l'espace membre mais il y a aussi le forum et le chat qui ne marchent pas... plus tout ce qui est mail
Si tu veux tester, tu peux utiliser le pseudo superman et comme mot de passe (bien que tu n'en aie pas besoin) superman64
Arnaud