Fork me on GitHub






WF-Links et Pagerank
Admin Frxoops
Inscrit: 16/03/2009 16:40
De Tende (06)
Messages: 3528
Bonjour,

J'ai installé WF-Links 1.07 avec XOOPS 2.0.18

Mon soucis est que la barre Pagerank reste blanche et donne comme résultat (/10) au lieu de (2/10) par exemple.

Vous pouvez le constater ici :

http://anuchesugo.123.fr/modules/wfli ... php?selectdate=1237244986

Que puis-je faire pour régler ce bug?

Posté le : 18/03/2009 00:12
Partager Twitter Partagez cette article sur GG+
Re: WF-Links et Pagerank
Admin Frxoops
Inscrit: 16/03/2009 16:40
De Tende (06)
Messages: 3528
Le script utilisé est dans functions.php

// Start functions for Google PageRank
// Source: http://www.sws-tech.com/scripts/googlepagerank.php
// This code is released under the public domain
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=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 = 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;
}

function pagerank($url) {
$pagerank = '';
$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);

while (!feof($fp)) {
$data = fgets($fp, 128);
$pos = strpos($data, "Rank_");
if($pos === false){} else{
$pagerank = substr($data, $pos + 9);
}
}
fclose($fp);
}
return $pagerank;
}
// End functions for Google PageRank

Il y a-t'il une erreur de script ou autre chose?
Quel script mettre à la place?

EDIT : mon hébergeur n'a pas la fonction CURL. Existe-t'il un moyen de contourner ce problème sans changer d'hébergeur?

Posté le : 18/03/2009 14:33
Partager Twitter Partagez cette article sur GG+
Re: WF-Links et Pagerank
Xoops accro
Inscrit: 20/02/2008 20:27
De Belgium
Messages: 2708
Votre script n'utilise pas le curl (une example de curl est ici), mais fsockopen et fwrite et fgets. Je ne sais pas que vous avez assez des droits pour ca. Peut-etre oui, parceque il n'y pas d'erreur pour l'open.
Essayez avec:
$data fgets($fp128);
echo 
'['.$data.']';
pour voir la reponse de Google.

Posté le : 18/03/2009 15:27

Salutations, Gerard.
PS: Excusez mon mauvais français.
De la bonne manière de poser les questions
Partager Twitter Partagez cette article sur GG+
Re: WF-Links et Pagerank
Admin Frxoops
Inscrit: 16/03/2009 16:40
De Tende (06)
Messages: 3528
Merci pour votre réponse :)

Je ne sais pas si j'ai fais ce qu'il faut mais la réponse que je vois est :

[]

Posté le : 18/03/2009 18:12
Partager Twitter Partagez cette article sur GG+
Re: WF-Links et Pagerank
Xoops accro
Inscrit: 20/02/2008 20:27
De Belgium
Messages: 2708
Humm, pas beaucoup d'info.
Et avec l'ajoute un peu plus haut de:
echo '['.$out.']';
fwrite($fp$out);

Posté le : 18/03/2009 19:45

Salutations, Gerard.
PS: Excusez mon mauvais français.
De la bonne manière de poser les questions
Partager Twitter Partagez cette article sur GG+
Re: WF-Links et Pagerank
Admin Frxoops
Inscrit: 16/03/2009 16:40
De Tende (06)
Messages: 3528
Cela donne :

[][]

Si je met le script en entier j'ai une page d'erreur HTTP 500.

J'ai essayé un autre script et ça me donne pareil.

Le script que j'ai essayé :

http://www.electronika.fr/blog/?p=49

Si tous ces scripts ne fonctionnent pas, est ce que c'est à cause de mon hébergeur?

Existe-t'il une autre solution?

Posté le : 18/03/2009 23:02
Partager Twitter Partagez cette article sur GG+
Re: WF-Links et Pagerank
Xoops accro
Inscrit: 20/02/2008 20:27
De Belgium
Messages: 2708
Citation :
Cela donne :
[][]
Si je met le script en entier j'ai une page d'erreur HTTP 500.
Comment en entier?
La fonction modifiee doit ce regardee comme ceci:
function pagerank($url) {
$pagerank '';
$ch "6" GoogleCH(strord("info:" $url));
$fp fsockopen("www.google.com"80$errno$errstr30);
if (!
$fp) {
echo 
"$errstr ($errno)<br />n";
} else {
$out "GET /search?client=navclient-auto&ch="$ch "&features=Rank&q=info:" $url " HTTP/1.1rn";
$out .= "Host: www.google.comrn";
$out .= "Connection: Closernrn";

echo 
'['.$out.']';
fwrite($fp$out);

while (!
feof($fp)) {
$data fgets($fp128);
echo 
'['.$data.']';
$pos strpos($data"Rank_");
if(
$pos === false){} else{
$pagerank substr($data$pos 9);
}
}
fclose($fp);
}
return 
$pagerank;
}
// End functions for Google PageRank


Neanmoins que vous avez dites que curl ne pas disponible, il y a ici une script basee sur curl.

Posté le : 19/03/2009 00:44

Salutations, Gerard.
PS: Excusez mon mauvais français.
De la bonne manière de poser les questions
Partager Twitter Partagez cette article sur GG+
Re: WF-Links et Pagerank
Admin Frxoops
Inscrit: 16/03/2009 16:40
De Tende (06)
Messages: 3528
Toujours pareil, j'ai une page blanche.

Je vous remercie pour votre aide mais il n'y a apparement pas de solutions à moins de changer d'hébergeur.

Posté le : 19/03/2009 01:23
Partager Twitter Partagez cette article sur GG+
Re: WF-Links et Pagerank
Régulier
Inscrit: 04/02/2003 17:27
Messages: 438
bonjour a tous,

moi je me permet de relancer la discution pque je suis sur un dédié et j'ai le meme probleme, j'ai essayer les modifs de Ghia mais rien, meme page blanche donc si qqu'un sais comment remédier au probleme je suis preneur

merci

Posté le : 26/01/2010 01:31
Partager Twitter Partagez cette article sur GG+
Re: WF-Links et Pagerank
Semi pro
Inscrit: 10/11/2004 13:40
Messages: 1659
Attention : Avant toutes modifications effectuées, toujours faire une sauvegarde des fichiers à modifier.

J'ai cherché et essayé plusieurs modifications trouvées par ci par là mais sans résultat.

finalement , j'ai peut être trouvé une solution
SOURCE : http://www.eiodal.com/php-extraire-pagerank-page

1 - téléchargez les class , dézippez les et placez les dans le répertoire
modules/wflinks/class/

2 - dans le fichier
modules/wflinks/include/linkloadinfo.php

Remplacez
// Get Google Pagerank
if (isset( $xoopsModuleConfig['showpagerank'] ) && $xoopsModuleConfig['showpagerank'] == ) {
  
$link['pagerank'] = pagerank($link['url']);
}


Par
// Get Google Pagerank
if (isset( $xoopsModuleConfig['showpagerank'] ) && $xoopsModuleConfig['showpagerank'] == ) {
  
//$link['pagerank'] = pagerank($link['url']);
  
require_once XOOPS_ROOT_PATH '/modules/wflinks/class/cacher.class.php';
  require_once 
XOOPS_ROOT_PATH '/modules/wflinks/class/google_pagerank.class.php';
  
$rankObject = new GooglePageRank($link['url'], 0);
  
$link['pagerank'] = $rankObject->pagerank;
}

Posté le : 26/01/2010 11:03

PS : Toujours faire une sauvegarde des fichiers avant de les modifier !
-------------------------------------------
http://www.aideordi.com
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

66 Personne(s) en ligne (51 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 66 | Plus ...