#1 Le 29/05/2012, à 19:19
- Wazisisgood
[Résolue] PHP - Erreur header() - Cannot modify header information
Bonjour,
Voilà je veux faire un système de commentaires pour mon site pour chaque billet. J'ai réussi en suivant un tuto mais cela ne marche que quand je le fait sur mon serveur local.
J'ai 3 fichiers .php un index(mais osef) un commentaires.php et un envoi.php
Dans commentaires.php j'ai :
Une requête sql qui récupère les info liés à la news.
<?php include 'entete.php' ?>
<du flux html et qui contient le formulaire
avec
<form action="envoi.php" method="post">
/>
Pour afficher les commentaires il me faut une boucle. Donc php.
<? include pied.php >
L'erreur header se trouve lorsque je clique sur valider. envoi.php met bien ce qu'il faut dans la bdd mais voilà :
Warning: Cannot modify header information - headers already sent by (output started at /mnt/154/sda/2/9/wazisisgood/envoi.php:8) in /mnt/154/sda/2/9/wazisisgood/envoi.php on line 32
On m'a dis qu'il ne fallait pas afficher du flux avant d'envoyer le header en question. Sauf que je ne vois pas du tout comment faire x)
Je serai trop content si vous pouviez m'aider ça me ronge ce truc.
Dernière modification par Wazisisgood (Le 31/05/2012, à 17:01)
When the power of love overcomes the love of power the world will know peace.-
http://wazisisgood.free.fr
Hors ligne
#2 Le 29/05/2012, à 19:41
- xapantu
Re : [Résolue] PHP - Erreur header() - Cannot modify header information
Tu dois avoir un appel header(machin) dans envoi.php. Il ne faut pas que tu aies envoyé du texte avant. Par exemple, le "Une requête sql qui récupère les info liés à la news." sera compté comme "du flux". Donc tu ne mets rien avant, et ça doit marcher.
Hors ligne
#3 Le 29/05/2012, à 20:13
- Wazisisgood
Re : [Résolue] PHP - Erreur header() - Cannot modify header information
Ah oui. j'ai oublié de précisé. Dans mon envoi.php, après qu'il est envoyé les info sur ma bdd je veux faire une redirection sur le billet précédemment vu par le visiteur, j'ai donc mis :
header("Location: http://wazisisgood.free.fr/commentaires.php?billet=$id_billet");
Et tout justement. Je n'ai rien avant. Bon je montre ça sera plus simple.
<?php include("connection.php"); ?>
<?php
//On se connecte
connectMaBase();
$sql= 'SELECT * FROM news WHERE id = "'.$_GET['billet'].'"';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$result=mysql_fetch_assoc($req)
?>
<?php include("entete.php"); ?>
<div id="contenu">
Et dans contenu j'ai du echo(donc php) pour le titre de la news par exemple et le formulaire. Et ensuite le reste.
Dernière modification par Wazisisgood (Le 29/05/2012, à 20:14)
When the power of love overcomes the love of power the world will know peace.-
http://wazisisgood.free.fr
Hors ligne
#4 Le 29/05/2012, à 20:16
- xapantu
Re : [Résolue] PHP - Erreur header() - Cannot modify header information
Et à la ligne 8 de envoi.php, tu n'as vraiment rien ? Le truc, c'est que (je l'ai déjà fait...) on peut perdre beaucoup de temps à cause d'un espace ou d'un retour à la ligne qu'on avait pas vu. Si ça ne marche vraiment pas, crée une page avec juste le header pour vérifier que ça marche.
Hors ligne
#5 Le 29/05/2012, à 20:23
- Wazisisgood
Re : [Résolue] PHP - Erreur header() - Cannot modify header information
Be je te met le code de envoi.php ça pourra peut-être faire gagner du temps.
ligne8 <?php
// Connexion à la base de données
connectMaBase();
extract($_POST);
if (isset ($_POST['valider'])){
//On récupère les valeurs entrées par l'utilisateur :
$auteur=$_POST['auteur'];
$id_billet = $_POST['id_billet'];
$commentaire= $_POST['commentaire'];
//On construit la date d'aujourd'hui
//strictement comme sql la construit
$today = date("y-m-d");
//On prépare la commande sql d'insertion
$sql = 'INSERT INTO commentaires VALUES("","'.$id_billet.'","'.$auteur.'","'.$commentaire.'","'.$today.'")';
/*on lance la commande (mysql_query) et au cas où,
on rédige un petit message d'erreur si la requête ne passe pas (or die)
(Message qui intègrera les causes d'erreur sql)*/
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
ligne 30 header("Location: http://wazisisgood.free.fr/commentaires.php?billet=$id_billet");
// on ferme la connexion
mysql_close();
}
?>
Dernière modification par Wazisisgood (Le 29/05/2012, à 20:28)
When the power of love overcomes the love of power the world will know peace.-
http://wazisisgood.free.fr
Hors ligne
#6 Le 29/05/2012, à 20:29
- xapantu
Re : [Résolue] PHP - Erreur header() - Cannot modify header information
Je n'avais pas vu, mais :
<?php include("connection.php"); ?>
<?php
est déjà de trop, tu as un retour à la ligne hors des balises php. Essaye plutôt :
<?php include("connection.php");
//On se connecte
connectMaBase();
...
header();
Hors ligne
#7 Le 29/05/2012, à 20:44
- Wazisisgood
Re : [Résolue] PHP - Erreur header() - Cannot modify header information
Sa ne change rien. Mais on est d'accord que le header est bien dans l'autre fichier hein
Car en faite en l'origine moi je veux juste faire une redirection vers la page précédente. Ou en faite même rien qu'une actualisation de la page actuel vu que l'utilisateur ne vois pas le 'envoi.php'.
Dernière modification par Wazisisgood (Le 29/05/2012, à 20:46)
When the power of love overcomes the love of power the world will know peace.-
http://wazisisgood.free.fr
Hors ligne
#8 Le 30/05/2012, à 12:02
- Wazisisgood
Re : [Résolue] PHP - Erreur header() - Cannot modify header information
Et à la ligne 8 de envoi.php, tu n'as vraiment rien ? Le truc, c'est que (je l'ai déjà fait...) on peut perdre beaucoup de temps à cause d'un espace ou d'un retour à la ligne qu'on avait pas vu. Si ça ne marche vraiment pas, crée une page avec juste le header pour vérifier que ça marche.
Bon ba..C'était bien un espace x) juste avant la ligne 8 et juste après la fermeture de ma balise pour choisir la bdd. Un saut de ligne et hop!
Mais merci à vous !
When the power of love overcomes the love of power the world will know peace.-
http://wazisisgood.free.fr
Hors ligne
#9 Le 30/05/2012, à 20:51
- xapantu
Re : [Résolue] PHP - Erreur header() - Cannot modify header information
Ah, c'est bien que ça marche N'oublie pas de mettre un [Résolu] dans le titre du sujet
Hors ligne
#10 Le 01/06/2012, à 21:48
- Wazisisgood
Re : [Résolue] PHP - Erreur header() - Cannot modify header information
Ouep
Et je m'en suis rendu compte après mais je préfère le préciser, j'ai quand même dû me servir des balises
<?php ob_start(); ?>
<?php ob_end_flush(); ?>
sinon j'aurai toujours les erreurs. Voilà !
When the power of love overcomes the love of power the world will know peace.-
http://wazisisgood.free.fr
Hors ligne