appeler une page en php - PHP - Programmation
Marsh Posté le 01-03-2003 à 20:20:36
Code :
|
Extrait de la Doc php :
9.33.1 header
[Notes en ligne] [Exemples]
Envoie une en-tête HTTP
int header (string string)
header() permet de spécifier une en-tête HTTP lors de l'envoi des fichiers HTML. Reportez-vous à HTTP 1.1 Specification pour plus d'informations sur les en-têtes HTTP.
Note : La fonction header() doit être appelée avant la première balise HTML, et avant n'importe quel envoi de commande PHP. C'est une erreur très courante que de lire du code avec la fonction include() ou avec auto_prepend et d'avoir des espaces ou des lignes vides dans ce code qui produisent un début de sortie avant que header() n'ait été appelé.
Il y a cependant deux en-têtes spéciales. Le premier est "Location". Non seulement il renvoie une en-tête au client, mais en plus, il envoie un statut de redirection à Apache. Du point de vue de l'auteur de script, cela importe peu, mais pour ceux qui connaissent les rouages internes d'Apache, c'est primordial.
<?php
header("Location: http://www.php.net/" );
/* Redirige le client vers le site PHP */
exit();
/* Assure que le code ci-dessous n'est jamais exécuté. */
?>
Le deuxième type d'appel spécial regroupe toutes les en-têtes qui commencent par "HTTP/" (la casse n'est pas importante). Par exemple, si vous avez votre page d'erreur 404 Apache qui pointe sur un script PHP, c'est une bonne idée que de vous assurer que le script PHP génère une erreur 404. La première chose à faire dans votre script est :
<?php
header("http/1.0 404 Not Found" );
?>
Les scripts PHP génèrent souvent du HTML dynamiquement, qui ne doit pas être mis en cache, ni par le client, ni par les proxy intermédiaires. On peut forcer la désactivation du cache de nombreux clients et proxy avec
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); // Date du passé
header("Last-Modified: " . gmdate("D, d M Y H:i:s" ) . " GMT" ); // toujours modifié
header("Cache-Control: no-cache, must-revalidate" ); // HTTP/1.1
header("Pragma: no-cache" ); // HTTP/1.0
?>
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichges PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui génèreront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
<?php
require("user_logging.inc" )
?>
<?php
header("Content-Type: audio/x-pn-realaudio" );
?>
// Erreur : Notez la ligne blanche ci-dessus
@++
BozoCarzu
Marsh Posté le 02-03-2003 à 13:31:42
Ma condition sappele $res et jaimerai que qd elle est egale a 4 ,la page e4.php saffiche:
Code :
|
et la il ya a une erreur (Warning: Cannot add header information - headers already sent by (output started at c:\program files\easyphp\www\poules.php:16) in c... a la ligne de header("Location: e4.php" ) )
Pkoi ca marche pa et comment faire pour ke sa marche????
Merci
Marsh Posté le 02-03-2003 à 13:33:47
if ($res==4)
ensuite : output started at c:\program files\easyphp\www\poules.php:16
comme deja dit :
Note : La fonction header() doit être appelée avant la première balise HTML, et avant n'importe quel envoi de commande PHP. C'est une erreur très courante que de lire du code avec la fonction include() ou avec auto_prepend et d'avoir des espaces ou des lignes vides dans ce code qui produisent un début de sortie avant que header() n'ait été appelé.
Marsh Posté le 02-03-2003 à 13:44:26
Blackangel a écrit : Tu peu expliker ca un peu mieu stp?? j compren pas trop |
ça veut dire que ton header doit être mis avant TOUTES fonctions echo, print ou tout ce qui peut retourner quelque chose...
L'erreur classique étant d'avoir un espace ou une ligne avant ta première balise <?php .
Marsh Posté le 02-03-2003 à 13:45:34
BozoCarzu a deja expliqué ...
dans poules.php ligne 16 .. tu fais un echo, ou tu as mis un espace .. nimporte koi qui se retrouve dans le source html, et quil faut supprimer
Marsh Posté le 01-03-2003 à 20:08:48
Chui debutant en php et jaimerai bien savoir comment appeler une autre page a partir dune commande php.
(exple: if ($truc=1) {afficher la page lol.php}
)
Merci