Einstellungsproblem in der php.ini ????

Apache, Lighttpd, nginx, Cherokee
thomasf
Posts: 22
Joined: 2004-06-06 14:16
 

Einstellungsproblem in der php.ini ????

Post 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.
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

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

Post 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.
thomasf
Posts: 22
Joined: 2004-06-06 14:16
 

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

Post by thomasf »

ja aber warum geht das gleiche Script dann auf einen nicht Root Server!
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

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

Post 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.
thomasf
Posts: 22
Joined: 2004-06-06 14:16
 

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

Post 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;
}
}


}
?>
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

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

Post 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.
thomasf
Posts: 22
Joined: 2004-06-06 14:16
 

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

Post 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)
thomasf
Posts: 22
Joined: 2004-06-06 14:16
 

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

Post 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 :-(
dotme
Posts: 150
Joined: 2004-12-15 16:48
 

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

Post 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);
thomasf
Posts: 22
Joined: 2004-06-06 14:16
 

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

Post by thomasf »

beim Rootserver On

beim Paket auch auf on


beim Scriptanbieter auch auf on
thomasf
Posts: 22
Joined: 2004-06-06 14:16
 

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

Post by thomasf »

beim Rootserver On

beim Paket auch auf on


beim Scriptanbieter auch auf on
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

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

Post 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.
neffe
Posts: 25
Joined: 2002-08-14 17:44
Location: Berlin
 

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

Post 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