Re: mail() & getenv() problems (after 4.1.2 update)...
| From: | Paul | Date: | Fri, 08 Mar 2002 11:59:42 +0000 |
| Subject: | Re: mail() & getenv() problems (after 4.1.2 update)... | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-87755@lists.php.net to get a copy of this message | ||
Keith, can you tell me if you're also having the same issue with getenv() as
I am? I am glad it's not just me experiencing this issue, as no-none
replied I was beginning to wonder!
Paul
"Keith Waters" <keithwaters@hotmail.com> wrote in message
news:20020308093015.94625.qmail@pb1.pair.com...
> I'm having the same problem -
>
> I've been using the mail() command for quite some time now and it's been
> working 100% and executing immediately.
>
> Suddenly, this morning, it is taking about 60 seconds to send mail,
delaying
> the display of the php web page by that same amount of time.
>
> I have checked the mail server and sending mail from the command prompt
> (linux) and there is no delay there.
>
> Does anybody have any clue? I even momentarily downgraded to 4.1.0 to make
> sure it wasnt a bug in 4.1.2
>
>
> "Paul" <paul.mullett@nlightn.co.uk> wrote in message
> news:20020307193747.99520.qmail@pb1.pair.com...
> > Can nobody help? This is so frustrating. I cannot see what's wrong,
open
> > to ANY suggestions!
> >
> > Thanks.
> >
> > Paul
> > "Paul" <paul.mullett@nlightn.co.uk> wrote in message
> > news:20020307093630.99527.qmail@pb1.pair.com...
> > > Hello,
> > >
> > > I wonder if anyone can help me with a problem I have. I have some
sites
> > > hosted on a Cobalt Raq4 server (not sure if this is relevant). I
> recently
> > > upgraded PHP from a package at www.pkgmaster.com, and since making
this
> > > upgrade I have problems with PHP that I cannot find the solution to.
> > >
> > > I have conacted their 'team' who have thus far offered no explanation,
> > > saying it must be something else causing these issues with PHP, but I
> > > haven't made any more changes, just installed the new PHP version.
> > >
> > > The problems are with the mail() function taking an AGE to excecute,
and
> > > environmental HTTP header information not being sent/recieved by
> getenv().
> > >
> > > Some examples follow..
> > >
> > > For example, as an extremely basic example of the mail function going
> > slow,
> > > this simple script:
> > > <?
> > > mail("paul.mullett@clicktolearn.co.uk", "Test subject",
> > > "Test
message");
> > > print "finished!";
> > > ?>
> > >
> > > Which can be found at
> > > http://www.clicktolearn.co.uk/test/mail.php in
> > action,
> > > ran (as it should do) extremely fast the week before I made the
upgrade
> > from
> > > the packages. Now, as you will see, it runs dog slow.
> > >
> > > Secondly, the following script shows the lack of headers:
> > > http://www.clicktolearn.co.uk/test/ (click the link,
> > > so there's a
> referer
> > > to the script page)...
> > >
> > > <?
> > > function get_http_headers($url, $proto="HTTP/1.0", $timeout=10) {
> > > $return = false;
> > > if (substr($url,0,7)=="http://") {
> > > $url = substr($url,7);
> > > }
> > >
> > > $parts = parse_url("http://".$url);
> > >
> > > $ips = gethostbynamel($parts["host"]);
> > >
> > > if ($ips[0]) {
> > > $ip = $ips[0];
> > > $host = $parts["host"];
> > > $path = ($parts["path"]) ? $parts["path"] :
> > > "/";
> > > $port = ($parts["port"]) ? $parts["port"] : 80;
> > >
> > > $start = time();
> > > $timeout = $timeout + $start;
> > >
> > > if($sock = fsockopen($host, $port)) {
> > > set_socket_blocking($sock, 0);
> > > switch($proto) {
> > > case "HTTP/1.1":
> > > set_socket_blocking($sock, 1);
> > > fputs($sock, sprintf("HEAD %s
> > %s\n",
> > > $path, $proto));
> > > fputs($sock, sprintf("Host:
> > %s\n\n",
> > > $host));
> > > break;
> > > default:
> > > fputs($sock, sprintf("HEAD %s
> > > %s\n\n", $path, $proto));
> > > }
> > >
> > > while(!feof($sock) && $t<$timeout) {
> > > $line .= fgets($sock,1);
> > > $t = time();
> > > }
> > > fclose($sock);
> > > $end = time();
> > >
> > > if ($t>=$timeout) {
> > > $http = parse_output($line);
> > > $http["result"] = 502;
> > > $http["message"] = "Timed Out";
> > > $http["time_used"] = $end - $start;
> > > $return = $http;
> > > } elseif($line) {
> > > $http = parse_output($line);
> > > $http["time_used"] = $end - $start;
> > > $return = $http;
> > > }
> > > }
> > > }
> > > return $return;
> > > }
> > >
> > > function parse_output($line) {
> > > $lines = explode("\n", $line);
> > > if(substr($lines[0],0,4)=="HTTP") {
> > > list($http["protocol"], $http["result"],
> > > $http["message"]) =
> > > split("[[:space:]]+",$lines[0],3);
> > > } else if(substr($lines[0],0,7)=="Server:") {
> > > $http["server"] = substr($lines[0],8);
> > > }
> > > for ($i=1; $i<count($lines); $i++) {
> > > list($key, $val) = split(":[[:space:]]*",
$lines[$i],2);
> > > $key = strtolower(trim($key));
> > > if ($key) {
> > > $http[$key] = trim($val);
> > > } else {
> > > break;
> > > }
> > > }
> > > return($http);
> > > };
> > > var_dump(getallheaders());
> > > print "<br><br>";
> > >
> >
>
var_dump(get_http_headers('http://www.clicktolearn.co.uk/test/testheaders.ph
> > > p'));
> > > print "<br><br>";
> > > print $HTTP_REFERER;
> > > print "<br><br>";
> > > print "<a href='Javascript:
> > > history.back();'>Back</a>";
> > > print "<br><br>";
> > > var_dump(getenv($HTTP_REFERER));
> > > ?>
> > >
> > > Under the "Back" link is the output of:
var_dump(getenv($HTTP_REFERER));
> > > Now I know that this was working before the upgrade, as a log in
script
> I
> > > use on the main site uses getenv($HTTP_REFERER) to send them back to
> where
> > > they came from. This again worked 100% fine before PHP upgrade.
> > >
> > > Sorry to take up your time, but there is a problem somewhere that has
> > > certainly only begun with PHP since I upgraded to 4.1.2, and I dont
know
> > > what it could be!?
> > >
> > > Thanks in advance.
> > >
> > > Paul Mullett
> > >
> > >
> > >
> >
> >
>
>