Simple petit script qui ne fonctionne pas avec ie :s

Petit nouveau ! | 9 Messages

08 mai 2007, 17:11

Bonjour à tous !
Voilà je découvre le langague PHP et j'essaie de réaliser des petits scripts
:roll: , mais je recontre ici un problème, mon script ne marche pas, je n'ai aucune erreur mais il ne marche pas et je ne comprends pas pourquoi....
Lorsque je tape le bon mot de passe c'est comme si $_POST['Submit'] n'était pas définie et de plus le script ne réagit pas toujours de la meme maniere c'est très bizarre. :?
Peut etre ca vous sautera aux yeux ! Merci de votre aide :)
<?
// Name : login.php
 
if (isset($_POST['Submit']))
{
	if($_POST['pass']!="password")
	{
		echo "Mot de passe incorrect"."<br>";
		echo " <form action='login.php' method='post' name='login2'>
		<input name='pass' type='text'>
		<input name='Submit' type='submit' value='Envoyer'>
		</form>";
	}
	else
	{
		echo "it's good!!";
	}
}
else
{
	echo "<html>
	<body>
	<form action='login.php' method='post' name='login'>
	<input name='pass' type='text'>
	<input name='Submit' type='submit' value='Envoyer'>
	</form>
	</body>
	</html>";
}
	
?>
Modifié en dernier par Foxstyle le 08 mai 2007, 18:31, modifié 1 fois.

Eléphanteau du PHP | 16 Messages

08 mai 2007, 17:35

Quand tu dit :
je n'ai aucune erreur mais il ne marche pas et je ne comprends pas pourquoi....
La page est blanche ? ou tu tape le bon pass et ca te dit erreur ? ou autre chose ?

Petit nouveau ! | 9 Messages

08 mai 2007, 17:44

Et ben lorsque je tape le mot de passe, j'ai le champ de texte avec le bouton Envoyer, donc c'est comme si je ne rentrai pas dans le if (isset($_POST['Submit'])) mais directement dans le else ... :roll:

Eléphanteau du PHP | 16 Messages

08 mai 2007, 17:50

A ce que j'ai compris dans les tutos isset renvois true lorsque la variable a deja été declarer (creer)

et ca correspond a quoi $_POST['submit'] ??
[/php]

Petit nouveau ! | 9 Messages

08 mai 2007, 18:01

Oui voila isset renvoie True lorsque la variable est définie. Ensuite $_POST['Submit'] c'est la variable renvoyée lorsque le bouton à été validé.

Si on avait :
<input name='Boutton' type='submit' value='Envoyer'>

On testerait la variable $_POST['Boutton'].

Eléphant du PHP | 271 Messages

08 mai 2007, 18:09

Peux tu nous montrer le formulaire..
Patience et obstination sont des qualités !

Eléphanteau du PHP | 16 Messages

08 mai 2007, 18:11

Au lieu de faire que si le pass est different de "password" ca fasse le then et sinon le else. tu devrais faire que si pass=="password" ( que si le pass est egal a password ca fasse le then et sinon le else). Permet moi de rester septible sur l'éficassité de ma solution mais on sait jamais tente. Sinon jai vu que pour dire different (!=) certain mettent 2 = (!==) essaye ca aussi.Mais je te garanti rien.

Petit nouveau ! | 9 Messages

08 mai 2007, 18:14

Oui voilà je l'ai upper ca sera plus simple :

http://shaketonbody.imingo.net/login.php :wink:

Eléphant du PHP | 271 Messages

08 mai 2007, 18:18

Désolé, mais plûtot le code du formulaire
Patience et obstination sont des qualités !

Petit nouveau ! | 9 Messages

08 mai 2007, 18:26

Bon j'ai cliqué sur le lien et j'ai cru que je devenais fou sur le coup, mais en fait pas tant que ca :lol:
Si vous surfez avec firefox, vous ne rencontrerez pas de probleme c'est seulement avec ie qu'il se produit :? ...
Au lieu de faire que si le pass est different de "password" ca fasse le then et sinon le else. tu devrais faire que si pass=="password" ( que si le pass est egal a password ca fasse le then et sinon le else). Permet moi de rester septible sur l'éficassité de ma solution mais on sait jamais tente. Sinon jai vu que pour dire different (!=) certain mettent 2 = (!==) essaye ca aussi.Mais je te garanti rien.
Ouais j'avais déjà tenté mais rien ... :roll: , je ne connaissais pas le !== mais je viens de tenter et rien non plus ^^[/quote]

