Re: exec and system do not work

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





Ethan Rosenberg, PhD
/Pres/CEO/
*Hygeia Biomedical Research, Inc*
2 Cameo Ridge Road
Monsey, NY 10952
T: 845 352-3908
F: 845 352-7566
erosenberg@xxxxxxxxxxxxxxxxxxxx

On 08/26/2013 07:33 PM, David Robley wrote:
Ethan Rosenberg wrote:


On 08/26/2013 11:36 AM, marco@xxxxxxxxxx wrote:


Tamara Temple <tamouse.lists@xxxxxxxxx> hat am 26. August 2013 um 08:33
geschrieben:



On Aug 25, 2013, at 10:41 PM, Ethan Rosenberg
<erosenberg@xxxxxxxxxxxxxxxxxxxx> wrote:

Dear List -

I'm lost on this one -

This works -

$out = system("ls -l ",$retvals);
printf("%s", $out);

This does -

echo exec("ls -l");

Please show the output of the directory listing.
Please us "ls -la"


This does not -

if( !file_exists("/var/www/orders.txt"));
{
     $out = system("touch /var/www/orders.txt", $ret);

Maybe you don't have write permissions on the folder?

     $out2 = system("chmod 766 /var/www/orders.txt", $ret);
     echo 'file2<br />';
     echo file_exists("/var/www/orders.txt");
}

and this does not -

if( !file_exists("/var/www/orders.txt"));
{
     exec("touch /var/www/orders.txt");
     exec("chmod 766 /var/www/orders.txt");
     echo 'file2<br />';
     echo file_exists("/var/www/orders.txt");
}

Ethan



When you say "does not work", can you show what is actually not working?
I believe the exec and system functions are likely working just fine,
but that the commands you've passed to them may not be.



--
Marco Behnke
Dipl. Informatiker (FH), SAE Audio Engineer Diploma
Zend Certified Engineer PHP 5.3

Tel.: 0174 / 9722336
e-Mail: marco@xxxxxxxxxx

Softwaretechnik Behnke
Heinrich-Heine-Str. 7D
21218 Seevetal

http://www.behnke.biz


Tamara -

  > Please show the output of the directory listing.
  > Please us "ls -la"

echo exec('ls -la orders.txt');

-rw-rw-rw- 1 ethan ethan 43 Aug 25 23:50 orders.txt


Maybe you don't have write permissions on the folder?

If I perform the touch and chmod from the command line, everything works.


  >> When you say "does not work", can you show what is actually not
working? I
  >> believe the exec and system functions are likely working just fine,
but that
  >> the commands you've passed to them may not be.

Here are my commands.

if( !file_exists("/var/www/orders.txt"));
{
echo system("touch /var/www/orders.txt", $ret);
echo system("chmod 766 /var/www/orders.txt", $ret);
echo 'file2<br />';
echo file_exists("/var/www/orders.txt");
}

If I now try a ls from the command line, the return is
   cannot access /var/www/orders.txt: No such file or directory

The ls -la  works because the file was created from the command line.

TIA

Ethan

Note that touch and chmod don't return any output, so echoing the result of
a system call for those commands will give an empty string.

You should be checking the values of $ret for each execution of system to
see whether the command was successful or not - the return status of the
executed command will be written to this variable. I'd guess that touch is
returning 13 - permission denied.

if( !file_exists("/var/www/orders.txt"))
{
   system("touch /var/www/orders.txt", $ret1);
   echo 'touch returned '.$ret1.'<br> /';
   system("chmod 766 /var/www/orders.txt", $ret2);
   echo 'chmod returned ' .$ret2.'<br> /';
   echo 'file2<br />';
echo file_exists("/var/www/orders.txt"); }

Check the permissions for directory /var/www; you'll probably find it is
writable by the user you log on as, but not by the user that apache/php runs
as, which is often www - a user with limited privileges.

As other(s) have pointed out, there are php functions to do what you want
without introducing the possible insecurities involved with system et al.


David -

touch returned 1
 /chmod returned 1

rosenberg:/var/www# ls orders.txt
ls: cannot access orders.txt: No such file or directory

rosenberg:/var# ls -ld www
drwxr-xr-x 37 ethan ethan 20480 Aug 26 20:15 www

TIA

Ethan

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php





[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux