Je veux utiliser un shell exec en code PHP en me connectant à une base de données. J’avais utilisé ce bloc de code mais cela ne fonctionnait pas! Je ne sais pas quel pourrait être le problème, c’est donc mon code:
if(isset($_POST["submit4"]))
{
$results = shell_exec("cat /var/log/apache2/access.log | grep" . $_POST["key"] . "| sed s/"^.*apache2"/""/g | sort | uniq -c | sort -nr | cat ");
echo $results ;
}
else if(isset($_POST["submit5"]))
{
mysql_connect("127.0.0.1","root"," ") or die("erreur de connexion au serveur");
mysql_select_db("lastnline");
$sql="Select * from motclef";
$res=mysql_query($sql);
while($row=mysql_fetch_array($res))
{
$results = shell_exec("cat /var/log/apache2/access.log | grep" . $row["nom"] . "| sed s/"^.*apache2"/""/g | sort | uniq -c | sort -nr | cat ");
echo $results ;
}
}
Le submit4 fonctionne très bien mais le submit5 ne fonctionne pas: /
Réponses:
1 pour la réponse № 1Mais ne remplissez jamais les valeurs d'entrée directement dans une commande shell. Utilisez la fonction escapeshellarg()
:
$key = escapeshellarg($_POST["key"]);