Redirection PHP sans header ou javascript

nriem
Invité n'ayant pas de compte PHPfrance

27 mars 2014, 00:25

bonjour,

Je connaissez pas cette erreur jusqu’à maintenant je travailler en local
on peu pas faire une redirection en PHP avec "header" après du code HTML, donc j'aurais voulus savoir comment faire une redirection, après du code HTML
en PHP SANS javascript
(exemple: pour renvoyer sur une page membre après une connexion)

J'ai essayer ce code (HTML) sa fonction, mai d’après mes recherche cette balise doit être entres les <head></head>
c'est un problème si elle est entre les <body></body> ???

 echo '<meta http-equiv="refresh" content="0; url=http://www.site.fr/membre.php"/>';
et pourquoi en local sa marche nickel :roll: :roll:

merci d'avance pour votre réponse :wink:

ViPHP
xTG
ViPHP | 7331 Messages

27 mars 2014, 14:16

C'est un problème si elle n'est pas entre <head> et </head>
et pourquoi en local sa marche nickel
Je donne ma langue au chat, car il n'y a pas de raison d'avoir un comportement qui diffère.
Sauf si ton navigateur réagit différemment entre une adresse locale et une adresse distante.

Nriem
Invité n'ayant pas de compte PHPfrance

27 mars 2014, 16:47

Merci pour ta réponse

Alors comment faire ?
Je la mes dans une variable entre <head> et </head> et j'affiche ma variable plus bas dans le code !?

Comment font la majorité si ils voulent pas utiliser Javascript ?

Merci encore

ViPHP
xTG
ViPHP | 7331 Messages

27 mars 2014, 19:19

Le plus simple pour gérer ce genre de cas : Modèle Vue Contrôleur (MVC)
Dans l'ordre d'exécution :
Le modèle c'est la récupération des données (bdd, fichier, ect).
Le contrôleur c'est l'interprétation et le traitement des données.
La vue c'est l'affichage des données.

Dans ton cas le contrôleur se chargerai de renseigner une variable de la vue (qui serait affichée dans la balise head) ou bien de mettre un flag à 1 indiquant à la vue d'afficher cette balise meta.

L'affichage est donc géré en tout dernier, lorsque tu as traité toutes les données.

Tu peux t'en inspirer pour séparer ton traitement de l'affichage (sans te soucier du modèle que tu peux inclure dans le traitement).
Ainsi plus de problème, pas d'affichage de balise <html> avant de savoir entièrement ce qu'il faut afficher ensuite.
Tout est déjà décidé.

nriem
Invité n'ayant pas de compte PHPfrance

28 mars 2014, 06:33

comme tu dit MVC c'est le plus simple pour gérer ce genre de cas, mais pas le plus simple a faire un MVC #-o

mais c'est bon j'ai trouver la solution avec ob_start();

j'ai vue quelqu’un écrire que c'est une mauvaise habitude de codage mai bon ça veut pas dire que c'est verrai :wink:

merci encore pour ton temps =D> =D>