[PHP] - Redirection sans fuckin' header() ...

- Redirection sans fuckin' header() ... [PHP] - PHP - Programmation

Marsh Posté le 24-06-2002 à 17:17:05    

Salut à tous les PHPistes ...
 
Je sais que la question a déjà été abordée, mais je n'ai pas vu de réponse sur le forum !
 
En ASP (désolé), on peut faire un Response.Redirect (équivalent de header(), pour les PHPistes purs) n'importe où dans le code, alors pourquoi n'y aurait-il pas une fonction équivalente en PHP (même autre que header(), je m'en fous..) ??
 
Fait chier sur ce coup-là, PHP ! :fou:


---------------
"D'abord arrêter le chimique, et après reprendre l'école ..."  
Reply

Marsh Posté le 24-06-2002 à 17:17:05   

Reply

Marsh Posté le 24-06-2002 à 17:19:29    

Tu peux faire un header() où tu veux dans ton code tant que tu n'as pas envoyé de HTML

Reply

Marsh Posté le 24-06-2002 à 17:27:26    

gm_superstar a écrit a écrit :

Tu peux faire un header() où tu veux dans ton code tant que tu n'as pas envoyé de HTML




 
Oui je sais mais ... ah meeerde, en ASP c'est pareil !
'tain, je pensais avoir déjà fait des redirections après du code HTML en ASP, mais en fait non, c'est comme en PHP.
 
Désolé pour PHP.
 
Bon, je vais me coucher maintenant.


---------------
"D'abord arrêter le chimique, et après reprendre l'école ..."  
Reply

Marsh Posté le 24-06-2002 à 18:30:51    

si tu utilise un systeme de buffering, tu ne dois même plus y faire attention.

Reply

Marsh Posté le 24-06-2002 à 19:41:22    

eske tu pe etre plus clair stp ? :)

Reply

Marsh Posté le 24-06-2002 à 20:26:25    

Tu dois impérativement être en PHP 4..
 
Tu mets :

Code :
  1. <?
  2. ob_start('ob_gzhandler');
  3. ?>

au début du fichier, après tu peux afficher n'importe quoi, de toute manière ce sera mis en cache... Tu peux ainsi mettre des header() n'importe où.
 
Autre solution, utiliser cette fonction :

Code :
  1. function Redirect($dest) {
  2.   if (!headers_sent())
  3.     header('Location: ' . $dest);
  4.   else
  5.     echo '<script language="JavaScript">window.location=\'' . $dest . '\'</script>';
  6. }

Si le header() ne peut fonctionner ça passe par JavaScript. Si JavaScript n'est pas présent chez le user, eh bien la redirection n'aura pas lieu :(.

Reply

Marsh Posté le 24-06-2002 à 21:42:59    

ok merci!

Reply

Marsh Posté le 25-06-2002 à 13:32:10    

pffffft !!
 
ya VACHEMENT plus simple
c une petite fonction toute conne mais qui marche a tous les coups. c pas comme header("truc.php" ) qui marche 2 fois sur 5
 

Code :
  1. function redirige($url)
  2. {
  3.    die('<meta http-equiv="refresh" content="0;URL='.$url.'">');
  4. }


apres pour changer de page tu fais
redirige("tapage.php" )
 
et voila :bounce:


Message édité par JuLenFoRCe le 25-06-2002 à 13:32:38
Reply

Marsh Posté le 27-06-2002 à 11:45:16    

bon bah ca a l'air bon, apparemment
 
personne n'a reposté de message pour faire la redirection :D  :D

Reply

Marsh Posté le 27-06-2002 à 13:55:15    

Tu places de <meta> hors du <head></head> toi :D

Reply

Marsh Posté le 27-06-2002 à 13:55:15   

Reply

Marsh Posté le 27-06-2002 à 13:56:53    

Julien ça fonctionne ton truc si c'est po entre <head> et </head> ?

Reply

Marsh Posté le 27-06-2002 à 14:05:47    

ben, vu que c une fonction php, tu la mets en debut de page entre les balises <? et ?> et pis voila
 
apres tu l'utilises partout dans ta page
 
donc pas besoin de la mettre entrre les balises head, bikoze c po une fonction javascript mais PHP !!!  :sol:

Reply

Marsh Posté le 27-06-2002 à 15:03:29    

T'as po répondu à ma question.

Code :
  1. <html>
  2. <head>
  3. <title>Titre</title>
  4. <!-- Place normale pour les <meta> -->
  5. </head>
  6. <body>
  7. Le texte...
  8. <?
  9. Redirige('page.php');
  10. ?>
  11. </body>
  12. </html>

En temps normal on met les <meta> das le <head> et po dans le <body> donc c'est pour ça que je doute de l'efficacité de ta solution et te demande si dans le cas ci-dessus ça fonctionnera ?

Reply

Marsh Posté le 27-06-2002 à 17:16:48    

ok...on se la refait, moins stressé  ;)  
 
c une fonction PHP et non JS
 
il suffit donc de mettre au tout debut de page, AVANT LE CODE HTML
 
<?
la declaration de la fonction
?>
 
et apres dans la page on l'appelle et pis voila
 
et ca marche A TOUS LES COUPS :bounce:  :p
 
Donc pour repondre a ta question, Dost67, OUI ca marche à tos les coups
 
et pis de toute façon, tu n'as qu'à esayer
tu me diras apres :D


Message édité par JuLenFoRCe le 27-06-2002 à 17:18:04
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed