2017-04-12 1 views
-1

Je suis sur Raspberry Pi et j'utilise un serveur Apache. Le code PHP va exécuter le script python si id dans l'url est pair. Le script python fonctionne parfaitement lorsqu'il est en dehors du bloc if-else. Mais lorsqu'il est placé dans le bloc if-else, il ne fonctionne pas.Impossible d'exécuter un script python à partir de php dans une instruction if-else

<?php  
$id = intval($_GET["id"]); 
echo $id."\n"; 

if($id%2==0) 
echo "Even"; 
$op=shell_exec("python /home/pi/hi.py"); 
echo $op; 
else 
echo "Odd"; 
?> 

Je suis nouveau sur php et je n'arrive pas à comprendre le problème.

+1

Vous aurez également besoin de crochets pour votre if/else parce que vous avez plusieurs instructions après le if. –

+0

Oh merci. Manqué la chose la plus simple. –

Répondre

1

else est en fait une erreur de syntaxe dans ce cas. Sans accolades autour des déclarations après if, PHP attend une déclaration à suivre. Puisqu'il y en a plus d'un, le else est inattendu lorsqu'il est atteint. L'ajout des accolades devrait résoudre le problème.

if ($id%2==0) { 
    echo "Even"; 
    $op=shell_exec("python /home/pi/hi.py"); 
    echo $op; 
} else { 
    echo "Odd"; 
} 

En général, je pense qu'il est une bonne idée juste toujours utiliser les accolades, même si vous avez une seule déclaration. De cette façon, lorsque vous ajoutez plus d'instructions plus tard, vous ne rencontrerez pas ce problème.