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 :

Modification d'un fichier avec un formulaire PHP


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Modification d'un fichier avec un formulaire PHP
    Bonjour à tous.

    Je cherche à modifier un fichier de conf nagios à l'aide d'un formulaire en PHP.
    J'arrive à faire les modifs que je souhaite faire mais uniquement avec des champs input mais pas une combinaison de input et select.

    Code de mon formulaire à remplir (accueil.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
     
    <p>
        <b>Veuillez spécifier le nom et le service du serveur a superviser</b>
    </p>
     
    <form action="cible2.php" method="post">
    <p>
            Nom du serveur<br>
            <input type="text" name="hostname" /><br><br>
            Service a superviser<br>
            <select name="service">
            <option value="check_http">HTTP</option>
            <option value="check_ftp">FTP</option>
            <option value="check_ssh">SSH</option>
            </select>
            <br><br>Verifier que les informations sont justes, puis valider   <input type="submit" value="Valider" />
    Code de mon fichier qui traite les infos du formulaire (cible2.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
    <?php
    $file = fopen('/usr/local/nagios/etc/objects/hosts.cfg', 'a+');
    $host1 ='
    define service{
            use template-services
            host_name ';
    $host2 = $_POST['hostname'];
    $host3 = '
            service_description ';
    $host4 = $_POST['service'];
    $host5 = '
            check_command'
    $host6 = $_POST['service'];
    $host7 = '
    }
    ';
    $host = $host1.$host2.$host3.$host4.$host5.$host6.$host7;
     
    fputs($file, $host);
    fclose ($file);
    shell_exec('sudo /etc/init.d/nagios restart');
    ?>

    Donc je veux modifier mon fichier hosts.cfg en ajoutant à la fin de celui-ci de nouveaux serveurs à superviser de la manière suivante :

    define service {
    use template-services
    host_name <couleur nom="rouge">'hostname'</couleur>
    service_description <couleur nom="rouge">'service'</couleur>
    check_command <couleur nom="rouge">'service'</couleur>
    }
    Je pense pas que ce soit compliquer à faire mais je ne trouve pas la solution, rien ne se passe dans mon fichier hosts.cfg lorsque j’exécute ce code.

    Merci pas avance de vos retours

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2009
    Messages : 126
    Points : 183
    Points
    183
    Par défaut
    Bonjour,
    Sur cible2.php un var_dump($_POST) retourne bien toutes les valeurs du form?
    Aussi les droits sont paramétrés en écriture sur le fichier de conf ?
    (C'est certainement un oublie au copier / coller mais je ne vois pas de balise de fermeture du form)

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Points : 342
    Points
    342
    Par défaut
    Salut,

    En premier lieu, tu peux faire plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $file = fopen('/usr/local/nagios/etc/objects/hosts.cfg', 'a+');
     
    $host ="define service{
            use template-services
            host_name {$_POST['hostname']}
            service_description {$_POST['service']}
            check_command {$_POST['service']}
            }";
     
    fputs($file, $host);
    fclose ($file);
    shell_exec('sudo /etc/init.d/nagios restart');
    ?>
    Après, vérifie les droits d'accès au fichier. Ou essaye d'écrire dans un autre fichier.

Discussions similaires

  1. comment récuperer la date de modification d'un fichier avec FOPEN ?
    Par Frantz69 dans le forum Bibliothèque standard
    Réponses: 8
    Dernier message: 05/02/2009, 09h13
  2. Réponses: 4
    Dernier message: 22/02/2008, 12h43
  3. Réponses: 10
    Dernier message: 05/01/2007, 20h54
  4. [Upload] Upload de fichier avec un script PHP
    Par largolgd dans le forum Langage
    Réponses: 7
    Dernier message: 23/04/2006, 15h21
  5. Modification d'un fichier avec vi
    Par fabszn dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 05/01/2006, 11h50

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