ID: 34671
Comment by: louis at steelbytes dot com
Reported By: wf at bitplan dot com
Status: No Feedback
Bug Type: Program Execution
Operating System: win32 only
PHP Version: 5.2.6
Assigned To: pajoye
New Comment:
broken in 5.2.6
tested 5.3.0alpha2, and now works.
simply used
system('"fr" "ed"');
with procmon from sysinternals to see what is executed.
5.2.6 shows
cmd.exe /c "fr" "ed"
5.3.0alpha2 shows
cmd.exe /c ""fr" "ed""
Previous Comments:
------------------------------------------------------------------------
[2008-08-26 01:00:00] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
------------------------------------------------------------------------
[2008-08-18 08:05:45] [EMAIL PROTECTED]
Please try using this CVS snapshot:
http://snaps.php.net/php5.3-latest.tar.gz
For Windows (zip):
http://snaps.php.net/win32/php5.3-win32-latest.zip
For Windows (installer):
http://snaps.php.net/win32/php5.3-win32-installer-latest.msi
(The Zip version)
------------------------------------------------------------------------
[2008-05-30 10:13:41] [EMAIL PROTECTED]
[11:11] <Pierre> RichardQ, assign these bugs to me and I will dispatch
them if necessary
------------------------------------------------------------------------
[2005-09-28 15:10:25] wf at bitplan dot com
it's not a PHP but a cmd.exe problem:
""C:/Programme/MySQL/MySQL Server 4.1/bin/mysql.exe" --user=smartrqm
--password=6y-app% --database=smartRQM --execute="status""
works. This is due to the way cmd /c works which is obviously used
internally. See cmd /help on how cmd.exe handles quotes
------------------------------------------------------------------------
[2005-09-28 14:39:10] wf at bitplan dot com
Description:
------------
in the code below
$cmd='"C:/Programme/MySQL/MySQL Server 4.1/bin/mysql.exe"
--execute=status';
works, but
$cmd='"C:/Programme/MySQL/MySQL Server 4.1/bin/mysql.exe"
--execute="status"';
does not. The error message is:
failed with return-code: 1
Der Befehl "C:/Programme/MySQL/MySQL" ist entweder falsch geschrieben
oder konnte nicht gefunden werden.
This is very strange, since running the command in a cmd box in Windows
works in both cases.
Reproduce code:
---------------
$_output=array();
$cmd='"C:/Programme/MySQL/MySQL Server 4.1/bin/mysql.exe"
--execute="status"';
exec($cmd,$_output,$_retval);
if ($_retval==0) {
echo 'and done !<br />';
} else {
echo " failed with return-code: ".$_retval;
foreach($_output as $_outputline){
echo("$_outputline<br />");
}
Expected result:
----------------
exec should work in both cases
Actual result:
--------------
failed with return-code: 1
Der Befehl "C:/Programme/MySQL/MySQL" ist entweder falsch geschrieben
oder konnte nicht gefunden werden.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=34671&edit=1