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 :

[Sécurité] Session_start() ne marche pas


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de nebule
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 507
    Par défaut [Sécurité] Session_start() ne marche pas
    Bonjour,

    Dans ma page je dois récupérer des infos en session -> donc session_start() au debut et plus loin, j'ouvre un fichire Excel créé.

    Séparement tout fonctionne impec mais dés que je mets les deux ensemble Excel ne trouve plus le fichier à ouvrir

    Si je mets le session_start() en commentaire, ca marche nickel.
    J'ai essayé de mettre les header avant / aprés le session_start() sans résultats

    Le 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
    <?php
    session_start();
    $fichierResultat=$_SESSION["fichierResultat"];
    $fichierLimite=$_SESSION["fichierLimite"];
    $listeSN=$_SESSION["listeSN"];
          
    $lieu="C:/pageExcel.xls";
    define("FILENAME",$lieu);
    $excel = new COM("excel.application") or die("Unable to instantiate Excel !");
    $excel->sheetsinnewworkbook=1;//1 seule feuille de calcul dans le document
    $excel->Workbooks->Add();//Ajout d'un classeur
    $book=$excel->Workbooks(1);//$book contient le classeur actif
    $sheet=$book->Worksheets(1);//$sheet contient la feuille active
    $sheet->Name="Résultats des tests";//Attribution d'un nom à la feuille
          
    if (file_exists(FILENAME)) {unlink(FILENAME);} //suppression de l'ancien fichier
    $book->saveas(FILENAME);//Sauvegarde du fichier
    unset($sheet);//Libération de $sheet
    unset($book);//Libération de $book
    $excel->Workbooks->Close();//Fermeture du classeur
    $excel->Quit();//On quitte Excel
    unset($excel);//Libération de l'instance $excel
          
    // Entête pour Ouvrir avec MSExcel
    //header("content-type: application/xls");
    header("Content-Type: application/x-msexcel");
    header("Content-Disposition: attachment; filename=pageExcel.xls");
          
    flush(); // Envoie le buffer
    readfile("C:/pageExcel.xls"); // Envoie le fichier
    if (file_exists(FILENAME)) {unlink(FILENAME);} //suppression de l'ancien fichier
    ...
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com
    Et donc, j'ai mon petit lien qui m'ouvre cette page, IE (navigateur du client, pas de critique la dessus ) me propose d'ouvrir le fichier -> ok c'est sympa et quand il m'ouvre Excel, il note que le doc est introuvable dans c:\Documents and Settings\monprofil\Local Settings\Temporary Internet Files\Content.IE5\...\pageExcel[1].xls.

    Mais pourquoi il va le chercher à cet endroit là alors que je précise de le mettre dans c:/pageExcel.xsl ?
    J'ai zappé un truc ou quoi ?

    Merci,
    Marie

  2. #2
    Invité
    Invité(e)
    Par défaut
    au lieu de loyvrir , essai de faire un enregistrer sous pour voir si le fichier enregistré est ok (normalement oui)

  3. #3
    Membre Expert
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Par défaut
    Le script que tu exécute tourne côté serveur, lorsque tu spécifie le chemin
    $lieu="C:/pageExcel.xls";
    Il s'agit du chemin locals sur ton serveur ...

    Je ne pense pas (pour des raisons de sécurité) que tu puisses enregistrer sur la machine du client un fichier à un endroit précis.

    Le navigateur gère lui même l'endroit où sont déposés les fichiers temporaires.

    Cette ligne est-elle indispensable ??

    header("Content-Disposition: attachment; filename=pageExcel.xls");

    @+

  4. #4
    Membre Expert Avatar de nebule
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 507
    Par défaut
    Citation Envoyé par eric190
    Le script que tu exécute tourne côté serveur, lorsque tu spécifie le chemin
    $lieu="C:/pageExcel.xls";
    Il s'agit du chemin locals sur ton serveur ...

    Je ne pense pas (pour des raisons de sécurité) que tu puisses enregistrer sur la machine du client un fichier à un endroit précis.

    Le navigateur gère lui même l'endroit où sont déposés les fichiers temporaires.

    Cette ligne est-elle indispensable ??

    header("Content-Disposition: attachment; filename=pageExcel.xls");

    @+
    Alors, si je ne mets pas la ligne header("Content-Disposition: attachment; filename=pageExcel.xls"); il m'ouvre le fichier Excel direct dans IE ce qui n'est pas du tout pratique -> pas possible d'enregistrer le fichier là où le veulent les utilisateurs et de "bidouiller" dans Excel

    Aprés, quand je mets $lieu="./pageExcel.xls"; la fenetre IE réfléchie pendant je sais pas combien de temps et n'arrive jamais à rien m'ouvrir

    Pfff je suis un peu paumée avec ce fichier Excel... j'avais déjà posté un message pour ne pas avoir à enregistrer le fichier mais juste l'ouvrir http://www.developpez.net/forums/sho...d.php?t=139626 mais personne n'a répondu alors j'ai contourné le problème en ouvrant le fichier, le mettant sur le C:/ et le supprimant juste aprés.

    Une autre idée

    Merci

  5. #5
    Membre Expert
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Par défaut
    Ceci marche chez moi ...
    <?php
    $sFileName
    = "c:\\Classeur1.xls";

    header("Content-Disposition: attachment; filename=pageExcel.xls");

    print
    readFileContent($sFileName);

    function
    readFileContent($sFileToRead)
    {
    $handle = fopen($sFileToRead,'r');

    $content = fread($handle, filesize($sFileToRead));

    fclose($handle);

    return
    $content;
    }
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

    Il me renvoitun fichier pageExcel.xls ... c'est ce que tu voulais faire non ?

  6. #6
    Membre Expert Avatar de nebule
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 507
    Par défaut
    Citation Envoyé par eric190
    Ceci marche chez moi ...
    Il me renvoitun fichier pageExcel.xls ... c'est ce que tu voulais faire non ?
    hum chez moi aussi mais si tu rajoutes session_start(); au début ... ca marche plus

  7. #7
    Membre Expert
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Par défaut
    Le message d'erreur ??

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/07/2008, 17h50
  2. session_start marche pas
    Par lamachine dans le forum Langage
    Réponses: 4
    Dernier message: 26/09/2006, 09h28
  3. [Sécurité] .htaccess qui marche pas sur le serveur
    Par Alain15 dans le forum Langage
    Réponses: 6
    Dernier message: 26/06/2006, 09h10
  4. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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