Hi, I've installed a PHP script on my site. It works fine, but when I add my site temple (in HTML code) around the script, the script still works, but it outputs an error message. You can see it at http://www.internetsuccesskey.com/prdisplay.php?url=http://www.example.com You can see just the script at http://www.internetsuccesskey.com/prdisplaytest.php?url=http%3A%2F%2Fwww.example.com Any suggestions? Adam
The link to see the script does not work, it only shows 8. post the srcipt here for prdisplay.php and pagerank.php
"8" is all it should show. Here's how the script works: Step 1: User inputs URL at http://www.internetsuccesskey.com/check-page-rank.html Step 2: Form action is rd2pr.php, which does the following: <? if ($_POST["url"]) { header("Location: http://www.internetsuccesskey.com/prdisplay.php?url=" . urlencode($_POST["url"]) ); error_log("Redirected search query to /prdisplay.php?url = " . $_POST["url"]); die(); } ?> Code (markup): You are then at prdisplay.php, where the problem is rearing its head. prdisplay.php is actually an include: <?php include('pagerank.php') ?> Code (markup): The actually PageRank scrip is in the pagerank.php file, but it is working fine: <?php /* This code is released unto the public domain */ header("Content-Type: text/plain; charset=utf-8"); define('GOOGLE_MAGIC', 0xE6359A60); //unsigned shift right function zeroFill($a, $b) { $z = hexdec(80000000); //echo $z; if ($z & $a) { $a = ($a>>1); $a &= (~$z); $a |= 0x40000000; $a = ($a>>($b-1)); } else { $a = ($a>>$b); } return $a; } function mix($a,$b,$c) { $a -= $b; $a -= $c; $a ^= (zeroFill($c,13)); $b -= $c; $b -= $a; $b ^= ($a<<8); $c -= $a; $c -= $b; $c ^= (zeroFill($b,13)); $a -= $b; $a -= $c; $a ^= (zeroFill($c,12)); $b -= $c; $b -= $a; $b ^= ($a<<16); $c -= $a; $c -= $b; $c ^= (zeroFill($b,5)); $a -= $b; $a -= $c; $a ^= (zeroFill($c,3)); $b -= $c; $b -= $a; $b ^= ($a<<10); $c -= $a; $c -= $b; $c ^= (zeroFill($b,15)); return array($a,$b,$c); } function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) { if(is_null($length)) { $length = sizeof($url); } $a = $b = 0x9E3779B9; $c = $init; $k = 0; $len = $length; while($len >= 12) { $a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24)); $b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24)); $c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24)); $mix = mix($a,$b,$c); $a = $mix[0]; $b = $mix[1]; $c = $mix[2]; $k += 12; $len -= 12; } $c += $length; switch($len) /* all the case statements fall through */ { case 11: $c+=($url[$k+10]<<24); case 10: $c+=($url[$k+9]<<16); case 9 : $c+=($url[$k+8]<<8); /* the first byte of c is reserved for the length */ case 8 : $b+=($url[$k+7]<<24); case 7 : $b+=($url[$k+6]<<16); case 6 : $b+=($url[$k+5]<<8); case 5 : $b+=($url[$k+4]); case 4 : $a+=($url[$k+3]<<24); case 3 : $a+=($url[$k+2]<<16); case 2 : $a+=($url[$k+1]<<8); case 1 : $a+=($url[$k+0]); /* case 0: nothing left to add */ } $mix = mix($a,$b,$c); //echo $mix[0]; /*-------------------------------------------- report the result */ return $mix[2]; } //converts a string into an array of integers containing the numeric value of the char function strord($string) { for($i=0;$i<strlen($string);$i++) { $result[$i] = ord($string{$i}); } return $result; } // http://www.example.com/ - Checksum: 6540747202 $url = $_GET['url']; //print("url:\t{$_GET['url']}\n"); $ch = "6" . GoogleCH(strord("info:" . $url)); $fp = fsockopen("www.google.com", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "GET /search?client=navclient-auto&ch=". $ch . "&features=Rank&q=info:" . $url . " HTTP/1.1\r\n"; $out .= "Host: www.google.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); //$pagerank = substr(fgets($fp, 128), 4); //echo $pagerank; while (!feof($fp)) { $data = fgets($fp, 128); $pos = strpos($data, "Rank_"); if($pos === false){} else{ $pagerank = substr($data, $pos + 9); echo $pagerank; } } fclose($fp); } //echo "ch: 6".$ch; ?> Code (markup): All of that works fine, until I add the rest of the HTML code to prdispay.php, like such: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>Check Your Google Page Rank with our Page Rank Tool</title> <meta name="keywords" content="check page rank, google page rank, page rank tool"> <meta content="Check Your Google Page Rank with our Page Rank Tool." name="description"></head> <body alink="#000099" bgcolor="#990000" link="#000099" text="#000000" vlink="#990099"> <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="750"> <tbody> <tr> <td valign="top"><img alt="Check Your Google Page Rank with our Page Rank Tool" src="images/header.gif" height="100" width="750"><br> <table border="0" cellpadding="5" cellspacing="0" width="100%"> <tbody> <tr> <td colspan="3" rowspan="1" valign="top"><b><small><font face="Helvetica, Arial, sans-serif">InternetSuccessKey.com: Check Your Google Page Rank with our Page Rank Tool!</font></small></b><br> </td> </tr> <tr> <td valign="top" width="150"><small><small><font face="Helvetica, Arial, sans-serif"><b>Internet Marketing Resources:</b><br><a href="seo.html"> Search Engine Optimization</a><br><a href="search_engine_marketing.html"> Search Engine Marketing</a><br><a href="email_marketing.html"> Email Marketing</a><br> <br> <b>Internet Business Resources:</b><br> <br> <b>Sponsored Links:</b><br> <a href="http://www.pharmacy-affiliate-programs.net/">Pharmacy Affiliate Programs</a> <br> <a href="http://www.militaryspot.com/loans.htm" target="_blank">Military Loans</a> <br> </font></small></small></td> <td valign="top" width="430"><small><font face="Helvetica, Arial, sans-serif">Want to know what your website's Page Rank is? Use our Page Rank tool to find out today!</font></small><br><br> <table align="left" border="0" cellpadding="2" cellspacing="2" width="100%"> <tbody> <tr> <td valign="top"> <!-- Begin RevenuePILOT.com JavaScript Include Code --> <!-- Copyright by Revenue Pilot, Inc. --> <br> </td> </tr> <tr> <td> <div align="center"><b><font face="Helvetica, Arial, sans-serif">Your Google Page Rank Is:</font><br> <FONT FACE="Arial" size="2"> <?php include('pagerank.php') ?> </FONT> <br> </b><div align="left"><font face="Helvetica, Arial, sans-serif"><small><br> <br> </small></font></div> </div> </td> </tr> </tbody></table> </td> <td valign="top" width="160"> <!-- Begin RevenuePILOT.com HTML Mode --> <!-- Copyright by Revenue Pilot, Inc. --> <br> </td> </tr> </tbody> </table> <div align="center"><small><font face="Helvetica, Arial, sans-serif">Never pay for marketing advice or tools! We offer all of the <a href="http://www.internetsuccesskey.com">free internet marketing tools</a> and advice you need!</font><br> <a href="directory">Links</a> | <a href="powerlinks.php">Powerlinks</a></small><br> </div> </td> </tr> </tbody> </table> <br> <br> </body></html> Code (markup): The script functions fine by itself. How could the HTML code be messing the script up???
found your problem. Look at your pagerank.php on line 9 and then rd2pr.php line 4. We have a case of dual headers being called. Try removing header("Content-Type: text/plain; charset=utf-8"); from your script pagerank script and it should work as far as I can tell.