Ergebnis 1 bis 10 von 10

Thema: Pagerank-Anzeige

  1. #1
    Samurai Avatar von Donkey
    Registriert seit
    12.08.2008
    Ort
    München
    Alter
    35
    Beiträge
    237
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Pagerank-Anzeige

    Hallo!

    So langsam werd ich verrückt.
    Ich versuche jetzt schon seit Stunden eine Pagerank-Anzeige auf meine Seite zu basteln, aber das will einfach nich....

    Mal gehts mal nicht - local (xampp) gehts immer.

    Also ich hab nen Wenkatalog auf meiner Seite mit PR-Anzeige - die funzt wunderbar: z.B. hier: http://werbehalle.de/webkatalog/index.php?c=34

    Der Katalog verwendet diese Script für den Pagerank
    PHP-Code:
    <?php
    define 
    ('GOOGLE_MAGIC'0xE6359A60);

       
    //This class should work on most servers
       
    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;
        }

       function 
    xor32($a$b)
       {
          return 
    int32($a) ^ int32($b);
       }

       
    //return least significant 32 bits
       //works by telling unserialize to create an integer even though we provide a double value
       
    function int32($x)
       {
          return 
    unserialize ("i:$x;");
          
    //return intval($x); // This line doesn't work on all servers.
       
    }

       function 
    mix($a,$b,$c)
       {
          
    $a -= $b$a -= $c$a xor32($a,zeroFill($c,13));
          
    $b -= $c$b -= $a$b xor32($b,$a<<8);
          
    $c -= $a$c -= $b$c xor32($c,zeroFill($b,13));
          
    $a -= $b$a -= $c$a xor32($a,zeroFill($c,12));
          
    $b -= $c$b -= $a$b xor32($b,$a<<16);
          
    $c -= $a$c -= $b$c xor32($c,zeroFill($b,5));
          
    $a -= $b$a -= $c$a xor32($a,zeroFill($c,3));
          
    $b -= $c$b -= $a$b xor32($b,$a<<10);
          
    $c -= $a$c -= $b$c xor32($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)
         {
             case 
    11$c+=($url[$k+10]<<24);
             case 
    10$c+=($url[$k+9]<<16);
             case 
    $c+=($url[$k+8]<<8);
             
    /* the first byte of c is reserved for the length */
             
    case $b+=($url[$k+7]<<24);
             case 
    $b+=($url[$k+6]<<16);
             case 
    $b+=($url[$k+5]<<8);
             case 
    $b+=($url[$k+4]);
             case 
    $a+=($url[$k+3]<<24);
             case 
    $a+=($url[$k+2]<<16);
             case 
    $a+=($url[$k+1]<<8);
             case 
    $a+=($url[$k+0]);
          }
          
    $mix mix($a,$b,$c);
          
    /* 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;
       }

       
    //returns -1 if no page rank was found
       
    function get_page_rank($url)
       {
            
    $ch "6".GoogleCH(strord("info:" $url));

            
    $pagerank = -1;
            
    $fp = @ fsockopen ("www.google.com"80$errno$errstr10);
            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);

                while (!
    feof ($fp))
                {
                    
    $data = @ fgets ($fp128);
                    
    $pos  strpos ($data"Rank_");

                    if (
    $pos !== false)
                    {
                      
    $pagerank trim (substr ($data$pos 9));
                    }
                }
                @ 
    fclose ($fp);
            }
            return 
    $pagerank;
        }
    ?>
    Wenn ich dieses Script ohne den Katalog verwende funzt es nur auf XAMPP

    Wiso?

    Gibt ja noch mehr so ähnliche Scripte - da is der gleiche Mist

    Also ich kann jetzt nicht wirklich sagen wiso das im Katolog funzt - durch das Smarty-Gewäsch steig ich nich so ganz durch.

    Aber die ganzen anderen Scripte funzen ja auch nicht.

    Hat einer ne Idee?

    Gruß, Donkey
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Pagerank-Anzeige

    Nimm aus der Funktion "get_page_rank" die ganzen "@"-Zeichen raus, schraube das error_reporting hoch, und du wirst es, denk ich, sehen.

  3. #3
    Samurai
    Themenstarter
    Avatar von Donkey
    Registriert seit
    12.08.2008
    Ort
    München
    Alter
    35
    Beiträge
    237
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Pagerank-Anzeige

    meinst Du das?
    PHP-Code:
     error_reporting(E_ALL);
     
    ini_set("display_errors"1); 
    Da wird aber nichts angezeigt.

  4. #4
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Pagerank-Anzeige

    und nu noch die @-Zeichen rausnehmen.
    Evtl. würd ich noch das hier vor die Return-angabe setzen, um zu sehen, was da zurück kommt:
    PHP-Code:
    echo $pagerank

  5. #5
    Samurai
    Themenstarter
    Avatar von Donkey
    Registriert seit
    12.08.2008
    Ort
    München
    Alter
    35
    Beiträge
    237
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Pagerank-Anzeige

    also ich hab das jetzt so:

    pr.php
    PHP-Code:
    <?php
    define 
    ('GOOGLE_MAGIC'0xE6359A60);

       
    //This class should work on most servers
       
    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;
        }

       function 
    xor32($a$b)
       {
          return 
    int32($a) ^ int32($b);
       }

       
    //return least significant 32 bits
       //works by telling unserialize to create an integer even though we provide a double value
       
    function int32($x)
       {
          return 
    unserialize ("i:$x;");
          
    //return intval($x); // This line doesn't work on all servers.
       
    }

       function 
    mix($a,$b,$c)
       {
          
    $a -= $b$a -= $c$a xor32($a,zeroFill($c,13));
          
    $b -= $c$b -= $a$b xor32($b,$a<<8);
          
    $c -= $a$c -= $b$c xor32($c,zeroFill($b,13));
          
    $a -= $b$a -= $c$a xor32($a,zeroFill($c,12));
          
    $b -= $c$b -= $a$b xor32($b,$a<<16);
          
    $c -= $a$c -= $b$c xor32($c,zeroFill($b,5));
          
    $a -= $b$a -= $c$a xor32($a,zeroFill($c,3));
          
    $b -= $c$b -= $a$b xor32($b,$a<<10);
          
    $c -= $a$c -= $b$c xor32($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)
         {
             case 
    11$c+=($url[$k+10]<<24);
             case 
    10$c+=($url[$k+9]<<16);
             case 
    $c+=($url[$k+8]<<8);
             
    /* the first byte of c is reserved for the length */
             
    case $b+=($url[$k+7]<<24);
             case 
    $b+=($url[$k+6]<<16);
             case 
    $b+=($url[$k+5]<<8);
             case 
    $b+=($url[$k+4]);
             case 
    $a+=($url[$k+3]<<24);
             case 
    $a+=($url[$k+2]<<16);
             case 
    $a+=($url[$k+1]<<8);
             case 
    $a+=($url[$k+0]);
          }
          
    $mix mix($a,$b,$c);
          
    /* 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;
       }

       
    //returns -1 if no page rank was found
       
    function get_page_rank($url)
       {
            
    $ch "6".GoogleCH(strord("info:" $url));

            
    $pagerank = -1;
            
    $fp fsockopen ("www.google.com"80$errno$errstr10);
            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);

                while (!
    feof ($fp))
                {
                    
    $data fgets ($fp128);
                    
    $pos  strpos ($data"Rank_");

                    if (
    $pos !== false)
                    {
                      
    $pagerank trim (substr ($data$pos 9));
                    }
                }
                
    fclose ($fp);
            }
            echo 
    $pagerank;
            return 
    $pagerank;
        }
        
    ?>

    index.php
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    ini_set("display_errors"1);

    include (
    'pr.php');
    echo 
    get_page_rank('http://werbehalle.de');
    ?>
    Die angegebene Seite hat Pagerank 2

    Angezeigt wird jetzt: -1-1

  6. #6
    Forum Guru
    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beiträge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Pagerank-Anzeige

    -1 kommt, weil in der Funktion get_page_rank() am Anfang der Standardwert einfach mal auf -1 gesetzt wird. Das heisst also, dass die Funktion den Wert nicht richtig holen konnte. Zweimal ausgegeben wird es, weil du am Ende der Funktion ein echo $pagerank; machst - und dann in der index.php nochmal.

    Geh mal die Funktion get_page_rank() durch und lass dir Schritt für Schritt alle wichtigen Variablen ausgeben, und schau mal wann das Script versagt. Debugging nennt sich das.

  7. #7
    Bandit
    Gast

    Standard AW: Pagerank-Anzeige

    Ergänzung zu dem Beitrag von phore:

    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

  8. #8
    Samurai
    Themenstarter
    Avatar von Donkey
    Registriert seit
    12.08.2008
    Ort
    München
    Alter
    35
    Beiträge
    237
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Pagerank-Anzeige

    Nun grundsätzlich funktioniert das Script ja einwandfrei.

    Aber eben nur auf XAMPP, also Lokal oder in Verbindung mit diesem Webkatalog (wo dieses Script ja eigentlich dazu gehört) - auch auf dem Server

    So ist das aber auch bei allen anderen Scripts die man zu Thema Pagerank so findet.
    Auf dem eigenen Rechner gehts, auf dem Server nichtmehr - das is doch nich normal...

  9. #9
    Forum Guru
    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beiträge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Pagerank-Anzeige

    Falsch. Es funktioniert nicht aus irgendwelchen esoterischen Gründen einfach nicht auf dem Server, sondern, da ist etwas drin, was auf dem Server offenbar Fehler verursacht, bzw. das Script nicht richtig laufen kann. Also mach mal was bandit gepostet hat, und zwar erstmal in der funtion get_page_rank(). Ohne etwas Einsatz von dir selber löst sich das Problem nicht.

  10. #10
    Samurai
    Themenstarter
    Avatar von Donkey
    Registriert seit
    12.08.2008
    Ort
    München
    Alter
    35
    Beiträge
    237
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Pagerank-Anzeige

    Also ich hab das mit dem Debuggen jetzt mal zumindest versucht.

    Fehler konnt ich jetzt nicht wirklich feststellen - allerdings kenn ich mich bei dem Script auch nicht wirklich aus.

    Hab aber gelesen dass es auch an den Servereinstellungen liegen kann, wenn man eine URL mit fopen öffnen will (mir fällt jetzt grade der Name der Einstellung nichtmehr ein)
    Da muss man dann was in der php-ini verändern, aber auf die hab ich kein Zugriff.
    Geht das auch mit htaccess?

Ähnliche Themen

  1. Pagerank - Script (0,00 EUR)
    Von Pagerankforum24 im Forum Script-Archiv
    Antworten: 8
    Letzter Beitrag: 07.01.2009, 17:08
  2. homepage,pagerank
    Von viper3000 im Forum HTML & CSS Forum
    Antworten: 21
    Letzter Beitrag: 30.08.2008, 14:59
  3. Pagerank 4
    Von Gast im Forum HTML & CSS Forum
    Antworten: 15
    Letzter Beitrag: 30.04.2008, 18:40
  4. PageRank die II.
    Von estragon im Forum Promotion - SEO - Suchmaschine (Google & Co) – Mitarbeiter & Linkpartnersuche
    Antworten: 14
    Letzter Beitrag: 02.12.2007, 13:49
  5. Counter und Pagerank
    Von boa im Forum Link Tipps
    Antworten: 4
    Letzter Beitrag: 31.08.2005, 12:55

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •