2016-04-11 9 views
0

ここに私の電子機器クラスのためのサーバをホストするために使用している私のPHPスクリプトです。ボタンは単に異なるLEDを点灯させることになっています。 なぜ私のPHP関数は何もしませんか?

<!DOCTYPE html> 
<HTML> 
<BODY> 
    <CENTER> 
    <!-- Header --> 
    <H1>Raspberry Pi LED Contorl Utility</H1> 
    <body style="background-color: grey;"> 

    <!-- Configuring Pins --> 
    <?php 
    $pins = array(22,27,4,23,24,18,17); 
    $status = array(0,0,0,0,0,0,0); 

    //-----Decoration----- 
    for($i=0; $i<count($pins); $i++){ 
    $bcm = $pins[$i]; 
    system('gpio -g mode '.$bcm.' out'); 
    echo("<img id='LED_'.$bcm.'' src='/res/dots/LED_".$bcm.".png'/>"); 
    } ?> 

    <br> 
    <br> 
    <button type="submit" name="up" style="background-color:transparent; border-color:transparent;"> 
    <img src="res/buttons/up.png" height="40"/> 
     </button> 
    <br> 
    <button type="submit" name="left" style="background-color:transparent; border-color:transparent;"> 
    <img src="res/buttons/left.png" height="40"/> 
     </button> 
    <button type="submit" name="right" style="background-color:transparent; border-color:transparent;"> 
    <img src="res/buttons/right.png" height="40"/> 
     </button> 
    <br> 
    <button type="submit" name="down" style="background-color:transparent; border-color:transparent;"> 
    <img src="res/buttons/down.png" height="40"/> 
     </button> 

<?php 
$bcm = 27; 
system('gpio -g write '.$bcm.' 1'); 
if(isset($_POST["up"])){$bcm=move($bcm,1);} 
if(isset($_POST["down"])){$bcm=move($bcm,3);} 
if(isset($_POST["left"])){$bcm=move($bcm,2);} 
if(isset($_POST["right"])){$bcm=move($bcm,0);} 
?> 

</CENTER> 
</BODY> 

<?php 
function move($pin,$dir){ 
if($pin==22 AND $dir==3){ 
    system('gpio -g write 27 1'); 
    system('gpio -g write 22 0'); 
    $pin = 27; 
}elseif($pin==27 AND $dir==3){ 
    system('gpio -g write 4 1'); 
    system('gpio -g write 27 0'); 
    $pin = 4; 
}elseif($pin==27 AND $dir==1){ 
    system('gpio -g write 22 1'); 
    system('gpio -g write 27 0'); 
    $pin = 4; 
}elseif($pin==27 AND $dir==0){ 
    system('gpio -g write 23 1'); 
    system('gpio -g write 18 1'); 
    system('gpio -g write 27 0'); 
    $pin = 23; 
}elseif($pin==4 AND $dir==1){ 
    system('gpio -g write 27 1'); 
    system('gpio -g write 4 0'); 
    $pin = 27; 
}elseif($pin==23 AND $dir==0){ 
    system('gpio -g write 17 1'); 
    system('gpio -g write 23 0'); 
    system('gpio -g write 18 0'); 
    $pin = 17; 
}elseif($pin==23 AND $dir==2){ 
    system('gpio -g write 27 1'); 
    system('gpio -g write 23 0'); 
    system('gpio -g write 18 0'); 
    $pin = 27; 
}elseif($pin==17 AND $dir==2){ 
    system('gpio -g write 23 1'); 
    system('gpio -g write 18 1'); 
    system('gpio -g write 17 0'); 
    $pin = 23; 
} 
return $pin; 
} ?> 

は、彼らは大丈夫です、インデントエラーを心配しないでください、ここでのフォーマットは、単に迷惑されています。私はprintステートメントと関数にあらゆる種類のものを追加しようとしましたが、何も現れません。ライトはまったく変化しませんが、関数が呼び出されていないように見えます。 move関数が問題の関数です。

+0

POSTメソッドでフォームタグがありません。そのため、動作しません。 –

+0

@ Fred-ii-これはどういう意味ですか? – Anonymous

+1

'

...
'の中にボタンをラップしても動作します。 –

答えて

-1

ボタンは送信タイプですが、フォームにはありません。ボタンをフォームに入れます <form> ---- </form>

+0

最近CRESTを使用していますか?これがあなたに戻ってくれることを望みましょう;-) –

+0

それだけですか?モードを 'POST'に指定する必要はありますか? – Anonymous

+0

@jphollowedは私がすでに言ったことではない?ああ、そうだよ。実際の構文をそこに追加した。 –

関連する問題