Quest ce que cette Erreur (Header) signifie ?

Résolu
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007 - 22 sept. 2005 à 14:33
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007 - 23 sept. 2005 à 08:08
Bonjour a tous !

quest ce que cette erreur ? et quest ce que ca signifie ??

Warning: Cannot modify header information - headers already sent by (output started at /home/oxygenb/public_html/demo/config.php:9) in /home/oxygenb/public_html/demo/verif.php on line 22

----------
Voici le script :
-------

<?php
session_start();
include("config.php");
$pseudo = $_POST["pseudo"];
$motdepasse = $_POST["motdepasse"];
@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter à la base de données.");
$requete = "SELECT * FROM membres ".
" WHERE pseudo='$pseudo' AND motdepasse='$motdepasse'";
$result = @mysql_query($requete);
if ($enreg = @mysql_fetch_array($result)) {
// Si une ligne a été trouvée c'est que le couple
// (identifant, mot de passe) est valide
$_SESSION["membre"] = TRUE;
$_SESSION["membreid"] = $pseudo;
header("Location: mon_compte.php");
die();
} else {
$_SESSION["membre"] = FALSE;
header("Location: compte_invalide.php"); // Ligne 22
die();
}
?>

javoue que je comprend pas tres bien pk il me fait ca ???

11 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
22 sept. 2005 à 21:57
Voilà... t'as tout compris!



Je préfère les devinettes aux réponses toutes cuites. Mais comme tu t'es creusé la nenette, je vais tout te dire :



Ce qu'il faut savoir :

*Tout ce qui est en dehors des <?php ?> est considéré comme de l'HTML et donc envoyé tel-quel à ton navigateur.

*On n'envoi pas du HTML sans expliquer que c'est du HTML. Donc avant d'envoyer le
retour de ligne, il envoi une entête ("header") dans laquelle se trouve
des trucs du genre "type d'encodage, de quelle page HTML il s'agit,
...". D'où l'erreur "header already send".

*session_start ajoute une information dans l'entête de la page HTML :
"donne moi l'identifiant de session". Qui servira à identifier
l'utilisateur pour retrouver ces variables personnelles

*A l'intérieur des <?php ?> les carctères blancs (espace, tab et
retour ligne) sont tous simplement oublié par l'analyseur de script PHP.



A partir de là, tout est claire :

cas 1 :

Bon là pas de doute, session_start est au début car <? est le premier truc de la page.



cas 2 :

Il y'a un saut de ligne avant <?php, donc ton analyseur envoi un
caractère au navigateur. Et comme il envoi un caractère, il jete un
header avant pour bien se faire comprendre par le navigateur



cas 3 :

Tu l'a deviné, c'est pareil pour un espace



cas 4 :

Un peu plus chaud, ob_start() fait de la rétention d'information !!!
Donc tu peux balancer tout dans le désordre (HTML, header) et quand la
commande "flush" arrive (flush = balance tout). L'analyseur PHP fait le
tri dans ton bordel, remet tout en place et envoi la purée. Donc c'est
bon.



Bref la solution était : " enlève le saut de ligne au début de ton
script". Mais maintenant tu en sais plus... Et c'est meiux, non?



A+
3
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 sept. 2005 à 22:35
Re les gars ! ca fait un an et demi que je connais ce language ! et j'ai toujours eu cette merde !


franchement apres plusieurs essai avec vos conseille ! lerreur est tjs presente! ca ma peter la tete serieux !!


c comme le javascript ! ca chiale pour rien !
et dans mon script ya un include qui amene a la partie config !


et ben devinez quoi ! monsieur le php né pas content ! et je suis obliger de copier coller mon fichier config et linserer dans la source et enlever linclude ! et la ca marche impec !
incroyable ces bugs chinois la !

pfff ! si vous avez des soluce pour faire un requiere ou include ou un truc de ce genre ou je pe mettre mes passes ! ca serai super !

@bientot ;)
3
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
22 sept. 2005 à 18:50
Salut,



Erreur classique, oh combien classique...



session_start() doit être placée au tout tout tout début de ton script.

Je te laisse te casser le crâne sur ces exemples (le trait signifie le sommet de ton script) :

_________________ cas n°1 : OK

<?

session_start()

/* blablabla */

?>



_________________ cas n°2 : NON !!!



<?


session_start()


/* blablabla */


?>



_________________ cas n°3 : NoooooN !!!! (un peux plus subtil là)

<?


session_start()


/* blablabla */


?>

_________________ cas n°4 : OK

<?ob_start()?>

trucs choses et tout et tout...

<?

/* tralalalalalalala */

session_start()


/* blablabla */

ob_end_flsuh();

?>





A+
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
22 sept. 2005 à 19:19
Salut,



ce message d'erreur étant le plus courant, je te laisse faire une recherche dans le forum.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 sept. 2005 à 19:45
J'ai compris que dalle ! merci quand meme de ta reponse ! parce que franhcement entre le cas 1 et 2 ! c'est le meme ! je cherche juste une reponse ! c tous ! jai cherché dans le forum avant de posté et je suis sur ce truc depuis ce matin...

javoue que je ne trouve pas...

que dois je faire exactement ???

_________________ cas n°1 : OK
<?
session_start()
/* blablabla */
?>

_________________ cas n°2 : NON !!!

<?
session_start()
/* blablabla */
?>

c le meme serieux !
ha moins que tu veux faire la nuance avec le trait en haut qui colle et qui colle pas !
regarde l'image en bas ( le lien ) ! il sot tous a fait bien coller

http://rech151.free.fr/session.JPG

@ +++
;)
0
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 sept. 2005 à 19:46
ha oui ton troisieme cas c un espace avec ton <?

pour info ! :)
0
jnbrunet Messages postés 258 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 13 novembre 2012
22 sept. 2005 à 21:45
Session start ne prend pas un " ; "??

_______________________
<?
session_sart();
?>

Jn
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
22 sept. 2005 à 21:58
Parse error, expecting ',' or ';' line 1 ;-)
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
22 sept. 2005 à 23:01
Jamais eu de problème avec monsieur PHP. On est en très bon rapport
tout les deux : quand il a un souci, il me le dit clairement et je
règle le problème.



Après un an et demi, je suis surpris ! vous n'êtes peut-être pas fais l'un pour l'aute...
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
22 sept. 2005 à 23:06
En plus il est loin d'être rigouriste !



(par contre javascript, je te l'accorde, est un peu plus galère et c'est franchement la cacophonie entre IE et Netscape)
0
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
23 sept. 2005 à 08:08
je connais bien le php mais le hic c'est que je l'utilise tres rarement.. je ne fais que le regarder et l'admirer! c'est tous...
quand jai besoin de lui ! la plupart du temps il m'emmerde ! :) si je puis je dire ;)
loool

aller a bientot :!! +++
0
Rejoignez-nous