ID: 9727
User Update by: [EMAIL PROTECTED]
Old-Status: Closed
Status: Open
Bug Type: Filesystem function related
Description: Unable to use @ in URL passwords with fopen()

Here's my exact code with only the username and password changed (oops - i sent a 
slightly altered version before, to change the server names/passwords).  This version 
has the following behaviour:

If I use a password containing only letters/numbers, I can open and read the file no 
problem.
If I use the same password, and specify a file that does not exist, I get a message 
saying 'file not found' and one saying 'file or directory does not exist'.

If I use a password containing the @ symbol, I get a message that says 'invalid file 
descriptor', no matter if the file exists or not.

Code:

$pword = 'password';
$server = "prefix";

$pword = urlencode($pword); 

echo $filename = 'ftp://username:' . $pword . "@$server.domain.com/path/file.txt";

$fd = fopen ($filename, "r");

echo $contents = fread ($fd, 100);


fclose ($fd);


Previous Comments:
---------------------------------------------------------------------------

[2001-03-13 22:54:48] [EMAIL PROTECTED]
There is one bug in your script:
.
.
$server = "servername";
.
.

echo $filename = 'ftp://username:'.$pword."@$servername/$filename";
.
.

You haven't got $servername set but $server.
Try changing that. Reopen if this wasn't the problem.

--Jani


---------------------------------------------------------------------------

[2001-03-13 18:21:51] [EMAIL PROTECTED]
I'm running 4.0.4pl1 on redhat 6.1.  I've tried (raw and regular) urlencoding my ftp 
password to use with fopen, but if there's a @ in it it says 'bad file descriptor'.  

I can open any file via ftp just fine, as long as there's no @ in the filename.  The 
'allow url fopen' (can't remember the exact name) is set to ON in my php.ini.  

Here's my script:


<html>
<body>
<? 

$pword = 'stuff@stuff';
$server = "servername";
$filename = "filename";

$pword = urlencode($pword); 

echo $filename = 'ftp://username:' . $pword . "@$servername/$filename";

$fd = fopen ($filename, "r");

echo $contents = fread ($fd, 100);

fclose ($fd);
?>
</body>
</html>


---------------------------------------------------------------------------


Full Bug description available at: http://bugs.php.net/?id=9727


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to