Einstellungsproblem in der php.ini ????
-
- Posts: 22
- Joined: 2004-06-06 14:16
Einstellungsproblem in der php.ini ????
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.
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.
-
- Posts: 2223
- Joined: 2002-07-28 13:02
- Location: Berlin
Re: Einstellungsproblem in der php.ini ????
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.
Jetzt ist noch die Frage, warum die HTTP-Anfrage fehlschlägt, die allerdings entzieht sich meiner Kenntnis.
flo.
-
- Posts: 22
- Joined: 2004-06-06 14:16
Re: Einstellungsproblem in der php.ini ????
ja aber warum geht das gleiche Script dann auf einen nicht Root Server!
-
- Posts: 2223
- Joined: 2002-07-28 13:02
- Location: Berlin
Re: Einstellungsproblem in der php.ini ????
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.
- 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.
-
- Posts: 22
- Joined: 2004-06-06 14:16
Re: Einstellungsproblem in der php.ini ????
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;
}
}
}
?>
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;
}
}
}
?>
-
- Posts: 2223
- Joined: 2002-07-28 13:02
- Location: Berlin
Re: Einstellungsproblem in der php.ini ????
Das liegt am Script - kann es sein, daß der neue Server PHP5 hat?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"; <...>
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.
-
- Posts: 22
- Joined: 2004-06-06 14:16
Re: Einstellungsproblem in der php.ini ????
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)
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)
-
- Posts: 22
- Joined: 2004-06-06 14:16
Re: Einstellungsproblem in der php.ini ????
so in var/log kommt in der warn nichts wenn ich das Script ausführe!
in var/log/apache2 error_log kommt auch nix :-(
in var/log/apache2 error_log kommt auch nix :-(
-
- Posts: 150
- Joined: 2004-12-15 16:48
Re: Einstellungsproblem in der php.ini ????
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);
-
- Posts: 22
- Joined: 2004-06-06 14:16
Re: Einstellungsproblem in der php.ini ????
beim Rootserver On
beim Paket auch auf on
beim Scriptanbieter auch auf on
beim Paket auch auf on
beim Scriptanbieter auch auf on
-
- Posts: 22
- Joined: 2004-06-06 14:16
Re: Einstellungsproblem in der php.ini ????
beim Rootserver On
beim Paket auch auf on
beim Scriptanbieter auch auf on
beim Paket auch auf on
beim Scriptanbieter auch auf on
-
- Posts: 2223
- Joined: 2002-07-28 13:02
- Location: Berlin
Re: Einstellungsproblem in der php.ini ????
Laß Dir bitte die URL anzeigen und probiere die mal aus - kommt da auch ein 403er-Fehler liegts an den URL-Daten.
flo.
flo.
-
- Posts: 25
- Joined: 2002-08-14 17:44
- Location: Berlin
Re: Einstellungsproblem in der php.ini ????
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
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