Page 1 sur 1

erreur de login

Posté : 16 mai 2005, 23:55
par ouis
voila j ai une ffram qui contient entre autre le login.

Mais cette frame me sort une erreur :

Notice: Undefined variable: userid in c:\program files\easyphp1-8\www\dotnet\droite.php on line 10

Voici le code
http://www.phpfrance.com/irc/TheWall/index.php?wall=199

quelqu un pourrait maider ? :/
Merci d avance

Posté : 17 mai 2005, 00:07
par Cyrano
Salut,
t'aider, on le peut sûrement... à condition d'avoir tous les éléments. Le code indique bien à la ligne 10 une variable $userid: la formulation utilisée pourrait être écrite if($userid == false) : Bon, ok, syntaxiquement, il n'y a pas d'erreur, mais. si je me fie à la ligne un peu plus haut, il y a un include : db.php. Est-ce que c'est bien dans ce fichier qu'est définie et initialisée la variable $userid ?

Sinon, où donc est initialisée cette variable ? Quel est le script qui envoie cette variable dans cette page ?

Posté : 17 mai 2005, 00:10
par Xenon_54
Je t'invite à lire ce message qui aborde déjà la question: http://www.phpfrance.com/forums/voir_sujet-37.php
Si tu as d'avantage de question, tu peux revenir les poser ici.

Posté : 17 mai 2005, 00:18
par ouis
en fait userid est une var de mon fichier cookie.php que vous pouvez trouver ici :

http://www.phpfrance.com/irc/TheWall/index.php?wall=200

mais apparamment, c est mal defini..

Posté : 17 mai 2005, 00:23
par Cyrano
Bon, très bien, mais où est la récupération de cette valeur dans la première page mentionnée ? je ne l'ai vue nulle part, et l'interpréteur PHP ne l'a pas vu non plus: donc, il te jette en te disant qu'il ne connait pas cette variable et ne peut pas en interpréter la valeur.

il faut récupérer cette valeur AVANT d'utiliser ta variable.

Posté : 17 mai 2005, 00:29
par ouis
ce que je ne comprends pas c est que mon script fait ce qui est demandé : afficher leschamps de login/pass si aucun userid n'est trouvé, et afficher les infos persos si il les trouve dans un cookie.

Donc niveau résultat, c est la, mais l erreur...

Sinon qu entends tu par definir mon userid AVANT ?

Posté : 17 mai 2005, 00:44
par Cyrano
Voilà la question que j'attendais: en fait, tu n'as peut-être pas posé la bonne question au départ.

Pour utiliser une variable, il faut qu'elle soit initialisée, ce qui signifie que tu lui as attribué une valeur. Le début de ton script fait l'inclusion d'un fichier db.php et ensuite vérifie si une variable $userid est FALSE. Entre les deux, cette variable n'est pas créée, encore moins initialisée, ni même récupérée ailleurs: à moins qu'elle soit initialisée dans le fichier db.php (voir quesion sur ma première réponse)

Et dans ce cas, la formulation ne derait pas être:
if(!$userid)
{
    // ...etc...
Mais
if(!isset($userid))
{
    // ...etc...
Ce qui signifie: si la variable $userid n'existe pas...etc....

Saisis-tu le nuance ?[/php]
Mais de la manière dont est écrit ton script, la réponse donnera toujours TRUE parce que tu ne récupères cette variable nulle part et le ELSE ne sera jamais exécuté.

Posté : 17 mai 2005, 01:04
par ouis
je viens d'eesayer ta methode et il me genere une nouvelle erreur sur cette partie de code :

<?
if !(isset($userid')) {
?>
<script language="JavaScript">
function popUp(url,nom,details) {
window.open(url,nom,details)
}
</script>
<TR>
<TD class='news-grand'>
<TABLE align='left' cellpadding='0' cellspacing='0' width='100%'>
<TR>


l erreur est :

Parse error: parse error, expecting `','' or `')'' in c:\program files\easyphp1-8\www\dotnet\droite.php on line 19


ligne 19 : <TD class='news-grand'>


je suis perdu...

Posté : 17 mai 2005, 08:31
par Cyrano
normal : pourquoi as-tu rajouté une apostrophe juste après la variable $userid ? Regarde bien... PHP attend la seconde.

Posté : 17 mai 2005, 09:19
par sadeq
C'est normal que tu soit perdu, tu ne fais même pas l'effort d'écrire correctement ton programme.
Quand on veut faire de la programmation, il faut prendre le temps à se former et commencer par les bases.

Comment te permets-tu à écrire ça : if !(isset($userid'))
ce qui déclenche l'erreur : Parse error: parse error, expecting `','' or `')'' in c:\program files\easyphp1-8\www\dotnet\droite.php on line 19

Le if de PHP s'écrit : IF (condition)
Mais toi tu mets un opérateur not (!) à l'extérieur de la condition et en plus tu oubli un apostrophe à l'intérieur.
Si t'es perdu à ce niveau, va faloir faire bouger les choses!