[RESOLU] Rediriger vers une page en php après un switch

Eléphant du PHP | 213 Messages

24 août 2022, 17:05

Bonjour,
J'ai ce code qui fonctionne.
J'aimerai que quand l'user arrive à cette function, une fois le traitement fait, cela le dirige automatiquement vers une autre page.

Code : Tout sélectionner

<!-- ############################### J ############################## --> <?PHP function baliseAssetJ() { if( !empty($_POST['demg'])) { // Attention à ne pas oublier les break // Oublier un break ne retourne pas d'erreur car c'est possible comme écriture switch ($_POST['demg']) { case 'REN': $_SESSION['BaliseJ'] = "[" . $_SESSION["_PDT"] ."_" . $_SESSION['Prt'] . " " . "< AE_" . $_SESSION["Asset"] . ">" ." " . "< AS_" . $_SESSION["Asset-Old"] . ">" . ""."< TPX_" . $_SESSION["Time"] . ">" ."]"; document.location.replace('pagefin.php'); echo $_SESSION['BaliseJ']."case REN"; break; case 'REP': $_SESSION['BaliseJ'] = "[" . $_SESSION["_PDT"] ."_" . $_SESSION['Prt'] . " " . "< AS_" . $_SESSION["Asset-Old"] . ">" . ""."< TPX_" . $_SESSION["Time"] . ">" ."]"; location.replace('pagefin.php'); echo $_SESSION['BaliseD']."case REP"; break; case 'DEM_PDT': case 'PRT': case 'NDO': $_SESSION['BaliseJ'] = "[" . $_SESSION["_PDT"] ."_" . $_SESSION['Prt'] . " " . "< AE_" . $_SESSION["Asset"] . ">" . ""."< TPX_" . $_SESSION["Time"] . ">" ."]"; //echo '<br><br>'.$_SESSION["BaliseA"] .'A <br>'.$_SESSION['BaliseB'].'B <br>' .$_SESSION['BaliseC'].'C <br>' .$_SESSION['BaliseD'].'D <br>'..$_SESSION['BaliseE']."BaliseE créée___case NDO, DEM_PDT, PRT"; location('pagefin.php'); break; default: // On peut même avoir un cas par défaut :-) break; }// Fin du switch }// Fin Empty }// Fin Function ?>
J'ai essayé
document.location.replace('pagefin.php');
location.replace('pagefin.php');
location('pagefin.php');
Mais cela ne fonctionne pas.
Merci
De retour au PHP pour essayer de préserver mon emploi à 59 ans.

Mammouth du PHP | 1967 Messages

24 août 2022, 17:33

si tu es en php la bonne syntaxe de redirection est header('location:URL');

mais attention il y a des limitations, il ne doit ABSOLUMENT pas y avoir de sortie avant le header (echo ou autre ou code html en dehors des balise <?php ?> ni même d'espace ou de retour à la ligne avant le premier <?php)
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

24 août 2022, 18:00

Ni même de commentaire HTML comme le montre ton code ;)

Les tentatives que tu as essayées sont en javascript, du coup si tu veux qu'elles fonctionnent, alors il faut faire :
echo "<script>document.location.href = 'pagefin.php';</script>";
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 213 Messages

25 août 2022, 09:10

Bonjour @rthur, Spols,

Merci beaucoup pour vos explications.
J'avais bien vu cette commande dans PHP.net, mais le fait de lire que"La seule contrainte est que rien ne doit être affiché avant l'appel à cette fonction", je n'ai pas pensé au echo, je pensai qu'il ne fallait pas de code avant.

Merci à vous deux.
De retour au PHP pour essayer de préserver mon emploi à 59 ans.