2017-08-07 17 views
1

ラジオボタンから自分のサーバー上でbashスクリプトを実行しようとしていて、ウェブページのボタンを送信しようとしています。 2つのラジオボタンがあり、それぞれ異なるbashスクリプト(test1.sh test2.sh)を実行します。ここに私がこれまで持っていたものがあります。HTMLフォームphpを使用してbashスクリプトを実行するラジオボタン。

WebページのHTML:

<form action="testexec.php" method="get"> 
<label class="col">Up/Down</label> 
<span class="col"> 
    <input type="radio" name="option" id="r1" value="1" /> 
    <label for="r1">Up</label> 
    <input type="radio" name="option" id="r2" value="2" /> 
    <label for="r2">Down</label> 
</span> 
<span class="col"> 
    <input type="submit" /> 
</span> 

test1.sh/test2.sh(/ var/www/htmlと設定/ testscripts)

#!/bin/bash 
touch /tmp/testfile 
ls -ltr /tmp 

testexec.php(同じディレクトリの私ウェブページ)

<?php 
$output = shell_exec("/var/www/html/testscript/test.sh"); 
header('Location: http://psat/moslehpour/dadt/main/systemTest.php? 
success=true'); 
echo "<pre>$output</pre>" 
?> 

送信ボタンをクリックすると、私のサーバー側には何も表示されません。また、何かが起こっていることを確認するにはどうすればいいですか、ウェブページにエコーしようとしましたが、何も表示されないようです。

+0

あなたの出力を見たい場合、あなたはまた、「オプション」の両方ご入力フィールドの名前 –

+0

リダイレクトを削除する必要があり、これはちょうど= 2オプションを送信します。オプションを[]に変更し、PHPスクリプト$ _GET [オプション] [0]、$ _GET [オプション] [1]を使用して値を取得するか、それらの名前をそのまま使用します。 –

+0

@MarouenMhiriオプションを設定するとoption1とoption2を使用すると、両方のラジオボタンを選択できます。ユーザーが1つのオプションだけを選択できるようにオプションを設定するにはどうすればよいですか? – kkmoslehpour

答えて

1

このようなものを試してみてください。

<form action="testexec.php" method="POST"> 
    <label class="col">Up/Down</label> 
    <span class="col"> 
    <input type="radio" name="option" id="r1" >test1 
    <label for="r1">Up</label> 
    <input type="radio" name="option" id="r2" >test2 
    <label for="r2">Down</label> 
</span> 
<span class="col"> 
<input type="submit" /> 

<?php 
//when the submit button is clicked 
if ($_SERVER['REQUEST_METHOD'] == 'POST'){ 

//name the radio 1 option1 
if(isset($_POST['option']) && $_POST['option'] == 'test1') 
{ $output = shell_exec("/var/www/html/testscript/test.sh");} 

//name the radio 2 option1 
if(isset($_POST['option']) && $_POST['option'] == 'test2') 
{ $output = shell_exec("/var/www/html/testscript/test.sh");} 

//remove this if you want to see $output in this file 
header('Location: http://psat/moslehpour/dadt/main/systemTest.php? 
success=true'); 

echo "<pre>$output</pre>" 
} 
?> 
+0

HTMLページでPOSTにメソッドを変更する必要はありますか? – kkmoslehpour

+0

また、POSTよりもGETを好むのはなぜですか? – kkmoslehpour

+0

@kkmoslehpour 1)投稿方法を変更する... –

関連する問題