Redirection en php ...

Résolu
kevin76110 Messages postés 4273 Date d'inscription   Statut Membre Dernière intervention   -  
SlyK Messages postés 854 Date d'inscription   Statut Contributeur sécurité Dernière intervention   -
Bonjour,

j'ai une page en php ( après un formulaire).
Cette page envoi un email etc.
Et, à la fin, j'aimerais faire une redirection, en fonction du résultat d'un des champs du formulaire.

J'ai donc fait une boucle (qui fonctionne):

if ($prise_text == "champs_1") {
header('Location: page1.php');

}

Si je fais un echo toto; à la placer de header, cela me renvoi bien toto.
Mais la page n'est pas redirigée.
Est-ce que c'est parce qu'il y a du code avant?

Comment faire cette redirection ?

Merci d'avance.

K.



°º¤ø,¸¸,ø¤º°'°º¤ø, Contributeur CCM °º¤ø,¸¸,ø¤º°'°º¤ø,
Sous Linux, 99% des bugs se situent entre le clavier et la chaise de bureau...

2 réponses

SlyK Messages postés 854 Date d'inscription   Statut Contributeur sécurité Dernière intervention   147
 
Bonjour,

header tout comme session_start() doit être placé avant tout code HTML.
Pour faire une redirection utilise la balise <meta>.
echo ('<meta http-equiv="refresh" content="0;url=TA_PAGE.php" />');


N'oublie pas de stopper l'exécution du code après cette ligne, pour éviter qu'il continue à lire la page durant le chargement.
die;



Cordialement.
1
kevin76110 Messages postés 4273 Date d'inscription   Statut Membre Dernière intervention   875
 
la redirection se ferait avant même que mon code s'execute :/
Et puis, je ne peux pas faire de condition, si ?
0
SlyK Messages postés 854 Date d'inscription   Statut Contributeur sécurité Dernière intervention   147
 
Pas de problème pour faire des conditions.
0
kevin76110 Messages postés 4273 Date d'inscription   Statut Membre Dernière intervention   875
 
<?php
    ob_start(); 
?>

tout le reste du code
<?php
    if ($prise_text == "champs_1") {
    header('Refresh: 0.001; url=/page1.php'); 
    ob_flush();
    }
    if ($prise_text == "champs_2") {
    header('Refresh: 0.001; url=/page2.php'); 
    ob_flush();
    }
?>
0
SlyK Messages postés 854 Date d'inscription   Statut Contributeur sécurité Dernière intervention   147
 
Le code a changé depuis ton exemple en haut.
As-tu essayé avec location écris sans "L" majuscule ?
header ('location: XXXX.php');
0