Fork me on GitHub

Rapport de message :*
 

Re: Ajout de fonction Module myLinks

Titre du sujet : Re: Ajout de fonction Module myLinks
par babouille sur 25/02/2017 20:46:29

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.
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

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