Bonsoir,
Après la validation d'un formulaire celui-ci m'affiche par exemple "Votre compte à était validé" je souhaiterais pouvoir rediriger la page vers une autre j'ai trouve deux ou trois trucs sur le web mais rien de très parlant .
Quelqu'un aurait il une petite solution à me proposer?
Merci d'avance
sinon en PHP:
header("Refresh: X ; url= Y");
X : Nombre de secondes à attendre.
Y : Le lien de destination.
Salut, pour ton système de notifications qu'est ce que tu dirais de faire un système comme le propose cakePhp (je crois) avec la fonction setFlash() en utilisant les sessions ? Grafikart l'utilise dans un tuto (mais je n'ai pas vu de tuto qui traite la fonction directement).
Ça couplé à une fonction redirect() est la meilleure solution que j'ai trouvé.
Voilà comment moi j'ai fait, n'hésitez pas à corriger si vous voyez des erreurs:
<?php
//FONCTION REDIRECTION
function redirect($redirect){
header("Location:".$redirect).die();
ob_end_flush();
}
// Tu rediriges donc en tapant redirect(le_nom_de_ta_page);
//FONCTION POUR MESSAGES DE NOTIFICATION
function setFlash($message = array()) {
$_SESSION'message'] = array(
'value' => $message'value'],
'message' => $message'message']
);
}
function flash() {
// Ici rien de spécial, si la variable de session message existe alors ça l'affiche et la supprime aussitôt.
if (!empty($_SESSION'message'])) {
echo "<div class='flashbox alert " . $_SESSION'message']'value'] . "'>";
echo '<p>' . $_SESSION'message']'message'] . '</p>';
echo "</div>";
unset($_SESSION'message']);
}
}
La fonction flash est à inclure dans toutes tes pages.
Et ensuite pour définir un message :
<?php
// Tu définis un message à afficher :
setFlash(array(
//Value étant la nature du message, par exemple ok pour une validation, stop pour une interdiction ou une erreur etc...
//Value sera donc retourné comme étant une div.class qu'il faudra ensuite styliser.
'value' =>'ok',
//Message étant bien évidemment le message à afficher.
'message' =>"Hello World !"
));
//Puis tu utilises ta fonction redirect
redirect('index.php');
L'avantage bien sur c'est que tu n'as pas besoin de faire une page qui ne sert qu'à afficher ce message, tu peux directement afficher le message dans la page vers laquelle tu rediriges, ensuite un peu de JavaScript pour faire disparaitre le message au bout de 3 secondes, comme tu le voulais et le tour est joué ! :)
Voilà, en espérant que ça te donne un petit coup de main, j'ai parfois du mal à m'exprimer correctement, si quelque chose te bloque n'hésite pas. :)
J'oubliais, il faut que tu commences tes pages avec la fonction ob_start() pour que la fonction redirect() fonctionne. :)
Oki cela m'a l'air un peu plus complexe mais peut-etre plus souple quand il est installé je vais me plongé pour comprendre le code.
En tout cas merci de prendre le temps.