Can nobody help? This is so frustrating. I cannot see what's wrong, open to ANY suggestions!
Thanks. Paul "Paul" <[EMAIL PROTECTED]> wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > 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("[EMAIL PROTECTED]", "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 > > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php