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 :

Localisation de fichier avec transmission de variables


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Par défaut Localisation de fichier avec transmission de variables
    Bonjour,

    J'ai un problème vraiment bizarre sur lequel je suis en train de me tirer les cheveux, alors s'il y avait une bonne âme qui pouvait m'aider avant qu'il ne m'en reste plus !!!

    J'ai un premier fichier script (test.php) qui me permet d'en lancer un autre (write.php) en tâche de fond avec deux variables à transmettre.

    Code de test.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $numfile = $_GET['num'];
    $uploadID = $_GET['upload_id'];
     
    exec("/usr/bin/php write.php $numfile $uploadID > /dev/null &");
    ?>
    Code de write.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
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    <?php
    $ftemp = fopen ("tmp/resultat.txt", "w");
     
    $numfile = $argv[1];
    $uploadID = $argv[2];
    fwrite ($ftemp, "transmission des données par exec\n\n");
     
    fwrite ($ftemp, "numfile : '$numfile'\n");
    fwrite ($ftemp, "uploadID : '$uploadID'\n\n");
     
    require("temp.php");
     
    $fichier = $nom_fichier[$numfile];
     
    fwrite ($ftemp, "fichier : '$fichier'\n\n");
    $local_file="uploads/$uploadID/".$fichier;
    fwrite ($ftemp, "local_file : '$local_file'\n");
    if (is_file($local_file)) {
    	fwrite ($ftemp, "local_file '$local_file' existe\n\n");
    } else {
    	fwrite ($ftemp, "local_file '$local_file' n'existe pas\n\n");
    }
     
    $temp_dir = "tmp/".$uploadID;
    fwrite ($ftemp, "temp_dir : '$temp_dir'\n");
    if (is_dir($temp_dir)) {
    	fwrite ($ftemp, "répertoire temp_dir '$temp_dir' existe\n\n");
    } else {
    	fwrite ($ftemp, "répertoire temp_dir '$temp_dir' n'existe pas\n\n");
    }
     
    $file_temp = $temp_dir."/upload_".$fichier.".txt";
    fwrite ($ftemp, "file_temp : '$file_temp'\n");
    if (is_file($file_temp)) {
    	fwrite ($ftemp, "file_temp '$file_temp' existe\n\n");
    } else {
    	fwrite ($ftemp, "file_temp '$file_temp' n'existe pas\n\n");
    }
     
    fwrite ($ftemp, "ecriture via exec OK\n");
    fclose ($ftemp);
    chmod ("tmp/resultat.txt",0777);
    ?>
    Code de temp.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    $nom_fichier[0] = 'Fichier_test_1.zip';
    $nom_fichier[1] = 'Fichier_test_2.zip';
    $nom_fichier[2] = 'Fichier_test_3.zip';
    ?>
    En lançant mon script.php avec les variables (test.php?upload_id=fe77f2cf2562d6c04010296cb400fc5b&num=0), voici ce que j'obtiens dans mon fichier "resultat.txt" :
    transmission des données par exec

    numfile : '0'
    uploadID : 'fe77f2cf2562d6c04010296cb400fc5b'

    fichier : 'Fichier_test_1.zip'

    local_file : 'uploads/fe77f2cf2562d6c04010296cb400fc5b/Fichier_test_1.zip'
    local_file 'uploads/fe77f2cf2562d6c04010296cb400fc5b/Fichier_test_1.zip' existe

    temp_dir : 'tmp/fe77f2cf2562d6c04010296cb400fc5b'
    répertoire temp_dir 'tmp/fe77f2cf2562d6c04010296cb400fc5b' existe

    file_temp : 'tmp/fe77f2cf2562d6c04010296cb400fc5b/upload_Fichier_test_1.zip.txt'
    file_temp 'tmp/fe77f2cf2562d6c04010296cb400fc5b/upload_Fichier_test_1.zip.txt' n'existe pas

    ecriture via exec OK
    Il me dit que mon fichier upload_Fichier_test_1.zip.txt (file_temp) n'existe pas alors qu'il existe bien !!!!



    J'ai essayé de modifier le script write.php de cette façon (transmission des données par get sans passer par test.php) :

    Code de write.php modifié :
    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
    41
    42
    43
    44
     
    <?php
    $ftemp = fopen ("tmp/resultat.txt", "w");
     
    $numfile = $_GET['num'];
    $uploadID = $_GET['upload_id'];
    fwrite ($ftemp, "transmission des données par get\n\n");
     
    fwrite ($ftemp, "numfile : '$numfile'\n");
    fwrite ($ftemp, "uploadID : '$uploadID'\n\n");
     
    require("temp_$uploadID.php");
     
    $fichier = $nom_fichier[$numfile];
     
    fwrite ($ftemp, "fichier : '$fichier'\n\n");
    $local_file="uploads/$uploadID/".$fichier;
    fwrite ($ftemp, "local_file : '$local_file'\n");
    if (is_file($local_file)) {
    	fwrite ($ftemp, "local_file '$local_file' existe\n\n");
    } else {
    	fwrite ($ftemp, "local_file '$local_file' n'existe pas\n\n");
    }
     
    $temp_dir = "tmp/".$uploadID;
    fwrite ($ftemp, "temp_dir : '$temp_dir'\n");
    if (is_dir($temp_dir)) {
    	fwrite ($ftemp, "répertoire temp_dir '$temp_dir' existe\n\n");
    } else {
    	fwrite ($ftemp, "répertoire temp_dir '$temp_dir' n'existe pas\n\n");
    }
     
    $file_temp = $temp_dir."/upload_".$fichier.".txt";
    fwrite ($ftemp, "file_temp : '$file_temp'\n");
    if (is_file($file_temp)) {
    	fwrite ($ftemp, "file_temp '$file_temp' existe\n\n");
    } else {
    	fwrite ($ftemp, "file_temp '$file_temp' n'existe pas\n\n");
    }
     
    fwrite ($ftemp, "ecriture via exec OK\n");
    fclose ($ftemp);
    chmod ("tmp/resultat.txt",0777);
    ?>
    Le script temp.php reste inchangé…

    En executant le script write.php modifié (write.php?upload_id=fe77f2cf2562d6c04010296cb400fc5b&num=0), voici ce que contient le fichier resultat.txt :
    transmission des données par get

    numfile : '0'
    uploadID : 'fe77f2cf2562d6c04010296cb400fc5b'

    fichier : 'Fichier_test_1.zip'

    local_file : 'uploads/fe77f2cf2562d6c04010296cb400fc5b/Fichier_test_1.zip'
    local_file 'uploads/fe77f2cf2562d6c04010296cb400fc5b/Fichier_test_1.zip' existe

    temp_dir : 'tmp/fe77f2cf2562d6c04010296cb400fc5b'
    répertoire temp_dir 'tmp/fe77f2cf2562d6c04010296cb400fc5b' existe

    file_temp : 'tmp/fe77f2cf2562d6c04010296cb400fc5b/upload_Fichier_test_1.zip.txt'
    file_temp 'tmp/fe77f2cf2562d6c04010296cb400fc5b/upload_Fichier_test_1.zip.txt' existe

    ecriture via exec OK
    Avec la version modifiée, il trouve bien le fichier upload_Fichier_test_1.zip.txt



    Si quelqu'un a une idée pourquoi il ne trouve pas mon fichier avec la première version (bien sûr celle qui m'interesse !!), ce serait vraiment cool…

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 692
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 692
    Par défaut
    regarde avec le 2 méthodes s'il y a des différences de propriétaires ou de droits des fichiers ou des répertoires

Discussions similaires

  1. [XL-2010] importer un fichier avec un nom variable en fonction de la date
    Par pepsister dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/06/2014, 12h10
  2. Réponses: 8
    Dernier message: 06/03/2012, 15h02
  3. Du Drag and Drop avec transmission de variable ou url
    Par -Hamadryade- dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/07/2011, 15h24
  4. Ouverture d'un fichier avec un nom variable
    Par setauh dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/09/2009, 07h19
  5. Charger un fichier avec un nom variable
    Par GuilloOm dans le forum Octave
    Réponses: 2
    Dernier message: 21/07/2008, 17h19

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