/ / Comment utiliser exec shell avec PHP et MySQL? - php, mysql, shell

Comment utiliser exec shell avec PHP et MySQL? - php, mysql, shell

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 № 1

Mais ne remplissez jamais les valeurs d'entrée directement dans une commande shell. Utilisez la fonction escapeshellarg():

$key = escapeshellarg($_POST["key"]);