PHP 4.0 Bug #8999: difference ftp_fget() cgi and module
| From: | rolf dot lehmann at datura dot ch | Date: | Tue, 30 Jan 2001 12:16:07 +0000 |
| Subject: | PHP 4.0 Bug #8999: difference ftp_fget() cgi and module | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-45372@lists.php.net to get a copy of this message | ||
From: rolf.lehmann@datura.ch
Operating system: Windows
PHP version: 4.0.4pl1
PHP Bug Type: FTP related
Bug description: difference ftp_fget() cgi and module
Until now I was using PHP4 in CGI-Mode. Now I want to change to Apache Module. So I made the
nessecary changes in httpd.conf and rebotted the Windows 2000 server.
Since PHP is running as an Apache Module, the function ftp_fget() doesn't work correctly
anymore.
I read a jpg from a FTP Server and display it with the <img> tag. In Module Mode the file is
transferred and the width and height is correct, but the content is wrong (wrong colors in the
completely wrong places). When PHP is running in cgi mode, everything is correct.
Thanks for any help, Rolf.
Code Sample:
class Foto_class
{
var $fotoname;
function Foto_class( $verwender )
{
global $const_ftp_host, $const_ftp_user, $const_ftp_passwd, $const_ftp_dir;
$select_file = "foto.jpg";
$ftp = ftp_connect( $const_ftp_host );
if ( $ftp )
{
ftp_login( $ftp, $const_ftp_user, urldecode( $const_ftp_passwd ) );
}
if ( $const_ftp_dir == "" )
{
$const_ftp_dir = FTP_DIRROOT;
}
$const_ftp_dir = $const_ftp_dir . FTP_DIRROOT . $verwender;
if ( ( ! $ftp ) || ( ! @ftp_chdir( $ftp, $const_ftp_dir ) ) )
{
@ftp_quit( $ftp );
}
else
{
srand( ( double ) microtime() * 1000000 );
$randval = rand();
$tmpfile = $select_file . "." . $randval;
$showfile = $this->filename( $tmpfile );
$fp = fopen( $showfile, "w" );
if ( ! @ftp_fget( $ftp, $fp, $select_file, FTP_BINARY ) )
{
ftp_quit( $ftp );
}
else
{
ftp_quit( $ftp );
$this->fotoname = $showfile;
}
@fclose( $fp );
}
}
function filename($f_name)
{
$dir = "./temp/sess_".session_id();
if (!file_exists($dir)) mkdir($dir,0700);
return $dir."/".$f_name;
}
function out()
{
return $this->fotoname;
}
}
--
Edit Bug report at: http://bugs.php.net/?id=8999&edit=1