Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1249 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Redirection sans header()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Redirection sans header()

n°1012503
belay
Posté le 14-03-2005 à 19:59:04  profilanswer
 

Bonjour !
 
Y-a-t-il un moyen de rediriger vers une page sans utiliser la fonction header()... Parce que j'ai une imbrication d'include() qui m'impose de passer du code html avt un envoi de fonction header() ....
D'où ma question ....  :ange:  

mood
Publicité
Posté le 14-03-2005 à 19:59:04  profilanswer
 

n°1012514
sonikbuzz
echo "Hello World!";
Posté le 14-03-2005 à 20:18:40  profilanswer
 

Salut,
 
JavaScript: document.location

n°1012530
deliriumtr​emens
sic transit intestinal...
Posté le 14-03-2005 à 20:33:45  profilanswer
 

Ou bien tu regardes du côté de ob_flush (ou proche de ça, bref ob_xxx), ce qui peut te permettre te passer outre le problème de html avant header...

n°1012544
cerel
Posté le 14-03-2005 à 20:46:16  profilanswer
 

belay a écrit :

Bonjour !
 
Y-a-t-il un moyen de rediriger vers une page sans utiliser la fonction header()... Parce que j'ai une imbrication d'include() qui m'impose de passer du code html avt un envoi de fonction header() ....
D'où ma question ....  :ange:


 
Alors c'est que tu n'as pas bien construit ton site...
 
[mode "Je me la pete"]
Mon cms maison permet de metre un header n'importe ou, et sans utiliser les buffer (ob_flush). Je fait simplement en sorte que l'envoi des donnees ne se fasse qu'a la fin de tout le traitement php (je le repete sans buffer).
[/mode "Je me la pete"]

n°1012585
belay
Posté le 14-03-2005 à 21:41:39  profilanswer
 

Merci à tous ...
Mais à priori Cerel à raison.... :D
Jsui en train de revoir la structure de mon site :D
Et au prie je regarderai du coté de ob_qqch ;)

n°1012612
belay
Posté le 14-03-2005 à 22:06:18  profilanswer
 

