Php Warning: Cannot modify header information
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je suis entrain de faire mon site et j'ai un problème:
Voilà alors j'ai fait un menu qui est composé de ce code :
Qui permet aux membres de se connecter depuis ce menu et comme vous avez vu action se fait directement depuis cette page grace à ce code :
et quand je me connecte ça m'affiche ça :
Warning: Cannot modify header information - headers already sent by (output started at /mnt/159/sdc/9/d/nom_de_mon_site/beta/include/connec.php:4) in /mnt/159/sdc/9/d/nom_de_mon_site/beta/include/connec.php on line 25
Voilà merci d'avance !
je suis entrain de faire mon site et j'ai un problème:
Voilà alors j'ai fait un menu qui est composé de ce code :
<?php if (isset ($_SESSION['login'])) { echo 'Bienvenue ici!</h4> <li> <a href="messagerie.php">Messagerie</a> </li> <li> <a href="prop_news.php">Proposez une News</a> </li> <li> <a href="forum/ucp.php?mode=register&sid=0b40018937c8f5d85ea482a0d1d62341">Inscription au Forum</a> </li> <li> <a href="astuces.php">Astuces</a> </li> <li> <a href="livre_or.php">Livre D\'or</a></li> <br /> <a href="deconnexion.php">Déconnexion </a> '; } else if (!isset ($_SESSION['login'])){ echo '<center> <h4>Connexion l\'espace membres :</h4> <form action="" method="post"> Login : <input type="text" name="login"><br /> Mot de passe : <input type="password" name="pass"><br /> <input type="submit" name="connexion" value="Connexion"> </center>'; } ?>
Qui permet aux membres de se connecter depuis ce menu et comme vous avez vu action se fait directement depuis cette page grace à ce code :
<?php session_start(); ?> <?php if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { $base = mysql_connect ('mystère', 'et boule', 'de'); mysql_select_db ('gomme', $base); $sql = 'SELECT id FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $nb = mysql_num_rows($req); if ($nb == 1) { $data = mysql_fetch_array($req); session_start(); $_SESSION['login'] = $_POST['login']; $_SESSION['id'] = $data['id']; mysql_free_result($req); mysql_close(); header('Location: index.php'); exit(); } elseif ($nb == 0) { $erreur = 'Compte non reconnu.'; } else { $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; } mysql_free_result($req); mysql_close(); } else { $erreur = 'Au moins un des champs est vide.'; } } ?>
et quand je me connecte ça m'affiche ça :
Warning: Cannot modify header information - headers already sent by (output started at /mnt/159/sdc/9/d/nom_de_mon_site/beta/include/connec.php:4) in /mnt/159/sdc/9/d/nom_de_mon_site/beta/include/connec.php on line 25
Voilà merci d'avance !
A voir également:
- Php Warning: Cannot modify header information
- Easy php - Télécharger - Divers Web & Internet
- Warning zone telechargement - Accueil - Outils
- Expert php pinterest - Télécharger - Langages
- Téléchargement et streaming illégal : voici les adresses des sites pirates que les FAI vont bloquer - Accueil - Services en ligne
- Symbole warning word - Forum Word
8 réponses
Tu ne peux plus modifier les entêtes HTTP une fois qu'un caractère de la apge a été envoyé au client.
Donc avant le premier "<?php", il ne doit y avoir aucun caractère (espace compris), et tu ne dois faire aucun echo/print(f) avant la fonction header().
Tu peux utiliser la tamporisation de sortie si tu ne veux pas être ennuyé avec ça :
http://www.siteduzero.com/tutoriel-3-38102-la-tamporisation-de-sortie-en-php.html
Donc avant le premier "<?php", il ne doit y avoir aucun caractère (espace compris), et tu ne dois faire aucun echo/print(f) avant la fonction header().
Tu peux utiliser la tamporisation de sortie si tu ne veux pas être ennuyé avec ça :
http://www.siteduzero.com/tutoriel-3-38102-la-tamporisation-de-sortie-en-php.html
tu as mis sur ton deuxieme code deux fois session_start;
1 en premiere ligne et l' autre plus bas.
Il ne faut en mettre qu' un et il doit etre avant tout code html.
Supprime celui-ci (juste session_start)
session_start();
$_SESSION['login'] = $_POST['login'];
$_SESSION['id'] = $data['id'];
1 en premiere ligne et l' autre plus bas.
Il ne faut en mettre qu' un et il doit etre avant tout code html.
Supprime celui-ci (juste session_start)
session_start();
$_SESSION['login'] = $_POST['login'];
$_SESSION['id'] = $data['id'];
Tu as aussi au début :
Ca va envoyer un retour à la ligne au navigateur et tu ne pourras plus faire d'header après, et ca ne sert à rien de fermer le bloc php pour le rouvrir tout de suite.
?> <?php
Ca va envoyer un retour à la ligne au navigateur et tu ne pourras plus faire d'header après, et ca ne sert à rien de fermer le bloc php pour le rouvrir tout de suite.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
non c'est que je n'est pas pu aller sur mon ordinateur cette semaine !
je vais tester ça !
merci d'avance !
je vais tester ça !
merci d'avance !
je viens de tester j'ai modifier mon code comme ça :
<?php session_start(); if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { $base = mysql_connect ('mystère', 'et boule', 'de'); mysql_select_db ('gomme', $base); $sql = 'SELECT id FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $nb = mysql_num_rows($req); if ($nb == 1) { $data = mysql_fetch_array($req); $_SESSION['login'] = $_POST['login']; $_SESSION['id'] = $data['id']; mysql_free_result($req); mysql_close(); header('Location: index.php'); exit(); } elseif ($nb == 0) { $erreur = 'Compte non reconnu.'; } else { $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; } mysql_free_result($req); mysql_close(); } else { $erreur = 'Au moins un des champs est vide.'; } } ?>