"Ethan Rosenberg, PhD" wrote: > > > 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 > Non-zero return value indicates an error; touch failed and as a result there is no file to chmod, hence chmod also failed. > 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 /var/www is only writeable by the user ethan -- Cheers David Robley INTERLACE: To tie two boots together. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php