Page 1 sur 2

simulation login/password

Posté : 02 mars 2006, 15:51
par gronaze
Bonjour, je m'excuse d'avance de demander quelque chose d'aussi simple mais j'ai 2heures top chrono pour y parvenir et je ne connait rien en php:

J'ai créé une page html toute bête avec une zone login et une zone password plus un bouton valider.
Je voudrai simuler le fonctionnement final de l'application mais sans utiliser de base de donnée pour l'instant.
En clair si je tappe en login "utilisateur" (idem pour le password) je veux que le bouton valider me renvoi a la page utilisateur
Tandis que si je tappe étranger en login et password je veux être renvoyé sur la page étranger...

Vous confirmerez que c'est ridicule même excel pourrait le faire mais je ne sais pas du tout le traduire en php!
Une âme charitable de passage?

Posté : 02 mars 2006, 16:02
par charabia
Dans ta page de récupération des variables, tu récupères avec $_POST['nom_du_champ'].

Et tu fais une condition :
$user = $_POST['utilisateur'];
if( (isset($user)) && ($user=="user1") )
{
 echo "user1";
}
else
{
 echo "user2";
}
Pour les redirections va voir ici : http://www.phpfrance.com/tutoriaux/inde ... edirection

oups!!

Posté : 02 mars 2006, 16:20
par gronaze
désolé au lieu de répondre j'ai fait nouveau...donc la réponse s'appelle hmm...? (oui oui je sais mon surnom est bien choisi)

Posté : 02 mars 2006, 16:21
par charabia
Qu'as-tu comme erreur ? Il ne faut pas recopier texto ce que j'ai mis, c'est un exemple à adapter selon tes champs.

J'ai re-éditer mon code plus haut, j'avais oublié un "="

Posté : 02 mars 2006, 16:24
par gronaze
voilà....Parse error: syntax error, unexpected T_IF in c:\Inetpub\wwwroot\index.php on line 32

En fait est ce que tu pourrais m'expliquer les différentes balises..ça m'aiderait a pas recopier n'importe comment! merki!

Posté : 02 mars 2006, 16:32
par charabia
$user = $_POST['utilisateur']; 
if( (isset($user)) && ($user=="user1") ) 
{ 
echo "user1"; 
} 
else 
{ 
echo "user2"; 
}
$_POST['utilisateur'] correspond à la variable que tu récupères de ton formulaire (ici le nom de ton champ).

Je redéfinie une autre variable pour faire plus court : $user.

le isset teste si la variable existe ou pas.

Donc là je lui dit si la variable existe et qu'elle est égale à "user1", alors afficher user1 (ici au lieu d'affichier tu fais tes redirections), sinon bé tu affiches user2 (idem, redirection dans ton cas à la place de l'affichage).

Posté : 02 mars 2006, 16:43
par gronaze
Voila cke j'ai dans mon code, sachant que le champ de saisi est bien nommé login...et j'ai toujours le même message d'erreur concernant la ligneavec isset...mais euh!!!
(désolé de t'embéter sous ta couette!)
<?
$user = $_POST['login'] 
if( (isset($user)) && ($user=="utilisateur") ) 
{ 
header(../user/incidentsencours/index.php); 
} 
else 
{ 
header(../user/ajout/index.php); 
} 
?>

Posté : 02 mars 2006, 16:50
par Invité
apparemment c'est pas un problème de point virgule! Par contre le bout de code je l'ai glissé juste après body...jvois pas en quoi ça pourrait gêner mais on sais jamais

Posté : 02 mars 2006, 16:50
par Hermès
il manque un ";" après "$user = $_POST['login']"

Posté : 02 mars 2006, 16:56
par gronaze
merci oh grand hermess...maintenant l'erreur elle est à la première ligne avec header et je suis sur que le chemin indiqué est valable

Posté : 02 mars 2006, 16:58
par sadeq
Supposons que t'as 2 pages HTML ou PHP (disons PHP) dont les noms
sont: utilisateur.php et etranger.php

Le programme de la page de connexion qui récupère le login/mot de
passe de l'internaute doit faire :

1. récupèrer le login (utilisateur ou etranger) et le mot de passe tapés
2. orienter la navigation vers la page utilisateur.php si login = utilisateur
et de même pour le login = etranger orienter vers la page etranger.php

le code de cette page est :
connexion.php
<?php
        //Récupèrer login/mot de passe
        $login = $_POST["login"];
        $mot_passe = $_POST["mot_passe"];

        //Orienter vers les pages utilisateur ou etranger
        switch (strtolower($login)){   //strtolower : transforme en miniscule
            case "utilisateur" : 
                    if ($mot_passe == "????")
                         header ("Location: utilisateur.php");
           case "etranger" :
                    if ($mot_passe == "????")
                      header ("Location: etranger.php");
          }
?>
<form method=post>
<p>Login <input name="login">
<p>Mot de passe <input name="mot_passe">
<p><input type="submit" value="Envoyer">
</form>
<p>Veuillez saisir un login/mot de passe valides!
 

Posté : 02 mars 2006, 16:59
par Hermès
Tu n'a rien avant ta balise "<?"

Les problèmes de header, c'est généralement parce que tu as quelque chose de marqué sur ta page (un echo qui traine, une commande qui affiche un message d'erreur, un espace qui se voit pas à l'écran, etc).

Edit : en fait je viens de remarquer, si ton header est là pour faire une redirection, il faut faire
header("Location: ../user/incidentsencours/index.php");

Posté : 02 mars 2006, 17:14
par gronaze
merci tout le monde, ce qui marce le mieux c'est encore le code de sadeq (chapeau c'est tres bien expliqué) mais le problème c'est que j'ai l'impression que rien ne se passe au clic du bouton "envoyer"---><input type="submit" name="Submit" value="Envoyer" />.
Mais au moins la page s'affiche.....

Posté : 02 mars 2006, 17:17
par charabia
Si la page s'affiche c'est que le bouton submit a fait son boulot ;)

Posté : 02 mars 2006, 17:25
par gronaze
non je voulais dire que la page de saisie de login/password s'affiche, ce qui n'était pas le cas avant...comme quoi le code est sans erreurs de syntaxe
par contre on a beau cliquer on revient sur la même page.
les chemins sont corrects c'est certains...
j'arrive vraiment pas à voir d'ou ça vient!