Aller au contenu

mot de passe


Sujets conseillés

Posté

Bonjour,

Je suis débutant voire balbutiant en PHP et j'aimerais résoudre un petit problème. Je crée un site dont une page est à accès réservé par mot de passe. Il y a donc un formulaire qui envoie le MDP et, s'il est correct, la page s'ouvre. Mon pb est le suivant : le script fonctionne bien si je clique sur OK dans le formulaire ; en revanche il ne fonctionne pas si j'appuie sur Entrée. Quelqu'un aurait-il la solution ? Merci d'avance.

Posté

Utilises-tu la method GET ou POST pour le fomulaire ?

Ce serait bien si on pouvait voir un aperçu du code...

Posté

J'utilise la méthode Post.

Le formulaire :

<FORM ACTION="private2.php" METHOD="POST">

<tr><td width=5></td><TD> <FONT COLOR=#660000>Mot de passe (indice : future avocate)</FONT></TD></TR>

<tr><td width=5></td><TD><INPUT TYPE="password" NAME="password">

<INPUT TYPE="submit" NAME="ok" VALUE="ok"></TD></TR>

</FORM>

Le script : <?php

if ($_POST['ok'] == "ok") {

if (empty($password)) {

die ("Vous ne vous êtes pas identifié");

}

if (!($password== "sandrine")) {

die ("Votre mot de passe n'est pas correct");

}

echo '<P><font size="2" face="Arial, Helvetica, sans-serif"><b>

Bienvenue sur la page reservée aux amis. Vous y trouverez avant tout des photos et quelques news.

</b></font></P>';

}

?>

Merci.

Posté

Malheureusement, si ton formulaire ne contient qu'un seul champs de type input, IE n'envoie PAS le submit et sa valeur (il n'envoie pas $_POST['ok']).

Ta solution, soit essayer de rajouter un champs supplémentaire (pour le login par ex), soit plus simple et c'est ce que je ferai, tester l'existence de $_POST['password'] plutôt que l'existence du submit.

Au passage, tu ne devrai pas récupérer ton $password directement, çà ne marchera plus avec register_global à off, ce qui est censé être par défaut dans les dernière version de php.

Donc quelque chose comme çà:

if (isset($_POST['password']){
   if ($_POST['password']!= 'sandrine'){
      die ("Votre mot de passe n'est pas correct");
   }else{
       // ton html
   };
};

Posté

Pour ton histoire de $password, le problème, comme le souligne martin, est que n'importe qui passant une url du type :

file.php?password=sandrine

aura accès à ton fichier. Autrement dit, il est 'hyper' vulnérable. Si tu passes par $_POST, tu limites énormément les risques.

Anonymus.

Posté
Malheureusement, si ton formulaire ne contient qu'un seul champs de type input, IE n'envoie PAS le submit et sa valeur (il n'envoie pas $_POST['ok']).

Il n'y a aucun rapport.

Le formulaire renvoit un "contenu" pour $_POST['ok'] si il y a action sur le bouton submit de nom "ok" (name="ok"). Il vaudrait ici la valeur "ok" (puisque value="ok").

Mais, en appuyant sur Entrée, il n'y a pas de clic sur le dit bouton, donc pas d'action. Pas d'action, pas de variable. Pas de variable, heu... pas de variable.

Posté

Tu peux simuler au serveur l'appui sur la touche 'entrée', sur un bouton ou tout autre. Pour cela, tu envoies, avec les entetes, la méthode et les variables qui vont avec. Pas besoin de formulaire pour répondre à... un formulaire. De même, pas besoin de bouton pour envoyer 'submit' à POST.

;)

Posté

en utilisation normale bien sûr. Apres, si tu veux tricher... :hypocrite:

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...