[PHP] - Sessions et redirections

Résolu
Bonjour à tous !
Ma page permet d'envoyer un mail. Voici en gros le corps de ma page :
<?php
   session_start();

   // récupérations des données via $_GET et base de données 

   // rédaction du message 
   // au format html avec variables php
   // et variables de sessions
   // et ajout de pièces jointes

  // envoi du mail

  // redirection vers une autre page en javascript et non avec header(Location ....)

?>
Le mail est correctement envoyé au destinataire (avec pièces jointes) mais je n'ai pas de redirection et j'ai ce message d'erreur :
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
J'ai regardé dans de nombreux forum, car le problème semble bien répandu ; mais je ne comprends la signification de mon erreur, dans mon cas
Configuration: Windows XP
Firefox 3.0.6

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Ton message veux dire que tu dois avoir du code html avant le code php
    session_start();

    Celui-ci doit être mis en tout premier sur la page.
    1. Pourtant le début de mon fichier commence comme ceci :
      <?php
      	session_start();
      
      	//Recuperation des donnees du devis
      		require 'config.php';
      		$req = "Select ....;
      		$connexion = @mysql_connect("$host","$login","$password");
      	...
      
      ?>
      1. Celui n'est pas inclu dans un autre? T'a pas des espaces avant? j'ai déjà lu que ça pouvais poser problème.
        1. oui j'avais vu ça aussi mais rien y fait !!
          Ça te dérange si je poste mon code source sur un de mes sites pour trouver mon erreur ?
          1. Parmi les causes classiques, si tu utilises Notepad++ et que tu écris en UTF-8, il faut bien enregistrer en UTF-8 SANS BOM sinon il insère un caractère invisible (BOM) avant le <
            1. Comment "enregistrer en UTF-8 SANS BOM" ?
            2. @ben85350Je n'ai pas de notepad++ sous la main, mais ça apparaît sans doute dans un menu qui s'appelle "encodage" ou "jeu de caractères" ou quelque chose comme ça.
            3. @le pèreALELOUIA mon père !!
              Je vois ça, je teste et je te tiens au courant !!
            4. @ben85350Problème résolu en enregistrant en UTF-8 (sans BOM)
              Merci à tous pour votre aide !
          2. il es probable que cela nienne du faite que tu ne referme pas ta session
            1. J'ai testé en refermant la session mais ça ne change rien
          3. Salut,

            Moi je vérifie toujours qu'il n'y pas déjà une session en cours

            essaye donc avec ça :
            if (!isset($_SESSION)) {
              session_start();
            }