Menu

Cannot modify header information, headers already sent by [Résolu]

Messages postés
21
Date d'inscription
lundi 23 avril 2018
Dernière intervention
9 mars 2019
- - Dernière réponse : le père.
Messages postés
6362
Date d'inscription
mardi 15 mai 2012
Dernière intervention
13 mars 2019
- 9 mars 2019 à 11:26
Bonjour, voilà depuis quelques jour je suis "Harceler" par une erreur de type "Header... " j'ai fait quelques recherches à ce sujet pour savoir quelle en était la cause mais mon problème ne s'est tjrs pas résolu. J'ai Beau vérifier à plusieurs reprises le ficher dont il est question à savoir (output started... ) et Pourtant y'a rien " d'anormal" du moins pas par rapport aux erreurs frequents à ce sujet tel que les espaces . Par rapport à la ligne indiqué. Il y'a juste du code du genre.
<!-- Code Html -->
<?php if(isset($_POST)) { ? >
<!-- Suite du code Html-->
<?php }else{ ?>
< !-- Code Html - - >
<?php} ?>
< !-- Suite Html-->
Voilà grossomodo à quoi ressemble le squelette de la page (navbar.php). Ensuite dans ma page principal index j'ai juste sa.
<?php 
session_start();
Include("connexion_config") ;
?>
<!-- Code Html et inclusion css, bootstrap, Javascript, JQuery..-->

<?php 
 include("navbar.php");
?>

<! -- Code Javascript, fermeture body fermeture html -->

le plus intrigant c'est que une fois que je change de place l'inclusion du navbar à savoir juste en dessous du session start sa fonctionne mais lors du chargement de la page certains buug apparaissent en terme d'affichage ce qui logique sachant que j'exécute un page html avec du code php avant même qu'elle ne se trouve dans les balises <html></html>. Quelqu'un a une idée de la cause merci d'avance.
Afficher la suite 

Votre réponse

3 réponses

Messages postés
6362
Date d'inscription
mardi 15 mai 2012
Dernière intervention
13 mars 2019
975
0
Merci
Bonjour

Peux-tu donner le message d'erreur complet ?
MonCplusplus
Messages postés
21
Date d'inscription
lundi 23 avril 2018
Dernière intervention
9 mars 2019
-
Merci pour ton intervention .

voilà


Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\clientproject\menu\navbar.php:62) in C:\wamp\www\clientproject\connexion_config.php on line 16



Commenter la réponse de le père.
Messages postés
6362
Date d'inscription
mardi 15 mai 2012
Dernière intervention
13 mars 2019
975
0
Merci
1 - peux-tu donner le code de navbar.php lignes 60 à 65 ?
2 - Peux-tu donner le code de connexion_config.php lignes 1 à 18 (en masquant les mots de passe si nécessaire) ?
MonCplusplus
Messages postés
21
Date d'inscription
lundi 23 avril 2018
Dernière intervention
9 mars 2019
-
Pas de soucis , j'ai supprimé certaines ligne espérant que sa change mais tjrs rien à présent c'est à la ligne 56 qu'il indique un soucis . Par précaution l'indentation n'y est pour rien ?

navbar.php (Error ligne 56)
50)</div>
51)</div>
52)</div>
53)</li>
54)</ul>
55)<?php }?>
56)<?php if(isset($_POST['login'])){?>
57)<form class="form-inline ml-auto" action="index.php?choix=connexion_stop.config" method="POST">
58)<button class="btn btn-success" type="submit">Se déconnecter</button></form>
59)<?php }?>
60)</div>
61)</nav>


connexion_config.php (Error ligne 16)

