Bash php
Résolu
Bonjour, voilà, j'essai de mettre un bouton sur ma page php dans le html, qui execute une commande bash dès qu'on clique dessus, malheureusement ça ne marche pas, pouvez vous me dire quel est le problème ?
Voici mon code dans le html (le fichier est bien en .php)
<?php
if (isset($_POST['start']))
{
shell_exec('echo "bla" >> /home/pi/Desktop/Scripts/Auto/essai.txt');
}
?>
<body>
<form method="post">
<p>
<button name="start">Lancer Transmission</button>
</p>
</form>
4 réponses
-
ModérateurNe serait-ce pas un problème de droit ?
Le serveur apache est executé en tant que www-data, je crois, donc, il est possible que cet utilisateur n'ai pas les droits d'écriture dans le dossier ou tout simplement à un des dossiers parents, ce qui fait échoué la commande.
-
-
Modérateur@faseldiTes autres pages font du shell_execute ??
-
-
-
-
-
voici le code complet
<!DOCTYPE html> <html lang="fr"> <meta charset="utf-8"/> <title>PI</title> <link rel="stylesheet" href="index.css"/> <body> <header> <h1>Transmission</h1> </header> <article> <?php if (isset($_POST['start'])) { echo "<br>Lancement du Batch ! <br>"; shell_exec('echo "bla" 2>&1 1>> /home/pi/Desktop/Scripts/Auto/essai.txt'); }else{ // le temps des tests ! echo "<pre>"; print_r($_POST); echo "</pre>"; } ?> <?php shell_exec('echo "bli" >> /home/pi/Desktop/Scripts/Auto/essssai.txt'); ?> <form method="post" action=""> <p> <input type="submit" name="start" value="Lancer Transmission"> </p> </form> <?php if (isset($_POST['stop'])) { shell_exec('echo "bla" >> /home/pi/Desktop/Scripts/Auto/essai.txt'); } ?> <body> <form method="post"> <p> <input type="submit" name="stop">Couper Transmission</button> </p> </form> </article> </body> </html>
Nom fichier : Transmission.php
But final : avoir deux boutons pour lancer/couper transmission
But actuel : ecrire bla dans le fichier essai -
ModérateurPour ce qui est de ton souci...
Il faut que ton "bouton" fasse un SUBMIT .
Essayes ça :<?php if (isset($_POST['start'])) { echo "<br>Lancement du Batch ! <br>"; shell_exec('echo "bla" >> /home/pi/Desktop/Scripts/Auto/essai.txt'); }else{ // le temps des tests ! echo "<pre>"; print_r($_POST); echo "</pre>"; } ?> <form method="post" action=""> <p> <input type="submit" name="start" value="Lancer Transmission"> </p> </form>
-
-
-
-
Modérateur@faseldiLà ce n'est plus vraiment un souci du PHP .
Ca peut venir d'un pb de droit sur le fichier et ou un souci avec la redirection .
Tu peux essayer :
shell_exec('echo "bla" 2>&1 1>> /home/pi/Desktop/Scripts/Auto/essai.txt')
Après.. je n'ai pas de machine UNIX sous la main pour tester.... -
non toujours rien, pourtant j'ai déjà utilisé dans commandes bash dans du php sans soucis, mais avec le bouton, rien n'y fait ! j'ai essayé un<?php
shell_exec('echo "bli" >> ~/Desktop/Scripts/Auto/esaaaaaai.txt); ?>
Qui devrait faire la commande mais qui ne la fait pas, j'ai donc changé les droits à 755 mais toujours pas
-
-
ModérateurBonjour,
J'ai déplacé ta question dans le forum PHP ... le forum disque dur.. n'étant surement pas le meilleur pour t'aider...
Ensuite.. j'ai édité ton message pour y ajouter les balises de code.
merci d'y penser à l'avenir.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code