Je préconiserais quand même plus la méthode phpNote à Ryle : de manière générale, ne vaut-il pas mieux conseiller aux débutant d'utiliser du javascript (window.location.replace(url)) pour la redirection ?
Parce que si tu utilises header() le jour où tu décides de mettre en place des sessions, tu as une belle erreur avec un header already sent...
Justement ça dépend peut-être de la version de php (je le concède) mais sur une ancienne version (3 ou 4 je ne sais plus) le code suivant me donnait un header already sent :Le jour ou j'au besoin de mettre en place des sessions, il me suffit simplement de mettre le session_start() avant l'appel à header()
<?php
session_start();
//traitement
if(condition à respecter){
header();
}
?>
pour ça tu n'as pas le choix, session_start() doit toujours être le premier élément écrit en phpl me suffit simplement de mettre le session_start() avant l'appel à header()
Euh... non... du tout... ton session_start() doit être fait avant de pouvoir utiliser les sessions (via $_SESSION ou les fonctions associées), mais ca peut très bien être l'avant dernière ligne de ton code, la seule contrainte étant (comme pour le header) de ne pas avoir envoyé de données au navigateur au préalablepour ça tu n'as pas le choix, session_start() doit toujours être le premier élément écrit en php
Code : Tout sélectionner
<?php
define('LE_PASSWORD','mdp');
// On redirige si le password n'est pas transmis ou s'il est mauvais (différent de la valeur de la constant LE_PASSWORD)
if(empty($_POST['texte']) || ($_POST['texte'] !== LE_PASSWORD)) {
header(
"Status: 301 Moved Permanently", false, 301);
header(
"Location: http://www.faux.com");
exit;
}
else
{
header(
"Status: 301 Moved Permanently", false, 301);
header(
"Location: http://www.juste.com");
exit;
?>
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title></title>
</head>
<body>
<form method="post" action="depart.php" name="formu"><input
name="texte"> <input name="envoyer"
value="Valider la réponse" type="submit"></form>
</body>
</html>
<?php // Je récupère ma valeure du formulaire
// Remarque que texte correspond au nom du champ input dont je veut récupérer la
// valeur
@$txt=$_POST['texte'];
// Si cette valeur n'existe pas
// Pour accélérer les traitements je termine la balise PHP.
if (@!$txt)
{
?>
<form method="post" action="depart.php"
name="formu" id="formu"><input name="texte">
<input name="envoyer" value="Valider la réponse"
type="submit">
</form>
<?php }
// Sinon si la réponse vaut REPONSE que je considère être la bonne réponse,
// j'affiche n message qui me dit que c'est juste...
else if ($txt=="REPONSE")
{
echo("<h1>C'EST JUSTE !!!</h1>");
// C'est ici que tu peux utiliser ton renvoi avec Location
header ("Location: http://simmm.free.fr/");
}
// Toute autre valeur de $texte est fausse donc on affiche un message qui
// indique que la réponse est incorrecte.
else
{
echo("<h1>C'EST FAUX !!!</h1>");
}
echo("Valeur de \$txt = $txt");
?>
Mais ça marche toujours pas...