Pb variables PHP

Fermé
Kazevil Messages postés 8 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 9 février 2009 - 27 nov. 2003 à 14:20
 Utilisateur anonyme - 27 nov. 2003 à 15:33
Bonjour,
j'ai un souci de passage de variables entre un formulaire HTML et un script PHP.
En utilisant la method GET, je passe le contenu de mon formulaire (User Name & Password) à un script php qui en test les valeurs.
En test j'ai mis au début de mon script un echo de mes 2 variables.
Pb il me dit toujours variable non définie. Dans le access.log de Apache je vois bien mon get et les valeurs de mes 2 variables.

Résumé du formulaire :

</TABLE>
<form name="logging" method="get" action="..\php\checklogging.php" target='mainframe' enctype="multipart/form-data">

.
.
<input type="text" size="25" maxlength="20" name="userid"/>

.
<input type="password" size="25" maxlength="20" name="pwd"/>

.
<input type="submit" value="OK" name="sublog"/>


Et voilà mon script :
<?php

echo $userid;
echo $pwd;

	if(empty($userid))
	{
		echo "<HTML>";
		echo "<HEAD>";
		echo "<TITLE> User log on</TITLE>";
		echo "</HEAD>";

		echo "<BODY>";
		
		echo " Log in unsucessful, you can not leave them blank !<BR>";
		echo "<a href='../logon.htm'target='mainframe'> Click to come back to the log on window </a>";
		echo "</BODY>";
		echo "</HTML>";
	}
	elseif($userid=="dhu" && $pwd=="pwd")
	{
		echo "<HTML>";
		echo "<HEAD>";
		echo "<TITLE> User log on</TITLE>";
		echo "<META http-equiv='refresh' content='1; ../files/index.htm' />";
		echo "</HEAD>";

		echo "</HTML>";
	}
?>


Et voilà je comprend pk ça marche pas, surtout que mon if(empty( fonctionne après.
D'avance merci beaucoup de votre aide.
A voir également:

1 réponse

Utilisateur anonyme
27 nov. 2003 à 14:54
Salut,
C'est normal, les variables globales doivent etre à off. Soit tu modifies ton php.ini (peu recommandé), soit tu modifies ta facon de programmer (très recommandé). :)

A la place de :

echo $userid;
echo $pwd;

Fais plutot:

echo $_GET['userid'];
echo $_GET['pwd'];

Tu verras ca va fonctionner beaucoup mieux. :)

Voili voilou ! :)

Kalamit,
Parle à ma culasse, mon carter est malade. :)
0
Kazevil Messages postés 8 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 9 février 2009
27 nov. 2003 à 15:19
Oki, pour l'echo ça marche, merci
Par contre pour mes tests if et else if rien n'y fait pas moyen, il voit toujours mes variables vides. Malgrés que l'echo affiche bien dhupwd, au niveau de mon if il passe toujours dans la boucle empty (cf previous msg)!
J'ai trouvé un exemple ou on utilise la méthode post dans le formulaire, et dans le script PHP on fait directement :
if($userid==xxx)
                   {.............
                    }

pk ça marche pas chez moi, c'est ça qui me rend dingue. si tu prend le code que j'ai joins à mon premier message tu remplace le get par post dans le formulaire HTML et tu vires les echos du script php, et t'as ce que j'ai testé.
A marche pas ???? suis vert
Si tu as une réponse master php se serait cool.
0
Utilisateur anonyme
27 nov. 2003 à 15:33
Bah faut que ca marche pareil !

<?php


	if(empty($_GET['userid']))
	{
		echo "<HTML>";
		echo "<HEAD>";
		echo "<TITLE> User log on</TITLE>";
		echo "</HEAD>";

		echo "<BODY>";
		
		echo " Log in unsucessful, you can not leave them blank !<BR>";
		echo "<a href='../logon.htm'target='mainframe'> Click to come back to the log on window </a>";
		echo "</BODY>";
		echo "</HTML>";
	}
	elseif($_GET['userid']=="dhu" && $_GET['pwd']=="pwd")
	{
		echo "<HTML>";
		echo "<HEAD>";
		echo "<TITLE> User log on</TITLE>";
		echo "<META http-equiv='refresh' content='1; ../files/index.htm' />";
		echo "</HEAD>";

		echo "</HTML>";
	}
?>


Ca, ca doit fonctionner.
Si tu utilise POST à la place de GET dans ton formulaire, a ce moment la, il faut changer tes variables globales dans ton script de traitement:

<?php

	if(empty($_POST['userid']))
	{
		echo "<HTML>";
		echo "<HEAD>";
		echo "<TITLE> User log on</TITLE>";
		echo "</HEAD>";

		echo "<BODY>";
		
		echo " Log in unsucessful, you can not leave them blank !<BR>";
		echo "<a href='../logon.htm' target='mainframe'> Click to come back to the log on window </a>";
		echo "</BODY>";
		echo "</HTML>";
	}
	elseif($_POST['userid']=="dhu" && $_POST['pwd']=="pwd")
	{
		echo "<HTML>";
		echo "<HEAD>";
		echo "<TITLE> User log on</TITLE>";
		echo "<META http-equiv='refresh' content='1; ../files/index.htm' />";
		echo "</HEAD>";

		echo "</HTML>";
	}
?>


Et voili et voilou ! :)

Kalamit,
Parle à ma culasse, mon carter est malade. :)
0