Problème PHP MySQL

Fermé
Arnaud - 13 janv. 2005 à 18:12
 Arnaud - 14 janv. 2005 à 20:51
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
            
                
A voir également:

33 réponses

GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 386
13 janv. 2005 à 18:20
Le message suivant:
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)
0
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
0
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
0
ps: c'est au niveau du

echo"$pseudo"
0

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

Posez votre question
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
13 janv. 2005 à 18:39
Il manque un espace :-)
echo "$pseudo";

D'ailleurs tu peux tout aussi bien écrire
echo $pseudo;

Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
0
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>
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
13 janv. 2005 à 19:41
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 ;-)

Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
0
Donc je dois faire quoi? ;-)

Arnaud
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
13 janv. 2005 à 19:44
C'est un code généré par Dreamweaver?

Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
0
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...
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
13 janv. 2005 à 19:57
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
Bonjour <? echo "$pseudo" ?>

Par
Bonjour <?
if (isset($pseudo)) echo $pseudo 
?>

Ta page doit elle obligatoirement recevoir un utilisateur connecté avec login?

Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
                
                
0
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
0
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...
0
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
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
13 janv. 2005 à 20:39

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
0
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
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
13 janv. 2005 à 20:51
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:
<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
0
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
0
Ca j'ai comprends... Je te remercie...
Mais dans notre cas cela n'a pas l'air de fonctionner...

ps: je suis finalement resté sur easyphp 1.6

Arnaud
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
13 janv. 2005 à 20:53
Mais je me trompe sûrement dans ce que je te dis car ton script utilise déjà
$_POST['login'] pour recevoir les variables depuis un formulaire
Donc je ne sais pas....

Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
0