Pb header ???

i gore -  
 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

5 réponses

  1. flokocha Messages postés 1519 Statut Membre 281
     
    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." 
    :::.
    0
  2. Utilisateur anonyme
     
    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...
    0
  3. igor
     
    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
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. flokocha Messages postés 1519 Statut Membre 281
     
    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." 
    :::.
    0
    1. i gore
       
      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
      0
    2. Utilisateur anonyme
       
      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...
      0
    3. igor
       
      MERCI.

      apperement c était un espace dans une de mes librairies, c a l air de marché mais j ai pas encore fait trop de tests.

      encore merci.
      0