Redirections et changement d'urls

Signaler
Messages postés
285
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
27 juin 2006
-
Messages postés
285
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
27 juin 2006
-
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

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
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)
Messages postés
285
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
27 juin 2006
1
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 !!!
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
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

?>
Messages postés
285
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
27 juin 2006
1
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>