Bonsoir,
La question de redirection d'une page est souvent récurrente, voici un petit tuto.
Alors j'ai peaufiné 3 solutions à moi que je souhaite partagé à utiliser sans modération

:
Façon JavaScript:
On recherche le chemin par rapport au script actuel :
echo $_SERVER['REQUEST_URI']
affiche: /php/bonbon/mysql/index.php
Ensuite on retire index.php car on n'en à pas besoin:
$url=str_replace("index.php","",$_SERVER['REQUEST_URI']);
On applique ça à une partie du script, ici une condition :
if(!$resultat)
{
echo 'Ya une erreur !';
}
else
{
echo 'Ok c\'est bon tout va bien ! <br/>';
echo "<script type=\"text/javascript\">setTimeout(\"window.location='".$url."affichage.php'\",3000)</script>";
C'est sympa ici, car on à l'affichage "Ok c'est bon tout va bien !" et ensuite une redirection sur
affichage.php dans 3secs
Mais attention car le Javascript peut être désactivé sur le navigateur client.
Façon meta http-equiv="refresh":
Dans la logique, cela ne serait pas bon, car les balises meta doivent être dans l'entête <head>...</head> . Donc probablement que le W3C ne l'acceptera pas tel quel dans la page.
Alors il nous faut l'adresse Host:
$host=$_SERVER['HTTP_HOST'];
(ici localhost)
et à nouveau
$chemin=str_replace("index.php","",$_SERVER['REQUEST_URI']);
$url=$host.$chemin; //On rassemble le tout
Puis en réutilisant notre condition au dessus :
else
{
echo 'Ok c\'est bon tout va bien ! <br/>';
echo'<meta http-equiv="refresh" content="3; URL=http://'.$url.'affichage.php"/>';
Voir la méthode compatible W3C un peu plus propre de AB quelque posts en bas, merci AB
Façon en PHP
la fonction header() doit impérativement être utilisée avant tout code HTML (même un espace blanc). Sinon un message d'erreur de type "
headers already sent by" est signalé.
sleep(3);header('Location: '.$url.'affichage.php');exit();
Et voilà, on a quelques façon différentes pour rediriger au bout de x secs sur une autre page.
