[PHP] Exec weigert, cli doet het wel

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 08:51

Gonadan

Admin Beeld & Geluid, Harde Waren
Topicstarter
Ik voel mij erg dom maar ik kom er niet uit.
Ik wil via een klik in m'n website een dump van m'n database maken.
Hiervoor gebruik ik (vereenvoudigd) de volgende code:
PHP:
1
2
3
exec("\"h:/program files/xampp/mysql/bin/mysqldump.exe\" --user=root --add-drop-table > \"h:/test.sql\"", $output, $status);
print_r($output);
echo "<br />" . $status . "<br />";

Als ik de regel rechtstreeks in de CLI plak dan werkt hij prima, maar via PHP wil het niet. :?
$output is leeg en $status geeft 1 (false dus).
Safe mode staat uit dus daar ligt het ook niet aan.
Als ik andere programma's opstart (notepad.exe bijvoorbeeld) dan werkt het ook prima.

Ik heb een heleboel topics gevonden maar geen bracht mij de oplossing.
Ik hoop jullie wel ;)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • QBiT
  • Registratie: September 2001
  • Laatst online: 23:21
Misschien de pad verwijzing aanpassen naar zoiets:

$cmd = 'C:\\path\\to\\program\\argue2.exe';

Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 08:51

Gonadan

Admin Beeld & Geluid, Harde Waren
Topicstarter
QBiT schreef op woensdag 17 mei 2006 @ 12:43:
Misschien de pad verwijzing aanpassen naar zoiets:

$cmd = 'C:\\path\\to\\program\\argue2.exe';
Heb ik ook al geprobeerd :'(

[ Voor 4% gewijzigd door Gonadan op 17-05-2006 12:44 ]

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • Glaanie
  • Registratie: Juni 2002
  • Laatst online: 21:52

Glaanie

Medewerker Product Content

All your spec are belong to us

Waarschijnlijk omdat je de output van het mysqldump opdracht dumpt in het test.sql bestand (door middel van het > tekentje), in plaats van te tonen op het 'scherm' (let op de quotes), waardoor exec niets teruggeeft en in ieder geval $output leeg is en waarschijnlijk daarom een false aangeeft.

Acties:
  • 0 Henk 'm!

  • hamsteg
  • Registratie: Mei 2003
  • Laatst online: 06-07 19:58

hamsteg

Species 5618

De grootste kans is dat je rechten voor het msqdump programma niet kloppen. Vaak heb je daar als apache/php user geen rechten op.

Heb je al wat gemakkelijkers geprobeerd in PHP?
exec("echo \"Hoi\"", $output, $retVal);

Als bovenstaande werkt dan weet ik zeker dat je foute rechten heb voor mysqldump.

Eventueel: kijk even met phpinfo() of er toch niet ergens rechten zijn onthouden.

[ Voor 4% gewijzigd door hamsteg op 17-05-2006 12:52 ]

Politiek overgevoelig: complexiteit en gevoeligheid van politieke onderwerpen, waarbij het de kunst is een constructieve dialoog te voeren. Censuur door overgevoeligheid: gedrag waarbij bepaalde content wordt geredigeerd uit angst voor offensief te zijn.


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 08:51

Gonadan

Admin Beeld & Geluid, Harde Waren
Topicstarter
Glaanieboy schreef op woensdag 17 mei 2006 @ 12:47:
Waarschijnlijk omdat je de output van het mysqldump opdracht dumpt in het test.sql bestand (door middel van het > tekentje), in plaats van te tonen op het 'scherm' (let op de quotes), waardoor exec niets teruggeeft en in ieder geval $output leeg is en waarschijnlijk daarom een false aangeeft.
Dan zou hij geen false terug mogen geven, want het uitvoeren is dan gelukt, toch :?

Dat hoi werkt wel, ik heb als het goed is gewoon alle rechten :)

[ Voor 9% gewijzigd door Gonadan op 17-05-2006 12:50 ]

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • hamsteg
  • Registratie: Mei 2003
  • Laatst online: 06-07 19:58

hamsteg

Species 5618

Voor Linux weet ik dat dat niet kan werken ... jij lijkt windows te gebruikten dus daar zou je een grotere kans kunnen hebben dat het wel wekt. Wat is je omgeving?

exec eens een "Dir" (multi line output).

Politiek overgevoelig: complexiteit en gevoeligheid van politieke onderwerpen, waarbij het de kunst is een constructieve dialoog te voeren. Censuur door overgevoeligheid: gedrag waarbij bepaalde content wordt geredigeerd uit angst voor offensief te zijn.


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 08:51

Gonadan

Admin Beeld & Geluid, Harde Waren
Topicstarter
hamsteggot schreef op woensdag 17 mei 2006 @ 12:54:
Voor Linux weet ik dat dat niet kan werken ... jij lijkt windows te gebruikten dus daar zou je een grotere kans kunnen hebben dat het wel wekt. Wat is je omgeving?

exec eens een "Dir" (multi line output).
Win2k idd, sorry was ik vergeten te melden. :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 08:51

Gonadan

Admin Beeld & Geluid, Harde Waren
Topicstarter
Opgelost :D

In een vlaag van verstandsverbijstering probeerde ik dit:
PHP:
1
2
$line = ..jeweetwel...;
exec("\"" . $line . "\"", $output, $status);

En dat werkt gewoon :+

In ieder geval bedankt allemaal :) _/-\o_

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • hamsteg
  • Registratie: Mei 2003
  • Laatst online: 06-07 19:58

hamsteg

Species 5618

edit: overbodig, oplossing gevonden

h: werkt niet onder linux :*)

Goed, gaan we stapje verder (alles uit het hoofd dus wel even goed kijken):

exec("echo \"Hoi\">phpexectest.tmp", $outpur, $retVal);
Doe eens een dir van deze file, je krijgt geen output in $output. Daarna mag je hem weggooien.

exec("echo \"Hoi\">c:/phpexectest.tmp", $outpur, $retVal);
Ook hier een dir

exec("echo \"Hoi\">h:/program files/xampp/mysql/bin/phpexectest.tmp", $outpur, $retVal);
Ook hier een dir

[ Voor 14% gewijzigd door hamsteg op 17-05-2006 13:05 ]

Politiek overgevoelig: complexiteit en gevoeligheid van politieke onderwerpen, waarbij het de kunst is een constructieve dialoog te voeren. Censuur door overgevoeligheid: gedrag waarbij bepaalde content wordt geredigeerd uit angst voor offensief te zijn.


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 08:51

Gonadan

Admin Beeld & Geluid, Harde Waren
Topicstarter
hamsteggot schreef op woensdag 17 mei 2006 @ 13:04:
edit: overbodig, oplossing gevonden
*knip*
Evengoed bedankt :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8

Pagina: 1