Pb header ???
i gore
-
igor -
igor -
bonjour,
je suis en train de faire un site
et j utilise des headers
quand Je travaillais sous windows tout marchait bien, maintenant sous linux lorsque le serveur rencontre un header ca me met comme erreur:
Warning: Cannot modify header information - headers already sent by (output started at /home/HTML/baptiste/librairie/lib_mysql.php3:3) in /home/HTML/baptiste/connexion.php3 on line 11
avez vous une idée ???
PS: la version de php est > à la 4.3
merci
je suis en train de faire un site
et j utilise des headers
quand Je travaillais sous windows tout marchait bien, maintenant sous linux lorsque le serveur rencontre un header ca me met comme erreur:
Warning: Cannot modify header information - headers already sent by (output started at /home/HTML/baptiste/librairie/lib_mysql.php3:3) in /home/HTML/baptiste/connexion.php3 on line 11
avez vous une idée ???
PS: la version de php est > à la 4.3
merci
5 réponses
-
-
Elle ressemble à quoi cette ligne 11 ? (et ce qui l'entoure éventuellement ... )
.::: "A trop vouloir feindre de faire fi, on finit
par faire fi de vouloir feindre." :::. -
Salut,
l'erreur vient du fait que tu dois envoyer tous tes headers AVANT de faire tes sorties html. Alors traite tous les headers avant d'envoyer la balise <html>, et ca devrait rouler!
Fat_Cartman,
Parce que je le vaux bien... -
le pb c est que sa marche sous windows .........
voici mes lignes de codes tels quelles et sans commentaire rajouté apres le copier coller:
<?
// fonction mysql_connect et mysql_query
include('./librairie/lib_mysql.php3');
// parametre de connexion
include('./librairie/lib_data.php3');
// verifie les parametres saisies
if (empty($_POST["login"])){
header('Location: index.php3');
}
if (empty($_POST["password"])){
header('Location: index.php3');
}
$login=$_POST["login"];
$mdp=$_POST["password"];
$connexion=connexion($host,$user,$pwd);
// recherche si le client existe et si il est autorisé a avoir acces au site
$requete='select * from client where login=\''.$login.'\' and mdp=\''.crypt($mdp,CRYPT_MD5 ).'\' and droit!=0;';
$reponse=query($dbase,$requete,$connexion);
$data=mysql_fetch_row($reponse);
mysql_close($connexion);
if ($data[0]==''){
// le client n'existe pas
header('Location: index.php3');
}
else{
// le client existe
// construction d'un identifiant unique ( format: [fonction du client]+[jour de la date du jour]+[longueur de id_client]+[id_client]+[identifiant]
$unique=uniqid('',TRUE);
$unique=$data[8].date("d").strlen($data[0]).$data[0].$unique;
if (!$handle = fopen('connexion.txt', 'a')) {
header('Location: index.php3');
}
if (fwrite($handle,$unique."\r\n") === FALSE) {
header('Location: index.php3');
}
fclose($handle);
if ($data[8]==1){
// si le client est root
header('Location: admin/index.php3?log='.$unique);
}
if ($data[8]==2){
// si le client est modo
header('Location: modo/index.php3?log='.$unique);
}
if ($data[8]==3){
// si le client est client
header('Location: index.php3?log='.$unique);
}
}
?>
BON COURAGE et encore merci de votre aide -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Qu'est-ce que tu veux dire par "ça marche sous Windows" ?
Tu veux dire que ça marche avec un serveur IIS et pas avec Apache ?
Et est-ce que comme le dit fat_cartman tu es bien en dehors de balises html ?
.::: "A trop vouloir feindre de faire fi, on finit
par faire fi de vouloir feindre." :::.-
ca marche comme ca:
un internaute rempli un formaulaire sur la page précédente,
ce formulaire est envoyé sur la page connexion ( voir ci dessus ). Donc logiquement je suis sur une nouvelle page et je suis en dehors des balises html puisque y en a pas.
la page connexion marche comme ca:
-je fais des import de fonctions
-je teste si le login et le password sont vides ou pas
( si vide je redirige vers l'accueil )
- ensuite je regarde si l'utilisateur existe et a le droit d'acces au site.
- si le résultat de cette requete est vide , je redirige ver l'acccueil
- sinon je redirige sur les pages en fonctions de leur 'fonction' ( root , modo ,client )
sous windows , j'utilise easyphp ( apache, php et mysql )
sous linux , apache php et mysql
je reste a votre disposition pour résoudre ce probleme.
merci d'avance -
Eh ben regarde si t'as pas fait d'erreurs comme j'en ai deja faites:
enlève tous les espaces et les sauts de lignes inutiles avant <? et apres ?>, car ces caracteres sont envoyés au navigateur et constituent le corps du fichier html.
Vérifie dans ton fichier principal mais aussi dans les fichiers inclus.
Fat_Cartman,
Parce que je le vaux bien... -
-