Any way to override use of TEMP folder for Windows function 'tmpfile()'.

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

 



Hello all,

I have a strange problem request. 

I manage an FTP only server. This server is a Windows
2003 Advanced server. On it I run IIS 5.0 and PHP
4.3.2 for Win32. I am also using Windows
authentication. This is I think what is causing the
issue. This and the Windows function ?tmpfile()?.

I have a Web page that will allow certain users once
they connect on my network to perform a pass-thru FTP
to a remote system on the Internet. I did this because
my company does not allow direct FTP through the
firewall. So now I can control the users access to
certain hosts. From what I understand about PHP it
will perform the FTP task like say a directory listing
and write this to a temp file then PHP will build the
output based on the contents of the temp file.

Normally this works great. What I mean is for a user
that actually logs onto the server via the console or
Term services this works. But since the users are
actual account but not ever connecting via the console
their temp folder and various other environments under
their %USERPROFILE% are never created. To be even most
specific I have an admin level account that has a TEMP
environment variable defined as ?%USERPROFILE%/Local
Settings/Temp?. The ?%USERPROFILE%? variable is
usually something like ?C:\Documents and
Settings\<User name>\?. I have over 1800 accounts on
the server and most of these accounts need this
ability. I have tried setting the ENV variables TMP
and TEMP to point to another folder and can not figure
out how to override the ?tmpfile()?  

In an old version of PHP (4.3.0RC2) I actually
downloaded the complete source and built my own
php.exe. I then traced through to the section in
?ext/ftp.c? where the PHP function ?ftp_rawlist()? was
handled. Found that this function called another
function, ?ftp_genlist()?. It is inside this function
where the call was bring made to ?tmpfile()?. If the
call to ?tmpfile()? aborts and returns NULL. 

I put in logic to provide an override to this.
Basically, if the parameter ?FORCE_TMP_DIR? was
defined in the php.ini configuration file and the path
was valid the parser would use this as the temp folder
instead of the call to ?tmpfile()?. 

This seemed to work. Problem is being able to upgrade.
I know this is a MS issue and not particularly a PHP
problem or bug. 

I would like to see if anyone has more insight into
this issue or other suggestions. If not I would like
to get code modification into the general source
distribution. 

Paul

__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com

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


[Index of Archives]     [PHP Home]     [PHP Users]     [PHP Database Programming]     [PHP Install]     [Kernel Newbies]     [Yosemite Forum]     [PHP Books]

  Powered by Linux