Citation :nicemen a écrit :
1 - Comment vérifier la validité des liens dans la base de données car si je compte sur les utilisateurs via le Rapport de lien brisé ça revient à croire au père Noël !
Tu peux essayer de faire un script qui fait une moulinette sur ta base de données pour vérifier que les sites répondent. J'ai fais un script tout con pour l'annuaire de notre site thesiteoueb.net qui permet de faire le ménage même si c'est fastidieux. Faut juste mettre le script en admin de mylinks par exemple. Par contre, quand le site répond pas, cela mouline un peu coté serveur
.
<?
include '../../../include/cp_header.php';
global $xoopsDB, $xoopsModule;
xoops_cp_header();
$limite = intval($_GET['limite']);
if (!isset($limite)) {
$limite = 0;
}
$result = $xoopsDB->query("select lid, cid, title, url from ".$xoopsDB->prefix("mylinks_links")." LIMIT ".$limite.",50 ");
while(list($lid, $cid, $title, $url) = $xoopsDB->fetchRow($result)) {
//echo "$lid, $cid, $title, $url";
$port = 80;
$timeout = 2;
$url = str_replace("http://","", $url);
$url = str_replace("https://","", $url);
$url = str_replace("/","", $url);
$url = urldecode( $url );
//$url_parsed = parse_url( $url );
$handle = @fsockopen( $url, $port, $errno, $errstr, $timeout );
if ( !$handle )
{
echo "<strong>$lid $title $url pas la <a href='".XOOPS_URL."/modules/mylinks/admin/index.php?lid=".$lid."&fct=mylinks&op=modLink' target='_blank'>MODIFIER</a></strong><br/>";
}
else
{
echo "$lid $title $url cela repond<br/>";
}
fclose( $handle );
}
echo "Page suivante:<br/>";
$limite = $limite + 50;
echo "<a href='".XOOPS_URL."/modules/mylinks/admin/testurl.php?limite=".$limite."'>50 liens suivant</a>";
xoops_cp_footer();
?>
Citation :nicemen a écrit :
2 - Lors de la soumission des liens j'ai pas de vérification pour savoir si le lien est déjà existant dans la base de données.
Merci !
Pour cela dans le submit.php dans le début du fchier tu peux ajouter une vérification de l'url, genre :
$urltester = $_POST["url"];
//echo $urltester;
$result4 = $xoopsDB->query("SELECT COUNT(*) FROM ".$xoopsDB->prefix("mylinks_links")." WHERE url LIKE '%$urltester%' ");
list($numrows) = $xoopsDB->fetchRow($result4);
//echo $numrows;
//break;
if ($numrows>0) {
$eh->show("1026");
}
Le code erreur 1026 est a ajouté dans /class/module.errorhandler.php
"1026" => "votre site est déjà présent dans notre annuaire.",
Dernière chose : Ceux qui me connaissent savent que je code avec 2 mains gauche donc à adapter voir à améliorer, mais c'est une piste ou plutôt 2 pistes.