Page 1 of 1

Einstellungsproblem in der php.ini ????

Posted: 2006-09-15 04:38
by thomasf
Ich habe ein Problem bei meinem Root Server von 1&1 der will keine Pagerankabfrage zulassen! Hat da jemand eine Idee??
Das Script funktioniert auf einem normalem Bisness Paket ohne Probleme nur eben bei unserem Rootserver spinnt es rum.
Hier mal meine Fehlermeldung vom Script:

failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /home/httpd/vhosts/testdomain.de/httpdocs/admin_pr/pr_update.php on line 151

Warning: fgets(): supplied argument is not a valid stream resource in /home/httpd/vhosts/testdomain.de/httpdocs/admin_pr/pr_update.php on line 152

Warning: fclose(): supplied argument is not a valid stream resource in /home/httpd/vhosts/testdomain.de/httpdocs/admin_pr/pr_update.php on line 155

woran kann das liegen??? Am Script kann es nicht liegen weil es ja auf dem Billigpaket ohne Probleme funktioniert. Der Hersteller ist der Meinung das es ein Problem mit den Servereinstellungen ist. Kann mir aber nix genaues sagen.

Re: Einstellungsproblem in der php.ini ????

Posted: 2006-09-15 07:33
by flo
Liegt schon am Script - Du holst Dir ja etwas per HTTP ... das resultiert in einem 403er-Fehler. Also eigentlich kein Grund, fgets und fclose auszuführen, das sind Folgefehler. Mit einer Fehlerabfrage könnte man zumindest das Symptom umgehen.

Jetzt ist noch die Frage, warum die HTTP-Anfrage fehlschlägt, die allerdings entzieht sich meiner Kenntnis.

flo.

Re: Einstellungsproblem in der php.ini ????

Posted: 2006-09-15 07:59
by thomasf
ja aber warum geht das gleiche Script dann auf einen nicht Root Server!

Re: Einstellungsproblem in der php.ini ????

Posted: 2006-09-15 08:05
by flo
Nachdem Du uns nicht an dieser hochgeheimen Anfrage teilhaben lässt, und Dir anscheinend das Ding aber auch nicht selber ansehen und debuggen möchtest, ein paar Ansätze:

- Anfrage richtig übernommen?
- Authentifizierung?
- Referercheck?
- IP-Check?

Das andere wäre noch, ob Namensauflösung passt, ob Du mit fopen eine HTTP-Verbindng öffnen darfst usw. Läßt sich alles testen.

flo.

Re: Einstellungsproblem in der php.ini ????

Posted: 2006-09-15 08:31
by thomasf
morgen flo,

Sorry es handelt sich hier um eine Pagerank Abfrage bei Google.

Die beiden php.ini Dateien habe ich schon im anderem Thread veröffentlicht ich kann hier gerne mal das Script reinstellen.

Die PHP Datei prtest.php

<?php
require("url.class.php");
$URL = new URL();

echo "PR: ".$URL->getPR("www.heise.de")."<br><br>";
?>

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

und das Hauptscript (der wichtige Teil den Rest habe ich weggelassen! Es handelt sich hier um das vereinfachte Script was nichts mehr mit der obigen Fehlermeldung zu tun hat das Ergebnis ist aber das gleiche Anzeige im Root nein im Buisness Paket ja)

/*************************************************
**** Google Pagerank
*************************************************/

function ZeroFill($a,$b){
$z=hexdec(80000000);
if($z&$a){
$a=($a>>1);
$a&=(~$z);
$a|=0x40000000;
$a=($a>>($b-1));
}else{
$a=($a>>$b);
}
return $a;
}

//define('GOOGLE_MAGIC',0xE6359A60);

function Mix($a,$b,$c){
$a-=$b;$a-=$c;$a^=($this->ZeroFill($c,13));
$b-=$c;$b-=$a;$b^=($a<<8);
$c-=$a;$c-=$b;$c^=($this->ZeroFill($b,13));
$a-=$b;$a-=$c;$a^=($this->ZeroFill($c,12));
$b-=$c;$b-=$a;$b^=($a<<16);
$c-=$a;$c-=$b;$c^=($this->ZeroFill($b,5));
$a-=$b;$a-=$c;$a^=($this->ZeroFill($c,3));
$b-=$c;$b-=$a;$b^=($a<<10);
$c-=$a;$c-=$b;$c^=($this->ZeroFill($b,15));
return array($a,$b,$c);
}

