Redirections et changement d'urls

cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 - 7 déc. 2005 à 22:34
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 - 8 déc. 2005 à 08:57
Bonsoir,
J'ai un soucis... Sur mon site dès fois je fais des opérations et je ne voudrais pas qu'elles se répètent en faisant un bête rafraichissement de la page...moi je fais des includes pour le moment. Je sais que ce n'est pas vraiment recommandé mais je n'ai pas d'autre solution, pour la sécurité je ne peux faire de redirection en javascript...
DONC, je voulais savoir s'il était possible de faire une redirection en php, qui en faisant un refresh de page ne reExecute pas le code de la page appelante !
Merci bonne soirée !!!

4 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
7 déc. 2005 à 22:41
Salut,

cherches header, t'as plein de posts dessus... surtout en ce moment...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
7 déc. 2005 à 23:02
Ouais je vois je me serai plutot dirigé vers les headers mais voilà quand je rafraichit il rafraichit depuis la page originelle !!!
La recherche par mots associés rien trouvé...
J'ai cherché dans mon .chm d'habitude ça suffit mais là je sèche... Faudrait que je trouve le moyen qu'une page n'execute pas un script 2 fois de suite !
On pourrait utiliser les sessions et stocker dedans la dernière page visité si on rafraichit forcèment ça re execute le code PHP on check est-ce que ça a déjà été exécuté.
Si oui => erreur
Si non => on continue

je sais pas ce que tu en penses mais tu me donnes des idées toi !!!
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
8 déc. 2005 à 01:23
Bah oui, les sessions !
<?php
session_start();
if ( isset($_SESSION['ping']) && $_SESSION['ping'] ) {
die('Erreur, pas le droit de refresh');
} else {
$_SESSION['ping'] = true;
}

// Suite du code

?>
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
8 déc. 2005 à 08:57
Heu... ouais la tu va pas pouvoir rafraichir tout le site ?
faudrait plutot faire...

<?php
function checkRefresh(){
if ( isset($_SESSION['dernierePage']) && $_SESSION['dernierePage'] == <tt>$_SERVER['PHP_SELF']</tt>) {
return false;

} else {
$_SESSION['dernierePage'] = <tt>$_SERVER['PHP_SELF'];
return true;

</tt> }
}
?>

ça suppose que tu as déjà fait ton session_start(), et donc que tout ton site est modulaire...
Cette fonction te permet en appelant checkRefresh en début de pouvoir savoir si la page est rafraichit ou pas.<tt> Par exemple :
<?php
require_once('fonctions.inc');
if(checkRefresh()){
// pleins de traitement
// ex : insertion dans la BD, upload d'images...
// le code n'est exécuté qu'une seul fois
}
// tu affiches le truc que tu voulais que ça affiche sur ta redirection
include('redirection.php') ou header('Location : redirection.php');
?>

Merci les gars c'est tout à fait ce que je voulais !
</tt>
0
Rejoignez-nous