Headers already sent

Fermé
kevin - 28 févr. 2008 à 17:48
neojick Messages postés 167 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 30 mars 2009 - 29 févr. 2008 à 00:48
Bonjour,

Je sais que le problème à déjà été posé...

Seulement j'ai un autre problème,

quand je lance mon fichier index.php seul aucun souci ! Mais moi je voudrais le lancer à partir de ma page d'accueil et j'ai donc un include("index.php"); et là c'est le drame.....

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1-8\www\adg-world\accueil.php:5) in c:\program files\easyphp1-8\www\adg-world\pages\membres\index.php on line 20

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\adg-world\accueil.php:5) in c:\program files\easyphp1-8\www\adg-world\pages\membres\index.php on line 20

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\adg-world\accueil.php:5) in c:\program files\easyphp1-8\www\adg-world\pages\membres\index.php on line 22

Avez-vous la solution?

(ps : j'utilise juste l'espace membre suivant : http://www.lephpfacile.com/howto/10-comment-faire-un-espace-membre-en-php )

Merci de votre réponse

Kévin!

2 réponses

neojick Messages postés 167 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 30 mars 2009 99
28 févr. 2008 à 17:57
Tu dois avec un session_start() dans ta page d'accueil et un dans ton index.php. Tu ne peux qu'un session_start() au navigateur du visiteur.




Pluie en septembre, route mouillée
0
ma première partie de mon index est :

<?php

// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('adg', $base);

// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) 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());
$data = mysql_fetch_array($req);

mysql_free_result($req);
mysql_close();

// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>


Que dois-je enlever ? déplacer ? copier dans accueil ?
0
kevin > kevin
28 févr. 2008 à 19:24
up !!! svp
0
neojick Messages postés 167 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 30 mars 2009 99
29 févr. 2008 à 00:48
Je n'avais pas vu le header already exists.
Quand tu fais un header(), tu ne dois pas avoir un seul code non php dans la page appelante, même pas le moindre blanc.
Vérifie dans ton index.php si tu n'a pas un espace avant la balise d'ouverture de php.

0