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

HTML Discussion :

Générer un fichier bat en fonction de checkbox


Sujet :

HTML

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Points : 14
    Points
    14
    Par défaut Générer un fichier bat en fonction de checkbox
    Bonjour à tous,

    Je débute en Web et ai pour projet de créer une page html avec des checkbox qui, en fonction des cases cochées, doivent générer un fichier bat.

    Par exemple j'ai un boutonA, un boutonB...
    le boutonA correspond à la phraseA, le boutonB à la phrase B...

    en fonction des cases cochées, il faudrait qu'un fichier texte en .bat soit généré pour pouvoir l'enregistrer avec les phrases correspondantes aux cases cochées.

    Je cherche sans succès sur internet. J'ai trouvé la manière de créer les boutons mais ne trouve pas comment générer ce fichier.

    J'espère avoir été clair et vous remercie d'avance pour votre aide.

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    ce fichier BAT sera ensuite téléchargé par le visiteur de la page ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Oui le fichier ne sera pas à créer sur le serveur web mais à être généré pour être enregistrée par le visiteur.

    Afin d'être le plus clair possible, je préfère montrer concrètement le projet :
    Actuellement, j'ai un batch qui installe les logiciels, je souhaite avoir la possibilité d'installer avec un choix.

    Voici un bout du fichier batch :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo Installation de vlc
    %install-path%vlc-2.2.6-win32.exe /S
    echo Installation de 7Zip
    msiexec /i %install-path%7z920.msi /quiet
    echo Installation de Firefox
    %install-path%"Firefox Setup 56.0.1.exe" /S
    Du coup, les choix seraient le texte après echo
    les commandes à insérer dans le fichier généré seraient les commandes d'installation.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    Cela peut se faire en créant d'abord le contenu du fichier et en l'envoyant avec un entête qui indique qu'il s'agit d'un fichier BAT

    Essayez avec ce code, je ne l'ai pas testé mais ça doit être proche de votre besoin
    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
    <?php
     
    // création contenu du fichier en fonction des choix du formulaire
     
    $contenuFichier  = "";
    $contenuFichier .= "@echo off\n";
    $contenuFichier .= "\n";
     
    if (isset($_POST["boutonVLC"])) {
        
        $contenuFichier .= "echo Installation de vlc\n";
        $contenuFichier .= "%install-path%vlc-2.2.6-win32.exe /S\n";
        $contenuFichier .= "\n";
        
    }
     
    $contenuFichier .= "echo "fini"\n";
    $contenuFichier .= "\n";
     
     
    // téléchargement
     
    $nomFichier = "nomfichier.bat"
     
    $mime = "text/x-msdos-batch;charset=UTF-8";
     
    $tailleFichier = strlen($contenuFichier);
    $nomFichierEntete = str_replace('"', '\\"', $nomFichier);
     
     
    header("Content-Type: $mime");
    header("Content-Length: $tailleFichier");
    header("Content-Disposition: attachment; filename=\"$nomFichierEntete\"");
     
    echo $contenuFichier;
     
    exit();

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Merci pour cette réponse ou cet axe de solution.
    Je vais essayer de faire ce que je peux avec et vous en tient informé.

    Comme dit précédemment, je n'ai pas de formation en html ou php ; merci de votre compréhension.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Je viens de résoudre une grande partie de mes problématiques grâce au code que vous m'avez confié et vous en remercie.

    Il me reste une seule problématique.
    lorsque je renseigne mes variables batch, la génération ne prend pas en compte certains caractères :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenuFichier .= "set eav-path=\\serveur\Install\Softs\\r\n";
    la génération du fichier me donne comme rendu :
    set install-path=\serveur\Install\Softs

    alors que j'attends :
    set eav-path=\\serveur\Install\Softs\

    il me manque l'antislash après le égal et à la fin de la ligne.

  7. #7
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    puisque l'antislash est le caractère d'échappement, il vaut mieux les doubler même pour les caractères qui n'ont pas besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenuFichier .= "set eav-path=\\\\serveur\\Install\\Softs\\\r\n";

  8. #8
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Merci !!!

    du coup le script fonctionne nickel, au cas où une autre personne souhaite faire la même chose, j'en poste les codes :

    fichier pour les choix (checkbox) choix.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    echo '<form action="gen.php" method="POST" >
    <input type="checkbox" name="VLC">VLC<br>
    <input type="checkbox" name="7Zip">7ZIP<br>
    <input type="submit" value="Valider">                    
    </form>';
    ?>
    fichier de génération du fichier bat gen.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
    <?php
    $fp = fopen ("install.bat", "w");
    $contenuFichier  = "";
    $contenuFichier .= "@echo off\r\n";
    $contenuFichier .= "title Script d'installation\r\n";
    $contenuFichier .= "rem Variables\r\n";
    $contenuFichier .= "set ins-path=\\\\serveur\\Install\\Softs\\\r\n";
    $contenuFichier .= "cls\r\n";
     
     
    if (isset($_POST["VLC"])) {
        $contenuFichier .= "echo Installation de vlc\r\n";
        $contenuFichier .= "%ins-path%vlc-2.2.6-win32.exe /S\r\n";
        $contenuFichier .= "\n";   
    }
     
    if (isset($_POST["7Zip"])) {
        $contenuFichier .= "echo Installation de 7Zip\r\n";
        $contenuFichier .= "%ins-path%7zip920.msi /S\r\n";
        $contenuFichier .= "\n";   
    }
     
    $contenuFichier .= "echo Fin installation\r\n";
    $contenuFichier .= "pause\r\n";
    fwrite($fp, $contenuFichier);
    fclose ($fp);
     
    $nomFichier = "install.bat";
    $mime = "text/x-msdos-batch;charset=UTF-8";
    $tailleFichier = strlen($contenuFichier);
    $nomFichierEntete = str_replace('"', '\\"', $nomFichier);
     
    header("Content-Type: $mime");
    header("Content-Length: $tailleFichier");
    header("Content-Disposition: attachment; filename=\"$nomFichierEntete\"");
     
    echo $contenuFichier;
     
    exit();
    ?>
    pour que cela fonctionne, j'ai mis dans le même dossier que mes fichiers php un fichier install.bat avec les attributs 777 pour l’utilisateur apache.

    Encore merci pour voter aide mathieu

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/12/2014, 15h43
  2. Telecharger des fichiers en fonction des checkbox cochées
    Par simos dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/01/2009, 15h25
  3. Réponses: 0
    Dernier message: 13/01/2009, 11h47
  4. Réponses: 3
    Dernier message: 27/09/2008, 11h46
  5. Réponses: 3
    Dernier message: 10/08/2006, 20h04

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