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 :

Comment modifier ce code pour que le nom passé dans le paramètre 4 crée un fichier à coté du même nom ?


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut Comment modifier ce code pour que le nom passé dans le paramètre 4 crée un fichier à coté du même nom ?
    Bonjour,

    Pour les besoins d'un programme écrit en W-langage, je me suis fait aidé à l'époque pour écrire ce fichier PHP.
    Aujourd'hui j'aimerai l'améliorer mais voilà, je ne sais pas comment faire.
    Voici son code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $val1 = isset($_GET['val1']) ?  $_GET['val1'] : '';
    $val2 = isset($_GET['val2']) ?  $_GET['val2'] : '';
    $val3 = isset($_GET['val3']) ?  $_GET['val3'] : '';
    $val4 = isset($_GET['val4']) ?  $_GET['val4'] : '';
    $space = " | ";
    $filename = str_replace('.php', '.idu', basename($_SERVER['PHP_SELF']));
    $date = date("YmdHis");
     
    $file = file_get_contents($filename);
    file_put_contents($filename, $date.$space.$val1.$space.$val2.$space.$val3.$space."\n" . $file);
    ?>
    Actuellement lorsque j'appelle ce fichier php sur mon serveur distant depuis mon programme,
    il crée (s'il n'existe pas) un fichier (à coté) ayant le même nom mais avec l'extention ".idu" dans lequel il écrit sur une même ligne :
    sa propre date/heure de création (celle du serveur) puis les valeurs Val 1, 2 et 3 que j'ai passées en paramètre à l'appel du php Le tout séparé par le caractère pipe.
    Si le fichier .idu existe déjà, une autre ligne s'ajoute dans ce fichier avec la date/heure du moment (du serveur) et les valeurs 1, 2 et 3 passées au moment de l'appel.

    Mon souhait :

    Au lieu qu'à l'exécution le php crée le .idu à partir de son propre nom, j'aimerai qu'il le crée à partir de la valeur 'Val4' qui sera passée en paramètre au moment de l'appel tout en prenant bien sûr l’extension .idu
    Tout le reste doit continuer de fonctionner de la même manière.

    Voilà, étant une bille en php, si quelqu'un peut me transformer ce code, ce sera très apprécié...

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (isset($_GET['val4'])) {
       $filename = basename($_GET['val4']) . '.idu';
    }
    else {
       exit('Nom de fichier man
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Bonjour et merci d'avoir répondu si rapidement !

    Je ne voudrais pas paraître "lourd" mais étant vraiment une bille en php (j'assume au moins) auriez-vous la gentillesse de reprendre tout le contenu de mon source avec votre modif incluse à l’intérieur car je ne vois pas exactement ce qu'il faut remplacer ou modifier...

    par ex. le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exit('Nom de fichier man
    j'ai l'impression qu'il manque qq chose...

    Merci par avance pour votre compréhension...

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme ça par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    if (!empty($_GET['val1']) && !empty($_GET['val2']) && !empty($_GET['val3']) && !empty($_GET['val4'])) {
      $separator= " | ";
      $filename = basename($_GET['val4']). 'idu';
      $date = date("YmdHis");
      $file = file_get_contents($filename);
      file_put_contents($filename, $date.$separator.$val1.$separator.$val2.$separator.$val3.$separator."\n" . $file);
    }
    else {
     echo 'Paramètre manquant';
    }
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Merci pour votre compréhension, d'autant que je viens de me rendre compte que c'est déjà vous qui êtes venu à mon secours il y a 1 an (à deux jours près) !

    A l'époque vous m'aviez déjà fait cette proposition en gros de ce que je cherche à améliorer aujourd'hui.
    Mais à l'époque j'avais besoin d'y aller doucement...

    Cependant, ce qui me gêne un peu (comme vous avez tout remanié) c'est le "Echo" qui je pense est destiné à afficher qq chose sur l'écran...
    Hors dans mon cas, tout doit se faire en silence sur le serveur car j'exploite ensuite le contenu du fichier .idu par des requêtes depuis mon programme en w-langage (donc à distance).

    Je crois comprendre à la lecture du code que si au moins 1 des paramètres est manquant (chaîne vide) il va provoquer le fameux Echo.
    Hors justement, il y a des cas où une des trois valeurs passées en paramètre peut être vide...

    Du coup je ne sais pas ce qui va se passer au niveau du fichier.idu sur le serveur ni ce que va provoquer le fameux Echo.

    Je vais donc tester tout ça et revenir ensuite vous donner la réponse...

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    S'il n'y a pas besoin du echo, tu peux le retirer.
    Si des paramètres sont optionnels, tu peux les retirer du IF.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Alors voilà :
    Au 1er essai le fichier idu généré n'était pas séparé de son extension, du coup j'ai compris qu'il fallait mettre un point en plus devant le 'idu' > '.idu'
    Le fichier généré ne contenait hélas que la date et les séparateurs bien que 4 valeurs passées n'étaient pas vide.
    Du coup j'ai bricolé comme j'ai pu pour sortir ce code et là ça marche impec !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $val1 = isset($_GET['val1']) ?  $_GET['val1'] : '';
    $val2 = isset($_GET['val2']) ?  $_GET['val2'] : '';
    $val3 = isset($_GET['val3']) ?  $_GET['val3'] : '';
    $separator= " | ";
    $filename = basename($_GET['val4']). '.idu';
    $date = date("YmdHis");
    $file = file_get_contents($filename);
    file_put_contents($filename, $date.$separator.$val1.$separator.$val2.$separator.$val3.$separator."\n" . $file);
    ?>
    Sur ce coup, je suis assez content de moi
    En tout cas merci encore une fois pour ton aide si spontanée !
    Je te dis pas : à l'année prochaine mais bon...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/07/2007, 19h41
  2. Comment modifier ce code javascript de quizz ?
    Par cynthiavn dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/05/2007, 03h10
  3. [VS] Comment modifier le code de Bibliotheque de classes ?
    Par DonJR dans le forum Visual Studio
    Réponses: 6
    Dernier message: 24/10/2006, 13h17
  4. Comment modifie une requete pour avoir des sommes?
    Par F@ce27 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 16/06/2006, 13h47
  5. Comment puis je faire pour que'une page soir rechargees....
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/12/2005, 10h46

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