Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comportement si system() desactivee

1 réponse
Avatar
Mihamina Rakotomandimby
Bonjour,
Soit un hébergemnt mutualisé qui ne dispose pas d'accès SSH.
Juste PHP/MySQL et FTP
J'ai besoin de faire un mysqldump de ma base.

Pour ça, je fais:
<?
print "debut \n";
system("mysqldump -h localhost -u xxxxxxxx \
-p 741852 le_nom_de_la_base > dump.sql");
print "fin";
?>

Le fichier dump.sql est bien créé mais sa taille est de 0.
Si je le rapatrie par FTP, alors il ne contient rien, c'est un fichier vide.
J'ai aussi essayé exec(), mêmes resultats.

Si system() ou exec() sont désactivés, comment est censé se comporte le
script?
Mais alors pourquoi dump.sql a été "touch"-é?

--
Huile Essentielle de Camphre http://www.huile-camphre.fr
Infogerance http://www.infogerance.us
(Serveurs, Postes de travail, Développement logiciel)

1 réponse

Avatar
Thierry B\.
--{ Mihamina Rakotomandimby a plopé ceci: }--

<?
print "debut n";
system("mysqldump -h localhost -u xxxxxxxx
-p 741852 le_nom_de_la_base > dump.sql");
print "fin";
?>

Si system() ou exec() sont désactivés, comment est censé se comporte le
script?


Un message d'erreur de l'iterpréteur PHP ?

Mais alors pourquoi dump.sql a été "touch"-é?


A cause du ">": le shell qui va faire tourner la commande commence
par créer le fichier dump.sql, puis attend que mysqldump écrive sur
sa sortie standard pour recopier le baratin dans ce fichier...
On peut donc supposer que mysqldump aborte, ou n'est même pas
exécuté:

:/tmp$ ls -l toto
ls: toto: No such file or directory
:/tmp$ foobarquux > toto
-bash: foobarquux: command not found
:/tmp$ ls -l toto
-rw-r--r-- 1 tth tth 0 Mar 20 01:55 toto


--
Bah, oui, ça les occupe, genre bac-à-sable...
Ah mince, voilà que je me parle à moi-même ?

Fait gaffe, ça s'est vu, yen a qui ont remarqué.

-+- TB in GFA : le tonton s'autoquotera 3 fois -+-