function GoogleCH($url,$length=null,$init=0xE6359A60){
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=$this->Mix($a,$b,$c);
$a=$mix[0];$b=$mix[1];$c=$mix[2];
$k+=12;
$len-=12;
}
$c+=$length;
switch($len){
case 11:$c+=($url[$k+10]<<24);
case 10:$c+=($url[$k+9]<<16);
case 9:$c+=($url[$k+8]<<8);
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]);
}
$mix=$this->Mix($a,$b,$c);
return $mix[2];
}

function StringOrder($string){
for($i=0;$i<strlen($string);$i++){$result[$i]=ord($string{$i});}
return $result;
}

function getPR($url)
{
$server="toolbarqueries.google.com";

$url = "info:"."$url";
$ch = trim(str_replace("-","",sprintf("6%un",$this->GoogleCH($this->StringOrder($url)))));
$res = "http://$server/search?client=navclient-auto&ch=$ch&features=Rank&q=$url";
$data = @fopen("$res",r);
if ($data) {
while ($line = fgets($data,1024)) {
if (substr($line,0,7) == "Rank_1:") {$rankline = $line;}
}
fclose($data);
$pagerank = trim(substr($rankline,9,2));
if ($pagerank=="") {$pagerank="0";}
return (int)$pagerank;
} else {
return 0;
}
}


}
?>

Re: Einstellungsproblem in der php.ini ????

Posted: 2006-09-15 08:50
by flo
ThomasF wrote:

Code: Select all


<...>
  		$url = "info:"."$url";
		$ch = trim(str_replace("-","",sprintf("6%un",$this->GoogleCH($this->StringOrder($url)))));
  		$res = "http://$server/search?client=navclient-auto&ch=$ch&features=Rank&q=$url";
<...>
Das liegt am Script - kann es sein, daß der neue Server PHP5 hat?

Code: Select all

<...>
  		$url = "info:"."$url";
/*		$ch1 = trim(str_replace("-","",sprintf("6%un",$this->GoogleCH($this->StringOrder($url)))));
		echo $ch; */
		$ch = trim(str_replace("-","",sprintf("6%un",$these->GoogleCH($these->StringOrder($url)))));
		echo $ch;
  		$res = "http://$server/search?client=navclient-auto&ch=$ch&features=Rank&q=$url";
<...>

Im Log müsstest Du dann Fehlermeldungen finden - irgendetwas mit "Object not in Class View" - wenn es daran liegt.

flo.

Re: Einstellungsproblem in der php.ini ????

Posted: 2006-09-15 12:52
by thomasf
Das fuktionierende Web Paket hat PHP 4.4.4 (da geht es)

Der Root Server hat PHP 4.3.10 (da geht es nicht)

Der Server vom Scripthersteller hat 5.1.2 (da geht es)

Auf dem Root Server habe ich Plesk (leider)

Re: Einstellungsproblem in der php.ini ????

Posted: 2006-09-15 13:49
by thomasf
so in var/log kommt in der warn nichts wenn ich das Script ausführe!

in var/log/apache2 error_log kommt auch nix :-(

Re: Einstellungsproblem in der php.ini ????

Posted: 2006-09-15 13:57
by dotme
Vergleiche mal die Einstellung von 'allow_url_fopen' wg.

Code: Select all

res = "http://$server/search?client=navclient-auto&ch=$ch&features=Rank&q=$url";
$data = @fopen("$res",r);

Re: Einstellungsproblem in der php.ini ????

Posted: 2006-09-15 14:04
by thomasf
beim Rootserver On

beim Paket auch auf on


beim Scriptanbieter auch auf on

Re: Einstellungsproblem in der php.ini ????

Posted: 2006-09-15 14:13
by thomasf
beim Rootserver On

beim Paket auch auf on


beim Scriptanbieter auch auf on

Re: Einstellungsproblem in der php.ini ????

Posted: 2006-09-15 16:22
by flo
Laß Dir bitte die URL anzeigen und probiere die mal aus - kommt da auch ein 403er-Fehler liegts an den URL-Daten.

flo.

Re: Einstellungsproblem in der php.ini ????

Posted: 2006-09-15 23:58
by neffe
Hallo,

mach mal vom Root server ein wget auf die Google URL, ich wette der liefert `ne 403 zurück.

Google hat einige IP Netzbereiche gesperrt, die Server IP wird da drinnen liegen.

Gruß Neffe