8768 sujets

Développement web côté serveur, CMS

Le script php fonctionne jusqu'à
  
   $titreGlobal = "Pas encore créé";
                echo $titreGlobal

Mais la redirection vers la page "objectifs.php" ne se fait pas.
Si je remplace " header('Location: objectifs.php')" par "nclude ("objectifs.php"); ", cela fonctionne, mais je ne veux pas charger "objectifs.php" sur la page d'authentification; je veux quitter la page d'authentification et aller sur la page "objectifs.php".
Merci de votre aide. Smiley smile

[code=php function chargerGlobal() {
$sql = "SELECT * FROM global WHERE nuser = '$nUser' AND semaine = '$semaine'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$titreGlobal= $row["titre"];
}
echo "titreGlobal = ". $titreGlobal;
} else if (mysqli_num_rows($result) == 0) {
$titreGlobal = "Pas encore créé";
echo $titreGlobal;
header('Location: objectifs.php');
//include ("objectifs.php");
}][/code]
Modifié par fredericmarcel (09 Dec 2015 - 07:58)
Tu ne peux plus changer le header après avoir envoyé du texte par "echo". Intervertis les deux instructions, ça devrait marcher.
Merci. Je viens d'essayer, mais ça ne marche toujours pas.
Par contre, ceci résoud le problème.
echo "<script type='text/javascript'>document.location.replace('objectifs.php');</script>";


Je ne comprends toujours pas pourquoi l'un ne marche pas tandis que l'autre oui, mais je peux avancer. Smiley smile
Comme explique Papy,

Il est impossible de faire un header après un echo.
Et puis pourquoi le faire en php ? alors qu'en JS comme tu viens de le faire fonctionne très bien