Petit nouveau ! | 9 Messages

08 mai 2007, 18:29

Désolé, mais plûtot le code du formulaire
Ben le formulaire et le code sont dans une meme page dont j'ai posté le code dans mon premier post:
<?
// Name : login.php
 
if (isset($_POST['Submit']))
{
    if($_POST['pass']!="password")
    {
        echo "Mot de passe incorrect"."<br>";
        echo " <form action='login.php' method='post' name='login2'>
        <input name='pass' type='text'>
        <input name='Submit' type='submit' value='Envoyer'>
        </form>";
    }
    else
    {
        echo "it's good!!";
    }
}
else
{
    echo "<html>
    <body>
    <form action='login.php' method='post' name='login'>
    <input name='pass' type='text'>
    <input name='Submit' type='submit' value='Envoyer'>
    </form>
    </body>
    </html>";
}
    
?>

Le formulaire c'est :
echo "<html>
    <body>
    <form action='login.php' method='post' name='login'>
    <input name='pass' type='text'>
    <input name='Submit' type='submit' value='Envoyer'>
    </form>
    </body>
    </html>";

Eléphant du PHP | 259 Messages

08 mai 2007, 18:37

hello,

un truc simple pour voir ce que te renvoie ton formulaire :

echo '<pre>' , print_r( $_POST , true ) , '</pre>';

tu colle cette ligne avant le moindre test, cela t'affichera tout ce que contient $_POST.

ensuite, tester $_POST['Submit'] n'a aucun intéret. Si tu veux savoir si ton formulaire a été envoyé, tu teste isset( $_POST['pass'] ), il sera automatiquement "set" si le formulaire a été validé (par contre il peut etre "empty" mais cela n'a aucune importance).

Eléphant du PHP | 271 Messages

08 mai 2007, 18:41

Si je comprends :

tu souhaites ouvrir une session avec un mot de passe par une personne qui c'est préalablement inscrite.

Si c'est cela, il faut donc une bdd et interroger ta base pour savoir si le password est valide...
Patience et obstination sont des qualités !

Petit nouveau ! | 9 Messages

08 mai 2007, 19:12

hello,

un truc simple pour voir ce que te renvoie ton formulaire :

echo '<pre>' , print_r( $_POST , true ) , '</pre>';

tu colle cette ligne avant le moindre test, cela t'affichera tout ce que contient $_POST.
Merci pour cette ligne de code assez utile pour débuger ! J'avais placé un echo $_POST['pass'] mais ta commande est plus pratique elle scanne le tableau $_POST. Du coup j'ai constaté que lorsque je tape le mot de passe $_POST['Submit'] devient non seulement vide mais surtout indéfinie... pour des raisons que j'ignore encore.
ensuite, tester $_POST['Submit'] n'a aucun intéret. Si tu veux savoir si ton formulaire a été envoyé, tu teste isset( $_POST['pass'] ), il sera automatiquement "set" si le formulaire a été validé (par contre il peut etre "empty" mais cela n'a aucune importance).
Je n'y avait pas pensé et je vais testé ca peut etre que ca règlera tout, en fait j'ai utilisé $_POST['Submit'] car imaginons que j'ai plusieurs champs de texte pourquoi en choisir un arbitrairement plutot qu'un autre ? ( ca sra le cas quand j'aurai ajouté le champ login par exemple )
Si je comprends :

tu souhaites ouvrir une session avec un mot de passe par une personne qui c'est préalablement inscrite.

Si c'est cela, il faut donc une bdd et interroger ta base pour savoir si le password est valide...
Oui cest tout a fait ca, sauf que ca ne me serivrai a rien de compliqué les choses vu que si ce petit script ne marche pas je peux m'arréter la ^^

Petit nouveau ! | 9 Messages

08 mai 2007, 19:18

Voila grand merci Jules Petibidon ta solution marche !
En tout cas je ne comprends pas bien pourquoi ma solution marche sous firefox et pas sous internet explorer ... :roll:
Et merci à tous ! :wink: