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 :

Positionnement header. Content-Type: application/csv pour csv


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 109
    Par défaut Positionnement header. Content-Type: application/csv pour csv
    Bonjour

    Je dois lire une table pour l'exporter sous csv. Jusque là tout va bien
    mais je dois contrôler l'accès à cette page par un contrôle de session

    Si je fais le contrôle de session avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header("Content-Type: application/csv-tab-delimited-table");
    header("Content-disposition: filename=repertoire.csv");
    j'obtiens forcément le message classique cannot modify header information....

    Si je le place après pas de contrôle quelle est la solution merci

  2. #2
    Membre chevronné
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Par défaut
    Salut,

    quel est le code que tu utilises pour le contrôle de session ?

    et sur quel événement l'exportation est elle réalisée ?

  3. #3
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 109
    Par défaut
    Bonjour excuses pour ce délai dans ma réponse
    J'ai un bout de code du style (trouvé sur les tutos)
    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
    define ('SESSION_TIMEOUT', "1800");
    if (isset($_SESSION['login']))
    {
        // On vérifie si le temps d'inactivité n'a pas été dépassé
        if(time()-$_SESSION['last_access'] > SESSION_TIMEOUT)
        {
            logout();
        }
        else
        {
            // On stocke l'heure de dernière connexion
            // time s'exprime en secondes à partir du 01/01/70 à 00:00:00
            $_SESSION['last_access'] = time();
        }
    }
    après quoi je vais lire ma table et construire mon tableau et mon csv

    Merci

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 8
    Par défaut
    Salut,

    Tu doit afficher quelque chose avant les instructions header, c'est pour ca qu'il te dit que t'a pas le droit de modifier l'entete HTTP (deja envoyé au client).

    Il ne faut rien afficher (HTML, echo, ...) avant l'instruction header

  5. #5
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 109
    Par défaut
    Bonjour
    Merci pour ta reponse
    En réalité je dois controler l'accès à la page par un controle de la session, puis lancer le chargement CSV et c'est la que je coince,

    comment faire un test (if ($_session..... ) etc. puis après lancer le header
    header("Content-Type: application/csv-tab-delimited-table");
    header("Content-disposition: filename=repertoire.csv
    ")
    Merci

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 8
    Par défaut
    le fait que tu teste la session en PHP, ca n'a pas d'importance. Le truc c'est que tu ne doit absolument pas afficher d'HTML avant les instructions header.

    L'erreur classique c'est tu commence ton script avec <?php mais il y a un blanc juste avant la balise.


    Donc en gros avant le header :
    • Pas d'echo ou de print dans ton code php
    • Pas d'HTML ou de blancs avant la balise <?php

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/01/2013, 16h14
  2. header Content-Type text/html VS charset dans le code
    Par Moustico dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 30/08/2009, 21h08
  3. [AJAX] Ajax + header('Content-type: image/gif') PHP
    Par kum dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/02/2009, 09h36
  4. [CSV] export csv pour lecture sur mac
    Par lodan dans le forum Langage
    Réponses: 2
    Dernier message: 24/09/2008, 16h42

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