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 :

Les caprices de header


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut Les caprices de header
    Pardon, j'ai déjà mis ce message mais dans "script", je me suis trompé.

    Je le remets ici, c'est plus approprié.

    Bonjour,

    J'ai compris que "header" devait être en début de programme, j'ai donc fait un programme index.php commençant par :

    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
     <?php include("../verif.php"); ?>
    <?php
    if (!empty($_POST)) 
        {
            if (isset($_POST['Rechercher'])) 
            {
                $_SESSION['rec_nom']= $_POST['rec_nom'];
                $_SESSION['rec_prenom']=$_POST['rec_prenom'];
                $_SESSION['rec_numero']=$_POST['rec_numero'];
                header("Location: recherche.php");
            }
            elseif (isset($_POST['Ajouter'])) 
            {
                header("Location: ajouter_majeur.php");
            }    
        }
    ?>
    Le début du programme est un aiguillage en fonction de bouton choisi par l'utilisateur, rechercher ou ajouter.
    verif.php c'est ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     <?php
    // Contrôle de la session
    @session_start();
    $auth_session=$_SESSION["auth"];
    if($auth_session != 'yes')
    {
        session_unset(); // on efface toutes les variables de session
        session_destroy(); // on detruit la session en cours.
        mysql_close($connect_db);
        header("location: /".$prefixe_dossier."login.php");
        exit;
    }
    ?>
    Jusque là tout fontionne.

    Dans mon programme rechercher.php, je veux utiliser aussi des boutons. J'ai donc repris l'entête de index.php en changeant les valeurs qui m'intéressait :

    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
     <?php include("../verif.php"); ?>
    <?php
    if (!empty($_POST)) 
        {
            if (isset($_POST['Choisir'])) 
            {
                $_SESSION['maj_id']= $_POST['id_maj'];
                header("Location: gestion");
            }
            elseif (isset($_POST['Modifier'])) 
            {
                $_SESSION['maj_id']= $_POST['id_maj'];
                header("Location: modifier_majeur.php");
            }    
        }
    ?>
    Et là lorsque je clic sur le bouton modifier, il me dit :

    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\gestelle\majeurs\recherche.php:1) in c:\program files\easyphp1-8\www\gestelle\majeurs\recherche.php on line 13
    Les bras m'en tombent, je ne vais plus pouvoir taper sur mon clavier.

    Merci d'avance pour que je puisse sauvegarder mes bras.

  2. #2
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Dans recherche.php, il y a un saut de ligne entre tes deux balises <?php ?>.
    C'est un caractère sans effet en HTML, mais c'est un caractère, donc il est envoyé au navigateur, avec les headers et tout le tintouin.

  3. #3
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Salut,

    pour le message concernant les headers je te redirige illico vers la FAQ PHP

    >>> erreur headers already sent

    et pour ce qui déclenche l'envoi de flux avant le header, je pense qu'il s'agit du header que tu fais ici :
    header("Location: gestion");
    ou celle -ci dans verif.php
    $auth_session=$_SESSION["auth"];
    es-tu sur que "auth" existe dans $_SESSION ? car si elle n'existe pas, un avertissement est envoyé par le handler d'exception, ce qui provoque ton message d'erreur final.


    voici ce que je mettrais :
    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
     
    <?php 
    include("../verif.php");
     
    if (isset($_POST['Choisir']))
    {
       $_SESSION['maj_id']=(!isset($_POST['id_maj']))?(''):($_POST['id_maj']);
       header("Location: gestion.php");
       exit();
    }
     
    if (isset($_POST['Modifier']))
    {
       $_SESSION['maj_id']=(!isset($_POST['id_maj'])?(''):($_POST['id_maj']);
       header("Location: modifier_majeur.php");
       exit();
    }
    ?>



    [edit]
    j'ai pas réagit sur le coup, mais Eusebius a carrément raison, c'est bien cet espace html qui part avant les fonctions header()
    [/edit]

  4. #4
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut Espace html
    Merci,

    j'utilise DREAMWEAWER comme éditeur, je ne vois pas cet espace.

    Vous faites comment pour le voir ?

  5. #5
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par pierre3
    Merci,

    j'utilise DREAMWEAWER comme éditeur, je ne vois pas cet espace.

    Vous faites comment pour le voir ?
    Ya rien à voir, tu as fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php ...?>ICI ya un retour chariot
    <?php ...

  6. #6
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut Retour chariot ?
    Bon d'accord, je veux bien.

    Mais alors pourquoi l'erreur n'existe pas sur index.php ?

    Bizard, étrange, incompréhension.

  7. #7
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par pierre3
    Bon d'accord, je veux bien.

    Mais alors pourquoi l'erreur n'existe pas sur index.php ?

    Bizard, étrange, incompréhension.
    Pardon, j'ai ptet confondu les fichiers. Toujours est-il qu'en théorie, le retour chariot peut provoquer ce genre d'erreur.

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

Discussions similaires

  1. installation avec les sources, development headers
    Par bourriquet_42 dans le forum Administration système
    Réponses: 1
    Dernier message: 16/12/2008, 10h17
  2. [Scandale] Les caprices d'une star
    Par Manumation dans le forum La taverne du Club : Humour et divers
    Réponses: 8
    Dernier message: 01/04/2008, 23h21
  3. Réponses: 1
    Dernier message: 18/12/2007, 11h06
  4. Réponses: 8
    Dernier message: 31/08/2006, 12h25
  5. Makfile prenant en compte les changements des headers
    Par mhtrinh dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 17/05/2006, 23h45

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