probleme avec cette erreur " Warning: Cannot modify header information - headers already sent by (output started at "
Posté : 09 juil. 2019, 10:31
<r>Bonjour à tous,<br/>
<br/>
Je viens vers vous car nous avons un problème au niveau de note code PHP et ce depuis 2jours.<br/>
<br/>
En effet nous devons coder un site en rapport avec un fiat historique ( le 11 septembre en particulier ) .<br/>
<br/>
voici le code de notre Header :
<PHP><s>
<B><s></s>et voici le code de vérification de connexion :<br/>
<e></e></B> <PHP><s>
le problème que l'on rencontre maintenant c'est que pour l'instant la connexion est bonne et reconnue mais si nous rajoutons un seule div au header dans la div "entete" avec du texte la connexion ne marche plus et nous avons cette erreur " Warning: Cannot modify header information - headers already sent by (output started at ", alors que nous avons 5 menu à intégrer avec une mise en forme identique aux précédents.<br/>
<br/>
Voici également notre routes.php :<br/>
<PHP><s>
<br/>
J'espère que j'ai été assez claire, merci par avance pour votre aide <br/>
<br/>
<br/>
cordialement</r>
<br/>
Je viens vers vous car nous avons un problème au niveau de note code PHP et ce depuis 2jours.<br/>
<br/>
En effet nous devons coder un site en rapport avec un fiat historique ( le 11 septembre en particulier ) .<br/>
<br/>
voici le code de notre Header :
<PHP><s>
</s><i>
</i><!DOCTYPE html>
<html lang="en">
<head>
<?php
function chargerClasse($classe)
{
if (file_exists(adresseRoot . "Php/Controller/" . $classe . ".class.php")) {
require adresseRoot . "Php/Controller/" . $classe . ".class.php";
}
if (file_exists(adresseRoot . "Php/Model/" . $classe . ".class.php")) {
require adresseRoot . "Php/Model/" . $classe . ".class.php";
}
}
spl_autoload_register("chargerClasse");
// initialise une connection
DbConnect::init();
session_start();
?>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="<?php echo Parametre::getAdresseRoot(); ?>/CSS/home.css">
<title>Twins Story</title>
</head>
<body>
<div id="entete">
<div class="titreLogo">
<h1><a href="<?php echo Parametre::getAdresseRoot()?>">TWINS Story</h1>
<div class="espaceHorizontal"></div>
<img class="logo" src="<?php echo Parametre::getAdresseRoot(); ?>/Images/plume.png" alt="plumeLogo">
</div>
<nav>
<div class="menumobile">
<div class="menumobileTitre">Menu</div>
<div class="menu">
<div class="menuTitre">Construction</div>
<div class="submenu">
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap1"?> ">Plan Initiaux</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap1"?>">Contreverse et accords</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap1"?>">Plan finaux</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap1"?>">Edification</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap1"?>">Galerie</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap1"?>">Informations diverses</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap1&idArticle=7"?>">Occupations des tours</a></div>
</div>
</div>
<div class="menu">
<div class="menuTitre">Attentats : les faits</div>
<div class="submenu">
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap2"?>">Détournement du vol</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap2"?>">Réaction de la défense aérienne</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap2"?>">Impacts et dommages</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap2"?>">Incendies</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap2"?>">Effondrement des tours</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap2"?>">Opérations de secours</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap2"?>">Témoignages</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap2"?>">Bilan humain</a></div>
<div class="entreeSubMenu"><a href="<?php echo Parametre::getServerRoot()."?action=chap2"?>">Bilan matériel</a></div>
</div>
</div>
<div class="menu">
<div class="menuTitre">Forum</div>
<div class="submenu1">
<div class="entreeSubMenu1"><a href="<?php echo Parametre::getServerRoot()."?action=connect"?>">Connexion</a></div>
<div class="entreeSubMenu1"><a href="<?php echo Parametre::getServerRoot()."?action=creerCompte"?>">Créer compte</a></div>
</div>
</div>
</div>
</nav>
</div>
<e></e></PHP><B><s></s>et voici le code de vérification de connexion :<br/>
<e></e></B> <PHP><s>
</s><i>
</i><?php
$titre = "Connexion";
if (!isset($_POST['pseudo'])) // On est dans la page de formulaire
{
require adresseRoot.'/Php/View/HtmlConnexion.php'; // On affiche le formulaire
} else { // Le formulaire a été validé
$message = '';
if (empty($_POST['pseudo']) || empty($_POST['password'])) // Oublie d'un champ
{
$message = '<p>Une erreur s\'est produite pendant votre identification.
Vous devez remplir tous les champs</p>';
echo '<div class="section">'.$message.'</div>';
header("refresh:3;url=Routes.php?action=connect");
} else // On check le mot de passe
{
$utilisateur = utilisateurManager::getByPseudo($_POST['pseudo']); // On recherche dans la base l'utilisateur et on rempli l'objet utilisateur
if ($utilisateur->getMotDePasse() == md5($_POST['password'])) // Acces OK !
{
$_SESSION['pseudo'] = $utilisateur->getPseudo();
$_SESSION['id'] = $utilisateur->getIdUtilisateur();
$message = '<p>Bienvenue ' . $utilisateur->getPseudo() . ', vous êtes maintenant connecté!</p>';
echo '<section>'.$message.'</section>';
echo header("refresh:2;url=Routes.php?action=forum");
}
else // Acces pas OK !
{
$message = '<p>Une erreur s\'est produite pendant votre identification.<br /> Le mot de passe ou le pseudoUtilisateur
entré n\'est pas correcte.</p>';
echo '<section>'.$message.'</section>';
header("refresh:2;url=Routes.php?action=connect");
}
}
}
?><e></e></PHP>le problème que l'on rencontre maintenant c'est que pour l'instant la connexion est bonne et reconnue mais si nous rajoutons un seule div au header dans la div "entete" avec du texte la connexion ne marche plus et nous avons cette erreur " Warning: Cannot modify header information - headers already sent by (output started at ", alors que nous avons 5 menu à intégrer avec une mise en forme identique aux précédents.<br/>
<br/>
Voici également notre routes.php :<br/>
<PHP><s>
</s><i>
</i><?php
// Le fichier Route permet de gérer toutes les ouvertures de pages
//on definit les constantes qui permet de definir les chemins
if (!class_exists("Parametre")) require "Parametre.class.php";
Parametre::init();
Define("serverRoot", Parametre::getServerRoot());
Define("adresseRoot", $_SERVER['DOCUMENT_ROOT'].Parametre::getAdresseRoot());
// La fonction afficherPage, prend 3 paramètres
// Le chemin où trouver les pages, le nom de la partie contenu à afficher et le titre à donner à la page
function afficherPage($chemin, $page, $titre)
{
require $chemin . 'Header.php';
require $chemin . $page;
require $chemin . 'Footer.php';
}
// A l'include de la page Route, le code suivant est exécuté
// Si la variable $get existe, on exploite les informations pour afficher la bonne page
if (isset($_GET['action'])) {
// En fonction de ce que contient la variable action de $_GET, on ouvre la page correspondante
switch ($_GET['action']) {
case 'connect':
{
afficherPage(adresseRoot . 'PHP/View/', 'HtmlConnexion.php', "Connexion");
break;
}
case 'VC':
{
afficherPage(adresseRoot . 'PHP/View/', 'FormConnexion.php', "Connexion");
break;
}
case 'forum':
{
afficherPage(adresseRoot . 'PHP/View/', 'FormForum.php', "Connexion");
break;
}
case 'ajout':
{
afficherPage(adresseRoot . 'PHP/View/', 'FormForum.php', "Connexion");
break;
}
case 'chap1':
case 'chap2':
case 'chap3':
case 'chap4':
{
afficherPage(adresseRoot . 'PHP/View/', 'ArticleContenu.php', "Nouvel Utilisateur");
break;
}
}
} else { // Sinon, on affiche la page principale du site
afficherPage(adresseRoot . 'PHP/View/', 'PagePrincipale.php', "Accueil");
}
<e></e></PHP><br/>
J'espère que j'ai été assez claire, merci par avance pour votre aide <br/>
<br/>
<br/>
cordialement</r>