erreur de login

ouis
Invité n'ayant pas de compte PHPfrance

16 mai 2005, 23:55

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

Mammouth du PHP | 19672 Messages

17 mai 2005, 00:07

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 ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1885 Messages

17 mai 2005, 00:10

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.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

ouis
Invité n'ayant pas de compte PHPfrance

17 mai 2005, 00:18

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..

Mammouth du PHP | 19672 Messages

17 mai 2005, 00:23

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ouis
Invité n'ayant pas de compte PHPfrance

17 mai 2005, 00:29

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 ?

Mammouth du PHP | 19672 Messages

17 mai 2005, 00:44

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é.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ouis
Invité n'ayant pas de compte PHPfrance

17 mai 2005, 01:04

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...

Mammouth du PHP | 19672 Messages

17 mai 2005, 08:31

normal : pourquoi as-tu rajouté une apostrophe juste après la variable $userid ? Regarde bien... PHP attend la seconde.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

17 mai 2005, 09:19

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!
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène