crocxx Posté 24 Décembre 2005 Posté 24 Décembre 2005 (modifié) Voila j'ai un probléme avec php, et la je suis vraimen coincé <?phpif (strstr($_SERVER['HTTP_ACCEPT '], 'application/xhtml+xml')) { _AT_header('Content-type: application/xhtml+xml; charset = UTF-8 '); } else { _AT_header('Content-type: text/html; charset = UTF-8 '); } if (!isset($_GET["p"])){ $p = 'accueil'; } else { if (file_exists("pages/$p.inc")){ $p = $_GET["p"]; } else { _AT_header("HTTP/1.0 404 Not Found"); } } require "pages.php"; if (strstr($_SERVER['HTTP_ACCEPT '], 'application/xhtml+xml')) { echo '<?xml version="1.0" encoding="UTF-8"?>'; echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'; } else { echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';'>;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'; } ?> J'optien une erreur pour chaque header de ce code (avant de rajouté les @) Les navigateur acceptant application/xhtml+xml m'affiche: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd Je suis heberger sous OVH peu étre que ça vien de la??? Ce code php et le premier sur la page, pas d'espace avant pas d'espaces aprés. Merci pour votre aide, jéspére. Modifié 24 Décembre 2005 par crocxx
NorSeb Posté 26 Décembre 2005 Posté 26 Décembre 2005 Bonjour, J'optien une erreur pour chaque header de ce code (avant de rajouté les @) Qu'obtiens-tu si enlève les @ ?
crocxx Posté 26 Décembre 2005 Auteur Posté 26 Décembre 2005 Warning: Cannot modify header information - headers already sent by (output started at /home.2/zonewebm/www/ZW2/index.php:1) in /home.2/zonewebm/www/ZW2/index.php on line 6 Sous internet exploreur et mozilla ça aussi c'est anormal sa veux dir que la ligne: if (strstr($_SERVER['HTTP_ACCEPT '], 'application/xhtml+xml')) { n'est pas bonne non plus Sinon sa me donnerait line 6 et line 4 non??? Quand la varriable $p est egalle a un fichier non existant: if (file_exists("pages/$p.inc")){ $p = $_GET["p"]; } else { header("HTTP/1.0 404 Not Found"); } sa me donne cette erreur en plus: Warning: Cannot modify header information - headers already sent by (output started at /home.2/zonewebm/www/ZW2/index.php:1) in /home.2/zonewebm/www/ZW2/index.php on line 16 C'est bizard on dirait ques les header ne sont par reconu pourtant il n'y a rien avant ce code php sur ma page. pas d'espace pas d'echo
Chark Posté 27 Décembre 2005 Posté 27 Décembre 2005 Les headers sont tres "pointilleux" sur certaines regles à respecter: Aucun espace dans ton code avant le header Aucune ligne affiché ( "echo" ou autre ) avant le header !!! ( il suffit par exemple que tu mette une ligne "vous allez etre redirigé dans quelques secondes" pour que ton header renvoie une erreur) reverifie ton code en entier et veille à respecter ces regles pour voir...
Anonymus Posté 27 Décembre 2005 Posté 27 Décembre 2005 Tu envoies ces lignes : if (strstr($_SERVER['HTTP_ACCEPT '], 'application/xhtml+xml')) {_AT_header('Content-type: application/xhtml+xml; charset = UTF-8 ');}else {_AT_header('Content-type: text/html; charset = UTF-8 ');} puis tu demandes à faire une redirection. Il ne peut la faire, puisqu'il a envoyé ces lignes, donc il a déjà envoyé quelque chose. cqfd. Pour ces lignes : if (strstr($_SERVER['HTTP_ACCEPT '], 'application/xhtml+xml')) {_AT_header('Content-type: application/xhtml+xml; charset = UTF-8 ');}else {_AT_header('Content-type: text/html; charset = UTF-8 ');}if (!isset($_GET["p"])){ $p = 'accueil';}else { if (file_exists("pages/$p.inc")){ $p = $_GET["p"]; } else { @header("HTTP/1.0 404 Not Found"); }} Tu aurais du les mettre dans l'ordre inverse : if (!isset($_GET["p"])){ $p = 'accueil';}else { if (file_exists("pages/$p.inc")){ $p = $_GET["p"]; } else { @header("HTTP/1.0 404 Not Found"); }}if (strstr($_SERVER['HTTP_ACCEPT '], 'application/xhtml+xml')) {_AT_header('Content-type: application/xhtml+xml; charset = UTF-8 ');}else {_AT_header('Content-type: text/html; charset = UTF-8 ');} ps : Pour info, tu devrais appeler tes fichiers : fichier.inc.php et non .inc seulement. Ainsi, ils ne peuvent être lus.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant