Bonjour à tous. J'ai un petit problème avec mon code php. Comme je suis newbee, j'ai regardé comment permettre l'accès à une page via mdp sur le site du zéro (que je salut au passage). Le souci, c'est que cette solution ne prévoie qu'une apparition de donnée et non pas une redirection automatique au cas ou le mot de passe serait le bon. Cela fait une semaine que je débat dans le code et la solution trouvée à ce type de manip serait "header()" mais je crois que j'ai un conflit de header avec l'excellent styleswitcher que vous avez proposé. Comment faire pour lier les deux??
Voici le code concerné :


<div class="cadretext">
<?php
// J'ai choisi le mot de passe "kangourou"
if (isset($_POST['mot_de_passe'])) // Si la variable existe
{
    // On se crée une variable $mot_de_passe avec le mot de passe entré
    $mot_de_passe = $_POST['mot_de_passe'];
}
else // La variable n'existe pas encore
{
    $mot_de_passe = ""; // On crée une variable $mot_de_passe vide
}
 
if ($mot_de_passe == "adipro77300") // Si le mot de passe est bon
{
// On affiche la page cachée.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Adiserve - enregistrement</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
        <p>
        Veuillez patienter, vous aller &ecirc;tre redirig&eacute; vers AdiservePro.
        </p>
    </body>
</html>
<?php
}
else // le mot de passe n'est pas bon
{
// On affiche la zone de texte pour rentrer le mot de passe.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Page protégée par mot de passe</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
<h1>Veuillez entrer votre mot de passe :</h1>
<form action="formulaire.php" method="post">
<p>
<input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" />
</p>
</form>
    </body>
</html>
<?php
} // Fin du else
// Fin du code [smile]
?></div>


Merci à tous de votre aide Smiley biggrin A bientôt. Smiley ravi
Bonjour,

Pour utiliser un "header" il faut le placer avant tout code HTML ou "echo" dans ta page. En fait il faut que le serveur n'ai pas encore envoyé d'entête de page pour qu'il prenne le header en compte.

Il te suffit donc, dans ton cas, de faire la vérification du mot de passe avant toutes choses :


if(isset($_POST['mot_de_passe']))
{
  if ($_POST['mot_de_passe']=="adipro77300") header("Location: bon_mot_de_passe.php");
  else header("Location: mauvais_mot_de_passe.php"); // => renvoi sur la page de login (par exemple)
}
// code de ta page HTML


Vala !

Cordialement,
Polo
SUPER !Merci de ta réponse rapide Smiley smile Je vais essayer cela ce soir, en sortant du boulot. Je te tiens au cournat de l'avancée des évènements, A ++ Smiley ravi
Salut, comme convenu j'ai essayé ta solution. Je te remercie beaucoup car elle fonctionne à merveille. En fait, si l'on regarde le code édité dans mon post plus haut, j'ai effectué quelques aménagements : Le premier : créer une page mdp.php--> en effet, mon "action:" renvoi vers la page d'origine, c'est ça qui cré une erreur php avec le header Smiley biggol donc insérer
if(isset($_POST['mot_de_passe']))
{
  if ($_POST['mot_de_passe']=="adipro77300") header("Location: bon_mot_de_passe.php");
  else header("Location: mauvais_mot_de_passe.php"); // => renvoi sur la page de login (par exemple)
}
// code de ta page HTML
dans nouvelle page et rediriger par la suite vers mauvais_mdp.php ou vers bon_mdp.php.

Solution toute bete, mais je n'y avais pas pensé.... Smiley confus

Voila, vous pouvez mettre cette page en résolu maintenant. Merci beaucoup Smiley cligne