web-dev-qa-db-fra.com

shell_exec () retournant null sur "ls"

J'ai donc ce code et j'essaie seulement de faire une liste des sauvegardes dans un autre répertoire où le script php est dans le dossier xampp et les sauvegardes sont vers ce chemin /root/files/saves:

<html>
<body>
<?php
$output = Shell_exec('ls /root/files/saves');
echo "<pre>$output</pre>";
?>
</body>
</html>

Je ne sais pas pourquoi je ne peux pas le faire fonctionner sur un var_dump il semble que la sortie soit nulle, je suis vraiment confuse que cela devrait fonctionner ou je me trompe, j'ai besoin d'aide.

25
Mokmeuh

Ajouter 2>&1 à la fin de votre commande Shell pour que STDERR soit renvoyé ainsi que STDOUT.

$output = Shell_exec("ls /root/files/saves 2>&1");

De plus, si l'utilisateur exécutant PHP ne dispose pas des autorisations suffisantes pour afficher la sortie dans /root/, le code ci-dessus renverra un Permission denied Message d'erreur.

Source: http://php.net/manual/en/function.Shell-exec.php#28994

71
Amal Murali