formulaire et mot de passe

Eléphanteau du PHP | 37 Messages

04 nov. 2007, 12:18

bonjour,

j'ai cree un formulaire avec un champ password et un bouton submit qui renvoit a la page saisie.php

dans la page saisie.php, je verifie si le champ saisie est bien "xyz".


Si c'est bien ca le script continue, si c'est pas ca, je renvoi une page d'erreur avec indique "mauvais mot de passe" et un bouton "retour"

donc, j'arrive a ecrire la partie pour savoir si le mot de passe est bon, par contre je n'arrive pas a ecrire que si le mot de passe est mauvais un nouvelle page "erreur.php" s'ouvre.

help
merci d'avance

ViPHP
ViPHP | 4674 Messages

04 nov. 2007, 12:31

Bonjour,

tu as plusieurs solutions pour résoudre ton problème. Dans la plupart des cas, ce problème se résout en utilisant une redirection.
Tu as différentes manières de procéder pour effectuer une redirection. Je ne saurais pas être plus clair que notre ami Victor Brito (sur Alsacréations, oui, il a une double vie) : Redirection vers une page après quelques secondes. Je pense que ça peut t'intéresser, surtout qu'il y a quelques liens intéressants qui sont donnés au fil de la discussion. Et j'aime beaucoup les interventions de notre ami (oui, on en a beaucoup des amis) Laurent Denis. Enfin bref, tu devrais le lire, c'est très intéressant.

Tiens nous au jus ;-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 185 Messages

04 nov. 2007, 12:35

Ton code dans le fichier saisie.php pourrait ressembler à quelque chose de ce style :

$pass = $_POST['pass'];

if (isset($pass) && $pass != "xyz") {
include ('erreur.php');
}
else {
// continue le script
}

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

04 nov. 2007, 12:46

D'une manière générale, pour éviter des possibilités de tentatives de piratages simples en faisant "Précédent/suivant" qui repasse par la fiche de validation, j'ai tendance à préférer un script qui teste si l'authentification est OK ou non et qui redirige dans tout les cas avec la fonction header().
Comme ça, le script de validation du mot de passe est transparent pour le navigateur.

De même, je prévois toujours les cas que j'accepte et refuse les autres. Dans ton exemple, Kaoteknik, si $_POST['pass'] n'est pas défini, l'authentification est acceptée.
Le principe que je suis permet de ne pas laisser la place à une erreur de code que nous sommes tous susceptibles de faire. ;)

Un exemple simple serait le suivant
$pass = $_POST['pass'];

// Si le pass a été saisi et qu'il est valide
if (isset($pass) && $pass == "xyz") {
  // Redirection vers la page de réussite du login
  header('index_connecte.php');
  // Le exit() permet d'arrêter le script si le header() n'a pas fonctionné
  exit();
}
// Erreur de connexion
else {

  // Redirection vers la page d'erreur
  header('erreur.php');
  // Le exit() permet d'arrêter le script si le header() n'a pas fonctionné
  exit();
}
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 37 Messages

04 nov. 2007, 12:53

nickel ca fonctionne

merci a tous