simulation login/password

gronaze
Invité n'ayant pas de compte PHPfrance

02 mars 2006, 15:51

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?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

02 mars 2006, 16:02

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
Modifié en dernier par charabia le 02 mars 2006, 16:22, modifié 1 fois.

gronaze
Invité n'ayant pas de compte PHPfrance

02 mars 2006, 16:20

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)

Avatar du membre
ViPHP
ViPHP | 3008 Messages

02 mars 2006, 16:21

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 "="

gronaze
Invité n'ayant pas de compte PHPfrance

02 mars 2006, 16:24

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!

Avatar du membre
ViPHP
ViPHP | 3008 Messages

02 mars 2006, 16:32

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

gronaze
Invité n'ayant pas de compte PHPfrance

02 mars 2006, 16:43

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); 
} 
?>

Invité
Invité n'ayant pas de compte PHPfrance

02 mars 2006, 16:50

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

Eléphant du PHP | 312 Messages

02 mars 2006, 16:50

il manque un ";" après "$user = $_POST['login']"

gronaze
Invité n'ayant pas de compte PHPfrance

02 mars 2006, 16:56

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

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

02 mars 2006, 16:58

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!
 
Modifié en dernier par sadeq le 02 mars 2006, 17:08, modifié 2 fois.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 312 Messages

02 mars 2006, 16:59

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");

gronaze
Invité n'ayant pas de compte PHPfrance

02 mars 2006, 17:14

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

02 mars 2006, 17:17

Si la page s'affiche c'est que le bouton submit a fait son boulot ;)

gronaze
Invité n'ayant pas de compte PHPfrance

02 mars 2006, 17:25

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!