IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Headers déja parti


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Par défaut Headers déja parti
    Salut à tous , j'ai ce problème :

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/sondage_internet/index.php:7) in /var/www/sondage_internet/traitement_inscription_mail.php on line 8

    Warning: Cannot modify header information - headers already sent by (output started at /var/www/sondage_internet/index.php:7) in /var/www/sondage_internet/traitement_inscription_mail.php on line 27
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
     
    if(isset($_POST['mail']))
    {
    	if(filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)) // Format email
    	{
    		$mail=$_POST['mail']; //Recupération du champ e-mail
    		session_start();
    		$_SESSION['mail']=$mail; //Affectation de l'adresse email à une variable de session
     
    		include('ouverture_bd.php');
     
    		$sql = "SELECT id_int FROM internaute WHERE email_int='$mail'";
    		$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
    		include('fermeture_bd.php');
     
    		$res = mysql_num_rows($req);
    		if($res==1) //Vérification email
    		{
    			echo "<span class='erreur'> Erreur ! </span> Cette adresse e-mail existe déja."."<br /><br />";
    			include('inscription_mail.php');
    		}
    		else
    		{
    			header("location: index.php?page=generation_code");
    		}				
    	}
    	else
    	{
    		echo "<span class='erreur'>Erreur ! </span><br />Veuillez vérifier la saisie de votre champ<br /><br />";
    		include('inscription_mail.php');
    	}
    }
    else
    	{
    		echo "<span class='erreur'>Erreur ! </span><br />Veuillez vérifier la saisie de votre champ<br /><br />";
    		include('inscription_mail.php');
    	}	
    ?>
    inscription_mail.php est le formulaire

    J'ai oublié de préciser que sur mon serveur local (wamp) , je n'ai pas ce message d'erreur , et depuis le transfert sur le serveur qui hebergera cette application (lamp) , j'ai ce message d'erreur.

    Merci de votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Cela signifie que quelque chose est envoyé ligne 7 de ton index.php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="fichier.js"></script>
    C'est ce que j'ai à la ligne 7 de mon index.php

    Je vais rajouter en haut de mon fichier index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php session_start(); ?>


    Mais pourquoi cela fonctionnes sur mon serveur WAMP et pas sur LAMP ?

  4. #4
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Par défaut
    Après cette manipulation , c'est OK pour mon session_start mais pas pour mon header :
    Warning: Cannot modify header information - headers already sent by (output started at /var/www/sondage_internet/index.php:7) in /var/www/sondage_internet/traitement_inscription_mail.php on line 26
    Il me semble que lors de l'utilisation d'un header , il doit pas y avoir de code HTML avant c'est ça ?

    J'utilises des scripts basés sur une page d'acceuil index.php (qui contient un tableau associatif aux noms de pages par rapport à des variables)

  5. #5
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonsoir,

    Dans ce cas tu as deux solutions :

    1. Traiter le header directement dans la page d'accueil
    2. Que la page d'accueil stocke le contenu des pages incluses dans un buffer avant d'envoyer le balisage HTML afin de pouvoir utiliser header dans les pages incluses.

  6. #6
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Par défaut
    Je gères d'autres pages avec des headers donc je peut pas opter pour l'option 1 je penses.

    Mais pour la 2e option , J'ai rajouté le code (en rouge) dans l'index.php ci-dessous. Ca à l'air de fonctionner , il y aurait d'autres choses à modifier ou pas ?

    Puisque je met toute ma page index en tampon mais comment le système s'organise pour lancer mon header PUIS le contenu du tampon ? surtout que quand j'utilises la commande pour le fermer(et le lancer) , mon header ne fonctionne plus.

    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
    session_start();
    ob_start();
    ?>
    
    CONTENU HTML (bannière)
    
    <?php 
    
    			
    $pageOK = array //Tableau avec à gauche le nom du paramètre(page) et à droite le nom du fichier
    (
    'variable' => 'nom_page.php',
    ....etc 
    );
    					 
    if ((isset($_GET['page']))) 
    {
     if(isset($pageOK[$_GET['page']]))
     { 
       include($pageOK[$_GET['page']]);
     }
     else 
     {
       echo "Erreur";
        include('accueil.php');  
      }
    }
    else
    {
     include('accueil.php');  
    }			
    ?>
    
    CONTENU HTML (pied de page)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] erreur header already sent (déja envoyé)
    Par youssef222 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/03/2009, 10h31
  2. Ecrire dans la partie Header du RTF
    Par shuryyy dans le forum Jasper
    Réponses: 1
    Dernier message: 30/10/2008, 08h52
  3. Comment cacher une partie d'un header
    Par alen dans le forum Visual C++
    Réponses: 6
    Dernier message: 28/08/2008, 11h52
  4. [eZ Publish] Texte dynamique dans la partie Header
    Par jeremm dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 18/06/2008, 12h45
  5. lire a partie d'un header
    Par 4daime dans le forum C++
    Réponses: 8
    Dernier message: 14/08/2007, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo