PHP Détection de mot de passe

Perlinkins
Invité n'ayant pas de compte PHPfrance

13 mai 2014, 16:08

Bonjour,

Je suis actuellement confronté, je pense, à un problème de syntaxe sur un exercice de PHP.
L'objectif est de créer une page d'identification et, dans un premier temps, d'assurer une redirection en fonction de l'entrée du mot de passe. S'il est correct alors on arrive sur une page de blog, s'il est incorrect on est redirigé (à savoir qu'on a une consigne de plus où on peux autoriser trois entrée login/mot de passe avant la redirection, mais cet fonction semble bien fonctionner).

Je vous transmets mon code PHP chargé de gérer les différentes situations :
<?php

$mdp=$_post["password"];

if($mdp=="123"||$mdp=="234"||$mdp=="345")
{
header('Location: blogdeflo.php');
}
else
{
session_start();
$_SESSION['nbconnect']=$_SESSION['nbconnect']+1;

	if ($_SESSION['nbconnect']<=3) {
	header('Location: logindeflo.php');
	}
	else {
	header('Location: http://www.google.com/');
	}
}

?>
Je pense qu'il y a un soucis dans la première partie sensée autoriser l'entrée de l'utilisateur s'il entre les mots de passes 123, 234 ou 345. Car le résultat, quelque soit le mot de passe entré, est toujours la redirection (ou vers la page de connexion les 3 premières fois, ou vers Google au bout de la troisième tentative infructueuse).

Pourriez-vous m'éclairer sur la question ?

Merci d'avance.

Eléphant du PHP | 422 Messages

13 mai 2014, 17:08

hello
$mdp=$_post["password"];
=>
$mdp=$_POST["password"]; // en maj
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Mammouth du PHP | 2278 Messages

14 mai 2014, 08:16

Règles de débogage que tout prof digne de ce nom devrait enseigner
La cause de l'erreur est toujours antérieure à l'apparition de l'erreur ou à son signalement.
Quand une variable ne fait pas ce qu'on voudrait, il faut en afficher la valeur.
ainsi:
$mdp=$_post["password"];

if($mdp=="123"||$mdp=="234"||$mdp=="345")
deviendrait
$mdp=$_post["password"];
var_dump($mdp);
if($mdp=="123"||$mdp=="234"||$mdp=="345")
et la question serait de savoir pourquoi $mdp est vide.
Alors, si on ne comprend toujours pas:*
$mdp=$_post["password"];
var_dump($_post);
if($mdp=="123"||$mdp=="234"||$mdp=="345")
De plus, il serait bon de présenter le code toujours de la même façon:
<?php

$mdp=$_post["password"];

/*ici l'accolade est rejetée à la ligne, ce que je préfère*/
if($mdp=="123"||$mdp=="234"||$mdp=="345")
{
header('Location: blogdeflo.php'); //mais le code n'est pas indenté
}
else
{
session_start(); //indentation ? pourrait être mis sans dommage au début du fichier, même s'il ne sert pas dans tous les cas.
$_SESSION['nbconnect']=$_SESSION['nbconnect']+1; //indentation? A quel moment est créée la variable $_SESSION['nbconnect'] ?
         //ici l'accolade  est en bout de ligne : us²age courant; il faut choisir)
         if ($_SESSION['nbconnect']<=3) {
         header('Location: logindeflo.php');//indentation?
         }
         else {
         header('Location: http://www.google.com/');//indentation?
         }
}

?>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 mai 2014, 09:54

pour étayer les remarque sur la mise en forme :
http://a-pellegrini.developpez.com/tuto ... ing-style/ (par exemple).


@+
Il en faut peu pour être heureux ......