milkasoprano
Messages postés239Date d'inscriptionjeudi 21 juillet 2005StatutMembreDernière intervention 1 juillet 2007
-
22 sept. 2005 à 14:33
milkasoprano
Messages postés239Date d'inscriptionjeudi 21 juillet 2005StatutMembreDerniè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 ???
J_G
Messages postés1406Date d'inscriptionmercredi 17 août 2005StatutMembreDernière intervention28 août 200710 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?
milkasoprano
Messages postés239Date d'inscriptionjeudi 21 juillet 2005StatutMembreDerniè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 !
milkasoprano
Messages postés239Date d'inscriptionjeudi 21 juillet 2005StatutMembreDerniè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
J_G
Messages postés1406Date d'inscriptionmercredi 17 août 2005StatutMembreDernière intervention28 août 200710 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...
milkasoprano
Messages postés239Date d'inscriptionjeudi 21 juillet 2005StatutMembreDerniè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