insérer mots de passes vers pages cibles

alba
Invité n'ayant pas de compte PHPfrance

05 mai 2010, 16:07

Bonjour,

j'aimerais insérer en bas d'une page la possibilité de taper plusieurs mots de passe menant à des pages différentes. Si ces mots de passe ne sont pas tapés, alors on revient à la page de départ avec le commentaire "mauvais password" (que je n'ai pas su insérer).
Je suis totalement novice en la matière, mais voici ce que j'ai tenté mais ça ne marche pas. Un petit (gros) coup de pouce serait super sympa :mrgreen:

1. <?php
2. if ( $_POST["pass"] == "codea" ) {
3. header( "Location: http://www.alpha.com" );
4. exit();
5. }
6. elseif ( $_POST["code"] == "codeb" ) {
7. header( "Location: http://www.beta.com" );
8. exit();
9. }
10. else {
11. ?>
12. <form method="post">
13. <table><tr>
14. <td><input type="password" name="pass"></td>
15. <td><input type="Submit" value="Entrer"></td>
16. </tr></table>
17. </form>
18. <? } ?>

ViPHP
ViPHP | 5462 Messages

05 mai 2010, 16:10

hello, pourquoi ta mis $_POST["code"] apres ? faut garder "pass" :wink:

Alba
Invité n'ayant pas de compte PHPfrance

05 mai 2010, 16:14

Ah oui exact, c'est parce que j'ai collé 2 modèles que jai trouvés. :oops: Par contre, dans la page cette erreur n'apparait pas.

ViPHP
ViPHP | 5462 Messages

05 mai 2010, 16:16

en bas c'est
<?php } ?>
et pas
<? } ?>

Alba
Invité n'ayant pas de compte PHPfrance

05 mai 2010, 16:21

alors j'ai changé le php qui manquait (vu après avoir posté).

Lorsque je tape le premier mdp, je retombe sur la meme page avec le message"
"Warning: Cannot modify header information - headers already sent", et il indique la ligne de la première adresse cible.

ViPHP
ViPHP | 5462 Messages

05 mai 2010, 16:23

t'as autre chose avant ton code ? sinon verfie que l'encodage de ton fichier sois bien en UTF-8 sans BOM

Alba
Invité n'ayant pas de compte PHPfrance

05 mai 2010, 16:29

t'as autre chose avant ton code ? sinon verfie que l'encodage de ton fichier sois bien en UTF-8 sans BOM
Oui j'ai toute ma page avant. Qu'est ce que cet encodate? Tu veux dire au moment de sauvegarder la page?

ViPHP
ViPHP | 5462 Messages

05 mai 2010, 16:31

c'est parce que t'as toute la page avant que ca va pas, les header doivent être placé avant toutes sorties

Alba
Invité n'ayant pas de compte PHPfrance

05 mai 2010, 16:34

Merci pour ton aide mais j'avoue que je ne comprends pas grand chose 8-|
Qu'appelle tu les sorties? Le header dans ce contexte c'est quoi? L'adresse cible?

ViPHP
ViPHP | 5462 Messages

05 mai 2010, 16:38

Merci pour ton aide mais j'avoue que je ne comprends pas grand chose 8-|
Qu'appelle tu les sorties? Le header dans ce contexte c'est quoi? L'adresse cible?
tu trouvera plus d'info ici (juste la description ca suffis) :wink:
header() permet de spécifier l'en-tête HTTP string lors de l'envoi des fichiers HTML. Reportez-vous à » HTTP/1.1 Specification pour plus d'informations sur les en-têtes HTTP.

N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.

ViPHP
AB
ViPHP | 5818 Messages

05 mai 2010, 17:36

Donc tu te débrouille pour structurer ton code avec le code php (qui inclus les headers) en haut de page et tout ton affichage html (qui inclus les formulaires) à la suite du code php (ou tout au moins après le code php qui inclus les headers)

Alba
Invité n'ayant pas de compte PHPfrance

05 mai 2010, 20:58

Merci.
Donc concrètement je place

1. <?php
2. if ( $_POST["pass"] == "codea" ) {
3. header( "Location: http://www.alpha.com" );
4. exit();
5. }
6. elseif ( $_POST["code"] == "codeb" ) {
7. header( "Location: http://www.beta.com" );
8. exit();
9. }
10. else {
11. ?>
just'après la balise html ou la balise head ?
Et le reste je laisse ou c'est :
12. <form method="post">
13. <table><tr>
14. <td><input type="password" name="pass"></td>
15. <td><input type="Submit" value="Entrer"></td>
16. </tr></table>
17. </form>
18. <? } ?>

Désolée, mais c'est vraiment compliqué pour moi ...

Alba
Invité n'ayant pas de compte PHPfrance

06 mai 2010, 12:01

ça a marché! =D> :lol:

Une autre chtite question :oops:
Comment ajouter la phrase "votre mot de passe est incorrect" lorsque l'utilisateur revient sur la page de départ pour retaper le mdp?

Merci

Alba
Invité n'ayant pas de compte PHPfrance

06 mai 2010, 12:03

Et autre chose ... y a t'il un moyen d'éviter le "terminé" en bas de page?

ViPHP
AB
ViPHP | 5818 Messages

06 mai 2010, 17:14

ça a marché! =D> :lol:

Une autre chtite question :oops:
Comment ajouter la phrase "votre mot de passe est incorrect" lorsque l'utilisateur revient sur la page de départ pour retaper le mdp?

Merci
Cela devrait t'aider : sql-bases-donnees/doublon-cause-donnees ... ml#p325052