La fameux erreur " headers already sent by "

Fermé
Hosny - 11 juin 2014 à 15:41
 Utilisateur anonyme - 11 juin 2014 à 15:53
Bonjour à tous, d'après le titre vous aller comprendre la moitié de mon problème. J'ai verifié partout sur CCM ainsi dans différents forums et sites web mais aucune solution n'était pour mon cas.

Je voudrais créer un fichier php "login.php" pour verifier pseudo et passe d'un panneau d'administration via ma base de données. Tout marche très bien sur WAMP cependant sur mon hébergeur ce n'est pas le cas >_<

Voilà mon fichier "login.php" :


<?php
include("database_connect.php");

$pseudo = $_POST['login'];
$pass = $_POST['password'];

$session = $bdd->query('SELECT pseudo, pass FROM session WHERE ID= 1');
//Ici j'ai chargé le tableau de session
$data = $session -> fetch();

$db_pseudo = $data['pseudo'];
$db_pass = $data['pass'];

if(isset($pseudo,$pass) AND $pseudo==$db_pseudo AND $pass==$db_pass)
{
/*Bon ici on va débuter la sessio la session*/
session_start();
// On s'amuse à créer quelques variables de session dans $_SESSION
$_SESSION['pseudo'] = 'admin';

header("Location: ../admin.php");
}

else
{
echo "Probleme lors de la connexion au panneau d'adminitration. Veuillez verifier les donnees saisis !";
header("Location: ../index.php");
}
?>

Je répète ce code marche très très très bien sous WAMP.

mais lors de l'exécution sur mon hébergeur ! voila le résultat :


Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/boukil/public_html/abdellah_boukil/abdellah_admin/db_app/database_connect.php:19) in /home/boukil/public_html/abdellah_boukil/abdellah_admin/db_app/login.php on line 17

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/boukil/public_html/abdellah_boukil/abdellah_admin/db_app/database_connect.php:19) in /home/boukil/public_html/abdellah_boukil/abdellah_admin/db_app/login.php on line 17

Warning: Cannot modify header information - headers already sent by (output started at /home/boukil/public_html/abdellah_boukil/abdellah_admin/db_app/database_connect.php:19) in /home/boukil/public_html/abdellah_boukil/abdellah_admin/db_app/login.php on line 21


Quelqu'un puisse me sauver :/ ! Merci d'avance.

1 réponse

Bonjour

output started at /home/.../database_connect.php:19

C'est là que les premiers caractères ont été envoyés, c'est de ce côté là qu'il faut chercher. Si ton fichier database_connect.php se termine par ?>, supprime ce ?> car il ne sert à rien et il y a sans doute des caractères à la fin du fichier.
C'est d'ailleurs ce qui est recommandé dans le manuel PHP, bien qu'on voie la plupart des programmeurs continuer à mettre ce ?> en fin de fichier.

Si ça marche en local, c'est peut-être simplement que les données sont mises en cache - donc pas envoyées aussitôt - chez toi, alors qu'en ligne tu n'as pas cette mise en cache.
1