Redirection en php ...

Résolu
kevin76110 Messages postés 5350 Statut Membre -  
SlyK Messages postés 1060 Statut Contributeur sécurité -
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

  1. SlyK Messages postés 1060 Statut Contributeur sécurité 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
    1. kevin76110 Messages postés 5350 Statut Membre 875
       
      la redirection se ferait avant même que mon code s'execute :/
      Et puis, je ne peux pas faire de condition, si ?
      0
    2. SlyK Messages postés 1060 Statut Contributeur sécurité 147
       
      Pas de problème pour faire des conditions.
      0
  2. kevin76110 Messages postés 5350 Statut Membre 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
    1. SlyK Messages postés 1060 Statut Contributeur sécurité 147
       
      Le code a changé depuis ton exemple en haut.
      As-tu essayé avec location écris sans "L" majuscule ?
      header ('location: XXXX.php');
      0