Bon en fait ce que je pensais ne marche pas :( ... Je vous donne des morceaux de code :

Citation :

L'ERREUR :
Warning: Cannot modify header information - headers already sent by (output started at e:\mes documents\belay\www\index.php:11) in e:\mes documents\belay\www\phpbb.php on line 83


Citation :


LE DEBUT DE LA PAGE INDEX :3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
<link href="/css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="conteneur">
LIGNE 11--->   <?php
  include ('head.php');
  ?>
 
  <div id="conteneur2">
   <div id="gauche">
   <?php
   include ('nav.php');
   ?>
   </div>


Citation :


LA PAGE CONTENANT LE HEADER :
 
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
 
// If user is not logged in - redirect to the login page with this scriptname as a redirect to...
if( !$userdata['session_logged_in'] )
{
header("Location: " . append_sid("../login." . php . "?redirect=" . $PHP_SELF));
}


 
Les include de la page index.php me permettent d'insérer mais page de mise en forme HTML ....
Donc en gros ds une rubrique de mon site qd je clique sur un item ça me lance le fichier phpcheck.php (qui contient le HEADER) et bim bam boum erreur parce que forcement avt j'ai chargé les diverses pages du site...
Le fichier phpcheck me permet d'utiliser les session utilisateurs que phpBB .... j'ai trouvé un script tout fait sur leur site...Qui marche sans pb tout seul mais à inclure ds le design de mon site c'est une galére...
J'ai lu d'utiliser un include_once....Est ce que ça peu corriger le pb ..
MErci de votre aide ...

n°1012882
cerel
Posté le 15-03-2005 à 08:01:07  profilanswer
 

Tu ne peux rien "envoyer" avant de faire ton header, meme pas d'espaces.
Or dans ton code tu "envoi" plein de code html avant...
En gros ton <? doit etre au debut du fichier, et pas d'echo avec du html avant ton header.
 
Donc tu dois faire en sorte que le header soit la premiere chose que php va "envoyer" au nav.

n°1012906
belay
Posté le 15-03-2005 à 09:18:37  profilanswer
 

Arf ça va etre dur :D

n°1015044
belay
Posté le 16-03-2005 à 19:23:07  profilanswer
 

Jveu bien masi comment je fais pour utiliser mes pseudos frames :D .... Parce que si le code n'apparait pas à sa place...Bah ça marche po

n°1015297
belay
Posté le 16-03-2005 à 21:50:06  profilanswer
 

Bah en fait j'ai utilisé ce code html classique :D

Code :
  1. if($logout) 
  2. {
  3.     session_end($userdata['session_id'], $userdata['user_id']);
  4. die('<META HTTP-equiv="refresh" content=0;URL='. append_sid($redirect_logout) . '>');
  5. }
  6. elseif( $userdata['session_logged_in'] ) 
  7. {
  8. die('<META HTTP-equiv="refresh" content=0;URL='. $go_logout . '>');
  9. }
  10. else
  11. {
  12. die('<META HTTP-equiv="refresh" content=0;URL='. $go_login . '>');
  13. }

mood
Publicité
Posté le 16-03-2005 à 21:50:06  profilanswer
 

n°1015368
nemohp
Adepte du provisoire permanent
Posté le 16-03-2005 à 23:03:46  profilanswer
 

+1 pour cette methode

n°1015384
farib
Posté le 16-03-2005 à 23:10:47  profilanswer
 

cerel a écrit :

Je fait simplement en sorte que l'envoi des donnees ne se fasse qu'a la fin de tout le traitement php (je le repete sans buffer).
[/mode "Je me la pete"]


 
Comment donc ?  :??:


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°1015567
cerel
Posté le 17-03-2005 à 07:57:48  profilanswer
 

Personellement j'utilise des templates pour separer le code html du code php.
Ensuite j'ai cree un pseudo systeme de "modules".
 
La page index.php s'occupe de charger la template du fichier index. Dans cette template il y a l'emplacement pour le code html qui est prevu.
Chaque module (lorsqu'il est charge) me renvoie une chaine de chars avec le "son" code html. Une fois que je recois cette chaine je l'introduis a l'endroit souhaite de la template puis, et uniquement a la fin de tout le processus, je renvoi le code html genere par la template au browser.
 
Un module pour faire simple, c'est simplement une page php avec une fonction predefinie "getContent" qui s'occupe de renvoyer le code html.
 
L'avantage de cette technique est que l'envoi de code html ne se fait que depuis index.php est uniquement apres toute la phase de traitement. Les modules, s'ils ont besoin peuvent utiliser header, ou les autres methodes qui ont besoin de modifier les headers, sans probleme.
 
J'ai meme laisse la possibilite aux modules de changer le titre de la page s'ils en ont besoin.
 
PS : En fait ce CMS je le code avec un pote, je suis pas tout seul dessus, alors s'il passe par ici je lui fait un petit coucou :D

n°1015616
FlorentG
Unité de Masse
Posté le 17-03-2005 à 10:01:12  profilanswer
 

belay a écrit :

Bah en fait j'ai utilisé ce code html classique :D

Code :
  1. if($logout) 
  2. {
  3.     session_end($userdata['session_id'], $userdata['user_id']);
  4. die('<META HTTP-equiv="refresh" content=0;URL='. append_sid($redirect_logout) . '>');
  5. }
  6. elseif( $userdata['session_logged_in'] ) 
  7. {
  8. die('<META HTTP-equiv="refresh" content=0;URL='. $go_logout . '>');
  9. }
  10. else
  11. {
  12. die('<META HTTP-equiv="refresh" content=0;URL='. $go_login . '>');
  13. }



 
Est quand tu va cliquer sur précédent, hop, ça va revenir à la page. Bel exemple de cassage de bouton précédent [:itm]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Redirection sans header()

 

Sujets relatifs
parser un header imapredirection htaccess
redirection de pageRedirection .htaccess
Redirection des I/O et lecture du clavier Problème redirection avec header
pbm de redirection avec header[php] pb redirection header / arguments RESOLU!!
[PHP] - Redirection sans fuckin' header() ...A part Header, comment fait-on une redirection en PHP ?
Plus de sujets relatifs à : Redirection sans header()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR