Problème de redirection PHP

Fermé
SniP02 Messages postés 95 Date d'inscription samedi 17 avril 2010 Statut Membre Dernière intervention 24 août 2010 - Modifié par SniP02 le 23/08/2010 à 19:17
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 - 25 août 2010 à 09:59
Bonjour a tous,

J'ai inséré cette ligne dans mon script :
<?php header ('Location: index.php');?>

Le problème est que cette ligne s'exécute très bien en "localhost" mais pas sur le web. J'ai donc transformé cette ligne en JavaScript :
<script type="text/javascript">  
     window.setTimeout("location=('index.php');",0)  
</script>

Ce code fonctionne très bien mais les codes JavaScript ne m'intéresse pas sachant que certaine personne le désactive (donc pas de redirection).
Est-ce que vous auriez une solution en PHP autre qu'un header car j'ai vu qu'ils doivent être placé avant tous code XHTML (impossible pour ma page).

Merci d'avance.
A voir également:

6 réponses

InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
23 août 2010 à 19:21
La solution javascript reste efficace, pour les petites malins qui désactivent leur javascript fait un die() juste après ton code. Comme ça ils ne se passera rien.
Parcequ'après en php tu ne pourras pas rediriger si les headers ont déjà été envoyés.
Si tu tiens vraiment à le faire ne php il va falloir t'assurer de faire toutes tes vérifications et ta redirection avant d'envoyer des informations au client.
0
SniP02 Messages postés 95 Date d'inscription samedi 17 avril 2010 Statut Membre Dernière intervention 24 août 2010 5
23 août 2010 à 19:35
Merci pour ta réponse InAme19,
Sinon je me demandé si il y aurait pas une autre solution, je m'explique :

Je me sert d'une redirection pour actualiser la session, car quand un membre se déconnecte ou se connecte il voit encore les liens qui ne le concerne plus jusqu'à la prochaine page qu'il visitera. J'ai donc mis cette redirection pour actualisé la session sans attendre que le membre change de page.
Une autre solution serait-elle possible pour actualiser la session ?
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
23 août 2010 à 19:40
oui tu peux envoyer une requête au serveur en AJAX pour actualiser ta SESSION. Ensuite pour masquer les liens que l'utilisateur ne dois plus voir, tu peux utiliser JavaSCript.
Des bibliothèques très bien conçues permettent de faire tout cela très facilement.
Je te conseille https://jquery.com/ une des meilleures je trouve.
Après tu n'es pas obligé d'utiliser une bibliothèque si tu n'en as pas une réelle utilité.
0
SniP02 Messages postés 95 Date d'inscription samedi 17 avril 2010 Statut Membre Dernière intervention 24 août 2010 5
23 août 2010 à 19:47
Mon problème ne viens pas des liens, le PHP les cache très bien quand la session est correctement actualisé. Je vais regarder pour la solution AJAX. Merci
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
23 août 2010 à 19:52
oui mais ils ne disparaiteront que si tu recharge la page. Si tu actualise la SESSION côté serveur et que côté client la page n'est pas rechargée les liens ne disparaitront pas. Pour modifier à la volée la page côté client sans rechargement, il faut passer par du JavaScript forcément. Php est un langage côté serveur donc une fois les informations envoyés au client il n'a plus de contrôle sur elles.
C'est là que l'AJAX prend son importance, il permet d'envoyer des requêtes au serveur pour exécuter du php et avec du JavaScript il actualise les éléments du client qui ont changés.
0
SniP02 Messages postés 95 Date d'inscription samedi 17 avril 2010 Statut Membre Dernière intervention 24 août 2010 5
23 août 2010 à 19:57
Je regarde à sa tout de suite, aurait tu un site a me conseiller? Je connais bien le site su zéro mais pas mal de cour non terminé. Merci
0
Th0mAs UT Messages postés 29 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 28 décembre 2010 1
23 août 2010 à 20:41
Pourquoi ne pas ultilisé une simple requète HTML ?

<?php
echo "<meta http-equiv='refresh' content='3; URL=http://www.manouvelleadresse.com'></meta>Mon message qui craint :)";
?>

3 correspond au temps d'attente en secondes
0
SniP02 Messages postés 95 Date d'inscription samedi 17 avril 2010 Statut Membre Dernière intervention 24 août 2010 5
Modifié par SniP02 le 24/08/2010 à 17:26
Sa peut être une solution mais je pense que je peux pas placer cette balise <meta> au milieu de mon script ??? Et autre problème, comme la redirection revient sur la même page cette balise s'exécute toute les 3 seconde sans arrêt .Merci
0
salut

j'ai eu le meme probleme header already send by sur ma page livre d'or et la solution a etait de mettre tout mon code php avant mes balises html sur la premiere ligne de la page et sans espace autrement il prend l'espace comme un caractere html.
il te suffit ensuite de reouvrir tes balises php dans ton body en faisant des echo....

en esperant t'avoir etait utile....
0
monkaarnaud Messages postés 24 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 11 octobre 2011 1
24 août 2010 à 20:42
Bonsoir

Chez moi ça fonctionne très bien sauf que j'ai utilisé le doubles côtes.
Donc: <?php header("Location: index.php"); ?>
0
SniP02 Messages postés 95 Date d'inscription samedi 17 avril 2010 Statut Membre Dernière intervention 24 août 2010 5
24 août 2010 à 21:34
oui sa fonctionne très bien en "localhost" avec les doubles ou simple cote, mais sa ne fonctionne pas sur le "web".
0
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
Modifié par ghuysmans99 le 25/08/2010 à 08:42
Essaie de faire ça :
<?php header('Location: http://tonsite.com/index.php');?>

Google is your best friend
VB.NET is good ... VB6 is better !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
25 août 2010 à 09:51
Est-ce que vous auriez une solution en PHP autre qu'un header car j'ai vu qu'ils doivent être placé avant tous code XHTML (impossible pour ma page).

pourquoi impossible ? il suffit juste de ne rien ecrire avant ... mais rien ne t'empeche d'executer du code avant
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
25 août 2010 à 09:59
Je vois pas trop le soucis en fait... Dans tes pages du met:
<a href="deco.php">Déconnexion</a>

Dans "deco.php tu met"
<?php 
   session_destroy();
   header("location: $HTTP_REFERER");
?>


Et zou, ça lui recharge la page en ayant détruit la session..
0