Not sure if this a php error - can someone confirm it?
Peter Arremann
loony at loonybin.org
Tue May 23 12:33:04 UTC 2006
On Tuesday 23 May 2006 08:10, PFJ wrote:
> Hi,
>
> I have the following in a php file
>
> $filenames = array("fred.pdf", "sid.pdf", "harry.pdf", "wibble.pdf");
> for ($i = 0; $i < count($filenames); ++$i)
> {
> $command='/usr/bin/zip -9 '.$prog.'.zip ".$filenames[$i];
> exec($command);
> }
Why ++$i not $i++?
> $prog is just a name.
>
> If I set $prog to be getcwd()."foo", then no zip file is created.
> Infact, I can set $prog to anything and nothing is created - with one
> exception, $prog="/tmp/foo" - this will create the zip file in tmp, but
> I can't then do anything with it as the permissions say it belongs to
> apache:apache (copy () won't work, neither will cp or mv).
apache:apache - that means most likely you run it through the webserver...
does your apache user have permissions to write to getcwd()."foo" ? most
likely not, that's why no file was created. If you want to stay with
executing a system command, try doing so in a popen, that way you can read
back the output (including the erorr message why the file wasn't created). If
its just for debugging, passthru() will work too. At least check the return
code of exec.
Also, if you're not looking at moving this over to a windows box, you should
use zlib or bzip2 - both of which have nice well defined php interfaces and
don't require you to exec out.
> I cannot chown the file via php either (chown ('/tmp/foo.zip',
> 'paul:paul');)
Pretty basic security. look at the man page of chown and the php manual under
safe_mode.
Peter.
More information about the fedora-test-list
mailing list