8722 sujets

Développement web côté serveur, CMS

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.

<!-- ############################### 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  [smile]
          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
Bonjour,

La fonction PHP que tu recherches est header, qui te permet d'envoyer une en-tête HTTP au navigateur (https://www.php.net/manual/fr/function.header.php). La seule contrainte est que rien ne doit être affiché avant l'appel à cette fonction (donc pas de echo).

Exemple d'utilisation pour envoyer une en-tête de redirection :
header("Location: /mapage.php");

Modifié par GuillaumeBauer (24 Aug 2022 - 18:15)
Meilleure solution
Bonjour GuillaumeBauer,
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 pour ton explication.
Au passage, ce code fonctionne très bien pour la création d'une page login personnalisée pour WordPress.