bizarre bizarre

Eléphant du PHP | 152 Messages

12 juil. 2005, 12:01

bonjour a tous


J'ai un code qui dit que quand je tape le bon mot de passe sa minclue la page liste_news.php et si pas bon sa me ramene a index.php

mais le probleme c'est que meme en tapant bon mot de passe sa me ramene a la page index.php

la je ne comprend pas , merci davance a celui qui trouvera ce qui cloche
<? 


if (isset($_POST['mot_de_passe']))
{
   
   $mot_de_passe = $_POST['mot_de_passe'];
}
else 
{
   $mot_de_passe = "";
}


if ($mot_de_passe == "lefox88500") 
{
include ("liste_news.php");
}
else 
{
?>


<html>
    <head>
        <title></title>
    </head>
    <body>
<p>Veuillez entrer le mot de passe :</p>
<form action="index.php" method="post">
<p>
<input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" />
</p>
</form>
</center>
</body>
</html>

<?

}

?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 juil. 2005, 12:06

Met ce code et dit nous ce qu'il fait

Je me suis permis de formater un peu ton code pour le compresser
<?
if (isset($_POST['mot_de_passe'])) {
   $mot_de_passe = $_POST['mot_de_passe'];
} else {
   $mot_de_passe = "";
}

echo "MDP : ".$mot_de_passe."<br />\n";

if ($mot_de_passe == "lefox88500") {
  include ("liste_news.php");
} else {
?> 
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éphant du PHP | 152 Messages

12 juil. 2005, 12:25

hé ben merci pour la compression
mais il me renvoie toujours a la page index
je compren rien la

Flo
Eléphanteau du PHP | 48 Messages

12 juil. 2005, 12:31

Si tu place un echo pour ton code HTML ça ne suffit pas ?
En reprennant le code de zeus ça donnerai ça:
<?
if (isset($_POST['mot_de_passe'])) {
   $mot_de_passe = $_POST['mot_de_passe'];
} else {
   $mot_de_passe = "";
}

echo "MDP : ".$mot_de_passe."<br />\n";

if ($mot_de_passe == "lefox88500") {
  include ("liste_news.php");
} else {
echo"
<html>
    <head>
        <title></title>
    </head>
    <body>
<p>Veuillez entrer le mot de passe :</p>
<form action='index.php' method='post'>
<p>
<input type='text' name='mot_de_passe' /> <input type='submit' value='Valider' />
</p>
</form>
</center>
</body>
</html>
";
}
?>

Mammouth du PHP | 19672 Messages

12 juil. 2005, 13:10

Si tu place un echo pour ton code HTML ...
Grrrrrrr, pourquoi faire interpréter inutilement le HTML à PHP: ça alourdit et ralentit l'application: le HTML n'a nullement bsoin d'être interprété coté serveur pour être ensuite envoyé au navigateur qui va de toute façon interpréter le HTML.

Cette méthode de programmation n'est pas propre.

Pour le problème, vérifie donc une chose en faisant la chose suivante :
<pre>
<?php
var_dump($_POST);
?>
</pre>
Vérifie donc ce que tu envoies via ton formulaire ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 152 Messages

12 juil. 2005, 13:46

cyrano faut que ej place ta comande a quel niveau entre quoi et quoi ?

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

12 juil. 2005, 13:49

tu places cette commande ARPES avoir rempli la variable.

Mammouth du PHP | 19672 Messages

12 juil. 2005, 13:56

Sois logique lefox88500: on veut afficher les variables envoyées par le formulaire, donc chronologiquement, il faut que ce soit à un endroit où le code est exécuté APRÈS le clic sur le bouton d'envoi.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 152 Messages

12 juil. 2005, 13:57

apres la ligen la alors
$mot_de_passe = $_POST['mot_de_passe'];

Mammouth du PHP | 19672 Messages

12 juil. 2005, 14:00

Après ou avant cette ligne là n'a aucune importance, on va faire afficher le contenu de la super-globale $_POST
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 152 Messages

12 juil. 2005, 14:02

ben sa me ramene a l'index sans rien m'affciher de special

Eléphant du PHP | 152 Messages

12 juil. 2005, 14:04

mais quand je fait sa tout ce qui ets apres ce code est qui devrait apparaitre en PHP n'est pu reconnu comme du PHP

Mammouth du PHP | 19672 Messages

12 juil. 2005, 14:07

<pre>
<?
var_dump($_POST);
?>
</pre>
<?php

$mot_de_passe = isset($_POST['mot_de_passe'])?$_POST['mot_de_passe']:"";
/*
if ($mot_de_passe == "lefox88500")
{
    include ("liste_news.php");
}
else
{
    */
?>
<html>
    <head>
        <title></title>
    </head>
    <body>
<p>Veuillez entrer le mot de passe :</p>
<form action="index.php" method="post">
<p>
<input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" />
</p>
</form>
</center>
</body>
</html>
<?
/*}*/
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 152 Messages

12 juil. 2005, 14:16

le bon code est celui ci en fait avec ce mode de mot de passe il faut que la page de la condition negative doit etre la meme que celle ou le code est deja voila


mes propos son a verifier par expert mais il me semble que C juste car pour moi sa a marcher


<? 


if (isset($_POST['mot_de_passe'])) 
{ 
   
   $mot_de_passe = $_POST['mot_de_passe'];  
} 
else 
{ 
   $mot_de_passe = ""; 
} 


if ($mot_de_passe == "lefox88500") 
{ 
include ("liste_news.php"); 
} 
else 
{ 
?> 


<html> 
    <head> 
        <title></title> 
    </head> 
    <body> 
<p>Veuillez entrer le mot de passe :</p> 
<form action="identification1.php" method="post"> 
<p> 
<input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" /> 
</p> 
</form> 
</center> 
</body> 
</html> 

<? 

} 

?> 
[/php]