header (problème résolut) [PHP] - PHP - Programmation
Marsh Posté le 22-05-2003 à 15:17:23
ouais mais j'ai pas trop le choix
et si je remplace ma ligne en header par ca :
include(test.php)
apres je créer une page test.php :
<?
header("location : lapagevoulu.php" )
?>
tu pesne que ca va marcher ??
Marsh Posté le 22-05-2003 à 15:36:27
non ca marchera pas les headers seront deja passe par ta page principale
Marsh Posté le 22-05-2003 à 15:41:25
put1 raz le bol du php
y a quoi comme focntion appart header et les truc en javascript ?
Marsh Posté le 22-05-2003 à 15:45:01
le problème ne vient pas des echo dans le switch, mais de la ligne 7 (ou alentour) ou tu as du faire un echo ou mettre directement du html
Marsh Posté le 22-05-2003 à 15:46:54
NemoHP a écrit : 1)put1 raz le bol du php |
1) put1 raz le bol des gars qui savent pas programmer en php
2) tu veux quoi la??? Toutes les fonction du php + javscript???
Sinon pour que tu comprennes un peu, pour le serveur HTTP une page c'est un entête (derniere date de modif, taille de la page, date & heure, type du document....et pleins d'autres infos ds le genre) et le source de la page a afficher.....)
Or tu as :
ENTETE
\r\n
CONTENU DE LA PAGE
si tu fais un echo ou que tu ecris qq chose ds ta page, tu passe ds la partie CONTENU DE LA PAGE, tu ne pourra donc faire un "header" puisque la partie ENTETE est déjà générée....
Tu dois donc créer l'entete avant d'afficher le moindre caractère....
Marsh Posté le 22-05-2003 à 16:06:14
Attention de ne pas mettre d'espace hors des <? ?> en PHP
Marsh Posté le 22-05-2003 à 16:07:08
samuelp a écrit : Attention de ne pas mettre d'espace hors des <? ?> en PHP |
c'est vraiment l'erreur à la con ca
Marsh Posté le 22-05-2003 à 16:28:27
bon c pas vrai, g pas raz le bol du php
j'apprend et mais c'est pas facile tout seul
le truc que je voulait faire en faite , c'est si un gas rentre manuellement une adresse genre :
news.php?page=sdhfgjfg (c'est a dire une autre valeur que 1 , 2 , 3 ou 4),ca redirige vers page news.php (la page sans paramettre en faite)
je sais pas si je suis bien claire car c pas facile a expliquer comme ça.
Marsh Posté le 22-05-2003 à 16:31:39
NemoHP a écrit : bon c pas vrai, g pas raz le bol du php |
c'est bien ce que je disais marre de ceux qui savent pas programmer et qui accusent le langage!!!
Code :
|
Est-ce que ca l'air franchement dur????
Marsh Posté le 22-05-2003 à 16:33:37
je vais essayer de me rabbattre vers un code javascript plutot, j'ai récupe ça :
3 // la fonction de redirection
4 function redir($url){
5 echo '<script language="javascript">';
6 echo 'window.location="',$url,'";';
7 echo '</script>';
8 }
9
Marsh Posté le 22-05-2003 à 16:34:35
NemoHP a écrit : je vais essayer de me rabbattre vers un code javascript plutot, j'ai récupe ça : |
le code que je t'ai mis au dessus marche tres bien....et il fait ce que tu veux...
EDIT : ah non ca fait pas ce que tu veux, je reprends...
Marsh Posté le 22-05-2003 à 16:36:22
c'est bon ca marche
par contre le fonction header restera pour moi un mystere, j'ai pourtant vu un paquet de tutorial dessus et de topics, mais bon tant que ca marche comme je fais !!!
Marsh Posté le 22-05-2003 à 16:38:25
Code :
|
Essaie ca, on sait jamais
Marsh Posté le 22-05-2003 à 16:39:13
NemoHP a écrit : c'est bon ca marche |
ben faut juste qu'aucun caractere ne soit ecrit dans la page HTML avant de mettre un header...
Marsh Posté le 22-05-2003 à 16:40:29
quand je dit que un gas rentre ?page="sdhfgjfg", je voulait dire si un gas rentre n'importe quel parramtre hors de ce qui sont valide
"sdhfgjfg" c'est n'importe quoi que g taper, ça aurai pu etre "5", vu "5" est hors de met valeur du CASE
voila merci les gas
Marsh Posté le 22-05-2003 à 16:45:50
harrysauce> je l'avoue, je suis une merde
(mais qui n'a jamais été une merde dans sa vie )
vive le php
je réessayerais le header une autre jour
Marsh Posté le 23-05-2003 à 09:51:35
bon voila on est un autre jour donc je retente la fonction header.
j'ai fait tout bien comme on ma dt, mais ca veut tjrs pas marché.
Le faite que je travail sur php 4.2 pose t'il probleme
voici le code qui marche tjrs pas :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Titre</title>
</head>
<body>
<?
header("Location: accueil.php" );
?>
</body>
</html>
on peut pas faire plus simple.
Marsh Posté le 23-05-2003 à 09:58:34
Code :
|
il faut mettrre l'appel à header AVANT de retourner du code html! La fonction header fait une redirection, amha tu cherches à faire un include là, non?
Marsh Posté le 23-05-2003 à 10:01:48
pour info, la page de la doc sur header: http://fr.php.net/manual/fr/function.header.php
tu y trouveras surement toutes les infos pour résoudre ton problème
Marsh Posté le 23-05-2003 à 10:06:32
aaaaaaaaaaaaaahhhhhhhhhhhhhhhhhh merci dropsy
enfin la réponse que je cherchais depuis 2 jours
merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci
vive dropsy
a yes merci , put1 chui trop content je pouvait plus j'avllais pété un plomb avec cette fonction
par contre j'ai vu des exmple ou le header était apres le <html> et ca fonctionnait chez eux, donc c bizarre
mais la c bon ca amrche enfin
encore merci, j'en peux plsu chui trop heureux, yes , yes yes
youhouuuuuuuuuuu
merci
bon aller moi je vais prendre ma pause la merci encore une fois
Marsh Posté le 23-05-2003 à 10:08:44
NemoHP a écrit : aaaaaaaaaaaaaahhhhhhhhhhhhhhhhhh merci dropsy |
Pour eviter ce genre desagrement tu peux utiliser les classes PHP qui te permettront d'afficher le contenu apres sollicitation (exemple : classe page avec operation display() )
Marsh Posté le 23-05-2003 à 10:17:37
tu pourrait etre plus explicite, car je te suis pas
de quel désagréments tu parle ? (car j'en est u plein )
Marsh Posté le 23-05-2003 à 10:20:46
heureusement que dropsy t'avais déjà indiqué la solutoin hier, que Harrysauce t'avais expliqué la différence entre headers et contenu... Tu es sûr que tu as lu les réponses proposées ?
Marsh Posté le 23-05-2003 à 10:22:52
NemoHP a écrit : tu pourrait etre plus explicite, car je te suis pas |
LEs header deja envoyes.
Dans ta methode display tu genere ton code HTML (entre les Tags Body)
Avant tu fais un appel aux methodes header et tail de ta classe pour encadrer le corp HTML
Ainsi, cela t'evites les problemes de savoir si les headers sont deja envoyés (probleme recurrent pour la redirection et l'utilisation des cookies/sessions )
Marsh Posté le 23-05-2003 à 10:25:54
merci pour tes remerciements
samuelp doit te parler de la fonction ob_start: http://fr.php.net/manual/fr/function.ob-start.php et de ses consoeurs qui te permettent de bufferiser la sortie et donc d'utiliser header même après les balises html.
gm_superstar> il me semblait bien aussi, mais ça devait pas être très clair. et puis l'essentiel c'est que son problème réglé
Marsh Posté le 23-05-2003 à 10:26:17
tu a raison mais j'avais pas compris comme ca
quand il parlait de contenu je comprenais <body>
je m'excuse de pas avoir compris ca, probleme de jeunesse vocubularistique en langage internet surement
désolé
Marsh Posté le 22-05-2003 à 15:06:30
je voulais faire une redirection automatique
j'ai donc apres recherche decider d'utiliser la fonction header
mais elle marche pas , c'est peut etre ma version de php qui est trop vielle, je suis sur php 4.2.0
mon code :
switch ($page)
{
case 1:
echo "afficher les news :";
include("Aff_News.php" );
break ;
case 2:
echo "Ajouter un news : <br>";
include("Ajout_News.php" );
break ;
case 3:
echo "Modifier une news";
break ;
case 4:
echo "Supprimer une news";
break ;
default:
header("Location: Accueil.php" ); //ligne d'erreur
exit();
}
l'erreur:
Warning: Cannot add header information - headers already sent by (output started at c:\program files\easyphp\www\site\news.php:7) in c:\program files\easyphp\www\site\news.php on line 34
Message édité par nemohp le 23-05-2003 à 10:08:03