ID:               26885
 Updated by:       [EMAIL PROTECTED]
 Reported By:      gholyoak at courtdean dot com
-Status:           Closed
+Status:           Bogus
 Bug Type:         Sockets related
 Operating System: w2k
 PHP Version:      4CVS-2004-01-12
 New Comment:

Not a PHP Bug.


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

[2004-01-20 04:42:12] gholyoak at courtdean dot com

Thanks for that.

I've already tried http/1.1 but as Im trying to emulate a browser, 1.1
has too many extra's that I dont want to code for.

I have been investigating this further and it seems to be an issue with
the firewall.

It would appear that the interactive web version, i.e from IIS is
identified to the firewall as originating from a local IP address (e.g.
localhost or 127.0.0.1) but the CLI version via a batch job is
identified to the firewall as the physical external IP address.

Im still puzzled as to why it started to work after a reboot and then
fail but Im guessing this is a firewall issue.

I will close this report now but thank you for all your assistance to
this point.

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

[2004-01-19 12:21:50] [EMAIL PROTECTED]

Try to use HTTP/1.1, because I think there is no 'Host' in HTTP 1.0.

Maybe the proxy corrects the headers...

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

[2004-01-14 05:12:36] gholyoak at courtdean dot com

I cannot understand why it works several times then fails.

It works fine on our DEV server which is behind a proxy server, but
fails on the LIV server that has no proxy but has a firewall (Ive
turned the firewall off, but still no joy).

There are no entries in the Event viewer to indicate any problem.

Im at a loss but will keep trying and let you know if I come up with
something.

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

[2004-01-13 05:09:13] [EMAIL PROTECTED]

I couldn't reproduce the bug with your code.

Hint: This one-liner works fine too:

$xml=file_get_contents("http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml";);

(no need for any fsockopen() stuff at all :)


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

[2004-01-12 12:13:29] gholyoak at courtdean dot com

I've created a vastly cut-down version of the script :-

<?php

$headers = "GET /stats/eurofxref/eurofxref-daily.xml
HTTP/1.0\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT
5.0)\r\nHost: www.ecb.int\r\nAccept: image/gif, image/x-xbitmap,
image/jpeg, image/pjpeg, */*\r\n\r\n";

$URI_PARTS = parse_url('http://www.ecb.int/');

$fp = @fsockopen($URI_PARTS['host'],80,$errno,$errstr,10);

if (!$fp){echo 'Cannot open socket';return;}

fwrite($fp,$headers,strlen($headers));
$results = '';
do {
        $_data = fread($fp, 500000);
        if (strlen($_data) == 0) {
                break;
        }
        $results .= $_data;
} while(true);

fclose($fp);

Mail('[EMAIL PROTECTED]','Data Retrieval results',$results);


echo strlen($results);

return;

?>


Dont forget to change the email address !!

To replicate the problem:

1. create a w2k .cmd file to call this script
2. Run the .cmd file as many time as you wish and you should get back
an XML doc.
3. create a scheduled task using the .cmd file and run it several
times.

You should notice that it works to start with and then fails but you
can still run the .cmd file interactively ?

Curious ??

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/26885

-- 
Edit this bug report at http://bugs.php.net/?id=26885&edit=1

Reply via email to