1)<?php
2)$log = htmlspecialchars($_POST['login']);
3)$mdp = htmlspecialchars($_POST['password']);
4)$request = "SELECT * FROM membres WHERE login=:log";
5)$result = $database->prepare($request);
6)$result->bindvalue(':log', $log);
7)$result_request = $result->execute();
8)if(result_request === FALSE){
9)header("Location:index.php?choix=home");
10)}else{
11)$membre = $result->fetch(PDO::FETCH_ASSOC);
12)if(empty($membre)){
13)header("Location:index.php?choix=home");
14)}elseif ($mdp === $membre['psw']){
15)$_SESSION['login'] = $membre['login'];
16)header("Location:index.php?choix=home");
17)}else{
18)header("Location:index.php?choix=home");
19)}
20)}
21)?>
Commenter la réponse de le père.
Messages postés
6362
Date d'inscription
mardi 15 mai 2012
Dernière intervention
13 mars 2019
975
0
Merci
Pour comprendre l'erreur, il faut savoir que l'envoi d'une page du serveur vers le client se déroule en deux temps : l'envoi des en-têtes (headers), puis l'envoi du contenu (le HTML et les echo du PHP). C'est le protocole HTTP qui est comme ça, PHP et HTML n'y peuvent rien.

Quand navbar s'exécute, il y a du HTML qui est envoyé au visiteur. Alors la partie "headers" du protocole HTTP se termine, et on ne peut plus en envoyer. Or, dans connexion_config.php, tu utilises une fonction PHP header qui consiste justement à envoyer des en-têtes HTTP ; mais ce n'est plus possible. Le message te dit qu'il ne peut plus envoyer d'en-têtes ligne 16 de connexion_config.php parce qu'il a déjà commencé les sorties ligne 62 de navbar.php

Ce message montre sans erreur possible que navbar.php s'exécute avant connexion_config.php, ce qui semble contraire à ce qu'on voit dans le code ta page principale, que tu donnes dans la question initiale.

Es-tu sûr que connexion_config.php ou navbar.php ne sont pas inclus plusieurs fois ?
MonCplusplus
Messages postés
21
Date d'inscription
lundi 23 avril 2018
Dernière intervention
9 mars 2019
-
Oui je le sais aussi sachant que je l'ai dis dans mon problème mais du coup c'est comment pouvoir trouver une alternative aux problèmes en ce qui concerne l'ordre d'inclusion des pages et sa n'explique toujours pas pourquoi avec un simple formulaire sa fonctionne mais que lors de l'utilisation d'une fenêtre "modal" sa buug .

index.php : https://www.cjoint.com/c/ICii5pgvajK

merci encore pour le temps accordé.
Reivax962
Messages postés
3342
Date d'inscription
jeudi 16 juin 2005
Dernière intervention
14 mars 2019
1174 -
Et bien voilà, c'est exactement le cas typique, tel que le père essaie de pointer :
Dans index.php, tu envoies tout ton HTML, et après seulement tu appelles connexion.config.php (dans ton switch-case)

Ton index.php devrait être organisé autrement, pour que le cas "principal" soit géré avant de commencer à envoyer le contenu html.
le père.
Messages postés
6362
Date d'inscription
mardi 15 mai 2012
Dernière intervention
13 mars 2019
975 -
Est-ce que les fichiers que tu me montres correspondent bien au cas avec une fenêtre modale, où il y a l'erreur ?
Si oui, où ce que tu appelles la fenêtre modale apparaît-t-il dans ton code ? Peux-tu m'envoyer un fichier sans fenêtre modale, qui ne provoque pas l'erreur ?
De toutes manières, il est évident que dans index.php, tu as mal placé le traitement de $_GET qui devrait être AVANT <!DOCTYPE>, comme je te l'avais déjà suggéré dans mon message #7
MonCplusplus
Messages postés
21
Date d'inscription
lundi 23 avril 2018
Dernière intervention
9 mars 2019
-
Re Bonjour, Désolé du retard voilà en ayant fait les inclusions des pages différemment j'ai réussi à trouver grâce à vous un moyen d'éviter l'erreur Merci encore infiniment !. Par contre Y'a t-il un d'entres vous qui est assez bon en CSS par hasard ? Je souhaiterais faire quelque chose d'assez "tordu" mais je n'y arrive pas Merci encore.!
le père.
Messages postés
6362
Date d'inscription
mardi 15 mai 2012
Dernière intervention
13 mars 2019
975 -
Personne ne viendra lire à la fin de ce topic que tu as des besoins en CSS. Crée une nouvelle question sur le forum. Personnellement, j'ai bien quelques connaissances, mais plutôt basiques, donc pour quelque chose de tordu j'ai peu de chances de t'aider.
Bonne continuation.
Commenter la réponse de le père.