Question sur le Script du TOP 10 de MyPHPannuaire

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par tryan, 26 Octobre 2007.

  1. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    Bonjour

    J'essaye d'intégrer le code du top 10 de MyPHPannuaire ( https://www.webrankinfo.com/forum/t/script-add-on-categorizator-by-m-f-euso.38662/ ) directement dans le code de l'annuaire (sans passer par le fichier partenaire.php) de façon à proposer un lien comptabilisant les meilleurs référents.
    L'url de départ est celle ci : -http://mon-site.com/partenaires.php?url=http://le-site.fr
    L'url modifié est celle la:-http://mon-site.com/categorie-du-site.html?url=http://le-site.fr

    Je ne parviens pas à intégrer le code du fichier partenaires.php directement dans mon fichier index.php ou autre sans provoquer d'erreurs ...(en gros je ne sais pas comment modifier ce code ni ou l'intégrer)!
    Le code du fichier:
    Code:
    <?php
    include("data_bd_annuaire.php"); //variables de l'annuaire
    include("functions.php"); //fonctions de l'annuaire
    
    $lk = connection_BD();
    function gpc_secure($chaine, $is_int = false) 
    { 
       $chaine = ( is_int($chaine) || $is_int ) ? intval($chaine) : mysql_real_escape_string( stripslashes( htmlspecialchars( trim($chaine) ) ) ); 
       return $chaine; 
    }
    $url = ( isset($_GET['url']) ) ? gpc_secure($_GET['url']) : '';
    if($url == '')
    	exit;
    
    $delai_clic = 24*3600; //delai avant qu'un nouveau clic ne soit recomptabiliser (24*3600 = 24h)	
    $tab_id = array();
    if (isset($_COOKIE["goto_myphpannuaire"]))
    	$tab_id = explode("#",$_COOKIE["goto_myphpannuaire"]);	
    	
    //creation des requetes pour l'annuaire
    $sql_upd = "UPDATE $T_sites SET nb_clic_ext = nb_clic_ext+1 WHERE url = '$url' ";
    //si on a pas encore visiter le site
    if (!isset($_COOKIE["goto_myphpannuaire"]) || !is_in_array($id,$tab_id))
    {
    	//envoi de la requete pour comptabiliser le clic 
    	$upd = send_sql($sql_upd,"utiliser le compteur de clics (annuaire)");
    	//creation (ou modifications) du cookie
    	$cookie = isset($_COOKIE["goto_myphpannuaire"]) ? $_COOKIE["goto_myphpannuaire"] : '';
    	setcookie("goto_myphpannuaire",$cookie."#".$id,time()+$delai_clic,"/");	
    }
    //fermeture de la connexion
    mysql_close($lk);
    
    	header("Location: http://www.votresite.com");
    	exit;
    ?>
    Un gros coup de main serait le bienvenue.
    Merci
     
  2. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    Pas de réponse.. :(
     
  3. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    salut Tryan,

    quels sont les message d'erreurs renvoyés ?

    as tu pensé a adapter les includes ?
     
  4. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    Salut zeb :D

    Je n'ai pas noté les messages d'erreur ... en gros, soit mon site ne s'affiche plus soit le compteur n'ai pas incrémenté. Le dernier teste en date sur mon fichier index est celui ci :
    Code:
    <?php
    
    
    include("data_bd_annuaire.php"); //variables de l'annuaire
    include("functions.php"); //fonctions de l'annuaire
    //////////////////////////////////////////////////////////////////
    $url = ( isset($_GET['url']) ) ? gpc_secure($_GET['url']) : '';
    if($url != ''){
    
    
    $lk = connection_BD();
    function gpc_secure($chaine, $is_int = false) 
    { 
       $chaine = ( is_int($chaine) || $is_int ) ? intval($chaine) : mysql_real_escape_string( stripslashes( htmlspecialchars( trim($chaine) ) ) ); 
       return $chaine; 
    }
    
    
    
    $delai_clic = 1*30; //delai avant qu'un nouveau clic ne soit recomptabiliser (1*30= 30 secondes)	
    $tab_id = array();
    if (isset($_COOKIE["goto_myphpannuaire"]))
    	$tab_id = explode("#",$_COOKIE["goto_myphpannuaire"]);	
    	
    //creation des requetes pour l'annuaire
    $sql_upd = "UPDATE $T_sites SET nb_clic_ext = nb_clic_ext+1 WHERE url = '$url' ";
    //si on a pas encore visiter le site
    if (!isset($_COOKIE["goto_myphpannuaire"]) || !is_in_array($id,$tab_id))
    {
    	//envoi de la requete pour comptabiliser le clic 
    	$upd = send_sql($sql_upd,"utiliser le compteur de clics (annuaire)");
    	//creation (ou modifications) du cookie
    	$cookie = isset($_COOKIE["goto_myphpannuaire"]) ? $_COOKIE["goto_myphpannuaire"] : '';
    	setcookie("goto_myphpannuaire",$cookie."#".$id,time()+$delai_clic,"/");	
    }
    //fermeture de la connexion
    mysql_close($lk);
    
    
    }
    
    ////////////////////////////////////////////////////////////////////////////////
    //page principale de l'annuaire
    .......
    
    La, aucune erreur à signaler sauf que la comptabilisation ne se fait pas non plus.
    J'ai déplacé une partie du code ci dessous au dessus de l'include fonction.php comme conseillé mais sans résultat:
    Code:
    function gpc_secure($chaine, $is_int = false) 
    { 
       $chaine = ( is_int($chaine) || $is_int ) ? intval($chaine) : mysql_real_escape_string( stripslashes( htmlspecialchars( trim($chaine) ) ) ); 
       return $chaine; 
    }
    J'ai testé avec et sans rewrite mais sans succès.
    D'autre part, on me dit que les url du style -http://mon-site.com/categorie-du-site.html?url=http://le-site.fr sont pourrit d'un point de vue referencement ... alors je prefere laché l'affaire avant d'avoir du n'importe quoi sur mon -www.

    Je ne sais pas comment faire pour afficher mes X référent uniquement inscrit sur mon annuaire...
    Merci
     
  5. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    re salut,

    ta fonction gpc_secure est incluse dans ta condition if($url != ''){...} donc du coup je suis pas certain que le code $url = ( isset($_GET['url']) ) ? gpc_secure($_GET['url']) : ''; soit réalise correctement.

    de plus tu me dis que la comptabilisation ne se fait pas

    si je comprend bien ton script, tu n'as plus d'incrémentation dans ta base, Incrémentation qui semble se faire grâce a la requête suivante :

    UPDATE $T_sites SET nb_clic_ext = nb_clic_ext+1 WHERE url = '$url'

    je mettrais presque ma main a couper que la requête en question ne passe pas pour la simple raison que ta variable $url contient une chaine différente que celle qui se trouve dans la base (c'est même quasi sur puisque tu la transforme via la fonction gpc_secure

    avec ce cocktail de fonctions : mysql_real_escape_string( stripslashes( htmlspecialchars( trim($chaine) ) ) )

    moralité ton url n'est plus du tout comparable a ce que contient ta base. (d'ou la requête qui ne renvoie rien puisque la dite url est dans une clause WHERE)

    mon truc :

    place un echo derrière ta requete pour voir sa tronche en live et essaie (copier / coller) de l'envoyer en direct dans phpMyAdmin

    Code:
    //creation des requetes pour l'annuaire
    $sql_upd = "UPDATE $T_sites SET nb_clic_ext = nb_clic_ext+1 WHERE url = '$url' "; 
    echo $sql_upd."<br/>";
    a partir de la tu devrais y voir plus clair

    ;-)
     
  6. serval2a
    serval2a WRInaute accro
    Inscrit:
    21 Mars 2005
    Messages:
    2 550
    J'aime reçus:
    0
    Bonjour,
    Essaie cela :
    Code:
    <?php
    $lk = connection_BD();
    function gpc_secure($chaine, $is_int = false)
    {
       $chaine = ( is_int($chaine) || $is_int ) ? intval($chaine) : mysql_real_escape_string( stripslashes( htmlspecialchars( trim($chaine) ) ) );
       return $chaine;
    }
    $url = ( isset($_GET['url']) ) ? gpc_secure($_GET['url']) : '';
    if($url == '')
       exit;
    
    $delai_clic = 24*3600; //delai avant qu'un nouveau clic ne soit recomptabiliser (24*3600 = 24h)   
    $tab_id = array();
    if (isset($_COOKIE["goto_myphpannuaire"]))
       $tab_id = explode("#",$_COOKIE["goto_myphpannuaire"]);   
       
    //creation des requetes pour l'annuaire
    $sql_upd = "UPDATE $T_sites SET nb_clic_ext = nb_clic_ext+1 WHERE url = '$url' ";
    //si on a pas encore visiter le site
    if (!isset($_COOKIE["goto_myphpannuaire"]) || !is_in_array($id,$tab_id))
    {
       //envoi de la requete pour comptabiliser le clic
       $upd = send_sql($sql_upd,"utiliser le compteur de clics (annuaire)");
       //creation (ou modifications) du cookie
       $cookie = isset($_COOKIE["goto_myphpannuaire"]) ? $_COOKIE["goto_myphpannuaire"] : '';
       setcookie("goto_myphpannuaire",$cookie."#".$id,time()+$delai_clic,"/");   
    }
    //fermeture de la connexion
    mysql_close($lk);
    ?>
     
  7. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    Merci à vous :) .

    Je ne l'ai peut etre pas précisé mais je suis un poli en php... d'ou l'avatar très représentatif!
    Zeb, j'ai ajouté le echo $sql_upd."<br/>"; mais je ne pige pas ce que celà est censé faire :?: en tout cas rien de visuel n'apparait!

    serval2a, en faite c'est le code d'origine avec les includes et header("Location: -http://www.votresite.com");
    exit; en moin, ce que j'ai déja tenté aussi mais sans succès aussi.

    Dans le code, il y a bien une partie qui permet de comparer l'origine du click aux url présent dans l'annuaire .. non ?
    Merci
     
  8. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    echo $sql_upd."<br/>"; doit afficher la requête SQL dans ta page ce qui te permet de la copier / coller dans phpmyadmin pour voir si elle fonctionne (manuellement)

    si elle n'est pas visible c'est peut être que la forme ou la couleur (CSS) empêche de bien la voir dans ta page.

    dans ce cas regarde dans le code source (clic droit source) pour la voir.

    si l'update ne fonctionne pas en manuel sur ta base c'est que la requête est pipée qquepart donc ça te donne une piste sur l'origine du 'non comptage' (voir forme de WHERE url = '??????' )
     
  9. serval2a
    serval2a WRInaute accro
    Inscrit:
    21 Mars 2005
    Messages:
    2 550
    J'aime reçus:
    0
    Ben ton code semble récupérer la variable URL avec ça :
    Code:
    $url = ( isset($_GET['url']) ) ? gpc_secure($_GET['url']) : ''; 
    Et mettre à jour le compteur avec la fonction qui va bien ici.
    Code:
    $sql_upd = "UPDATE $T_sites SET nb_clic_ext = nb_clic_ext+1 WHERE url = '$url' "; 
    et ici
    Code:
       $upd = send_sql($sql_upd,"utiliser le compteur de clics (annuaire)");
    Donc dès lors que tout est bien installé et qu'un type arrive par exemple jusqu'à la page
    Code:
    tonsite.com?url=sonsite.com
    Ca devrait marcher.
     
  10. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    zeb, parès de multiple tentatvie d'intégration du code echo $sql_upd."<br/>"; aussi bien dans le fichier d'origine du script que dans mes bidouilles, il n'y a rien à faire... aucune requête SQL n'ai affiché.

    serval2a, le code d'origine telle quelle fonctionne très bien mais il ne m'interresse pas trop car:
    1- il pointe vers une page partenaire.php
    2-il fait une redirection vers l'index

    Vous avez une corde ?
     
  11. serval2a
    serval2a WRInaute accro
    Inscrit:
    21 Mars 2005
    Messages:
    2 550
    J'aime reçus:
    0
    Pas de panique, on va t'aider.
    Marie va me chercher mon fusil. ;)

    Bon revenons à nos moutons, ton code semble effectivement très bien fonctionner, même si j'ai pas essayé hein ;), donc pour que cela marche sur toutes les pages il faut que tu l'intègres dedans, à mon avis dans ton header (à ce stade là si tout ce passe bien et que tu as enlevé les fonctions déclarées en double tu ne devrais pas avoir d'erreur), ensuite il faut que tu vérifies bien que tu passes une url en GET comme je l'ai indiqué ci-dessus, en purgeant les cookies de ton navigateur à chaque fois voir tu supprimes pour tester les différentes lignes où il y a marqué cookie.
    Autre possibilité, il y a un conflit avec la variable url, qui doit déjà exister par ailleurs, dans ce cas remplace dans chaque chaine url par un autre mot et teste.
    @+

    PS : t'inquiète j'ai mon fusil.
     
  12. kitaro
    kitaro WRInaute discret
    Inscrit:
    25 Novembre 2004
    Messages:
    57
    J'aime reçus:
    0
    Bonjour,

    Vous savez comment on peut faire un reset justement à propos du top 10 ? manuellement ou alors 1 fois par semaine en automatique...

    Merci
     
Chargement...
Similar Threads - Script TOP MyPHPannuaire Forum Date
Comment stopper l'exécution de script ajax Développement d'un site Web ou d'une appli mobile 21 Avril 2019
Doit-on définitivement stopper les inscriptions dans les annuaires ? Référencement Google 24 Avril 2012
[SCRIPT] Topsite Développement d'un site Web ou d'une appli mobile 28 Août 2011
Recherche script Topliste gratuit Développement d'un site Web ou d'une appli mobile 23 Janvier 2010
Script pour annuaire top : comptabiliser les liens sortants Développement d'un site Web ou d'une appli mobile 6 Juillet 2009
Petite aide en Javascript (afficher, cacher, délais, stop) Développement d'un site Web ou d'une appli mobile 1 Mars 2009
Comment stoper un submit en javascript ? Développement d'un site Web ou d'une appli mobile 19 Novembre 2008
Trouver script Top Referrer ou Top Site à mettre sur blog ? Développement d'un site Web ou d'une appli mobile 18 Juillet 2008
Script top référents échanges de liens automatique Développement d'un site Web ou d'une appli mobile 10 Avril 2008
Meilleur Script Top Site et Upload Développement d'un site Web ou d'une appli mobile 20 Janvier 2008
Cherche un script php avec top 100 Développement d'un site Web ou d'une appli mobile 1 Mai 2007
Recherche script de topsite Développement d'un site Web ou d'une appli mobile 4 Avril 2007
script top list Développement d'un site Web ou d'une appli mobile 5 Décembre 2005
Script top sites. 4 et 2 chiffres après le point Développement d'un site Web ou d'une appli mobile 30 Octobre 2005
[phpbb] script pour afficher les derniers topic sur l'indexe URL Rewriting et .htaccess 7 Octobre 2005
(phpbb) Debut du topic dans la meta description Administration d'un site Web 13 Avril 2005
Recherche script top list PHP qui ne nuie pas au réf Administration d'un site Web 9 Septembre 2004
Balise meta name description non prise en compte par Google Référencement Google 19 Septembre 2022
Deux questions pour deux scripts javascript. Développement d'un site Web ou d'une appli mobile 29 Août 2022
Search Console Comment réparer l'affichage de Google dans la mauvaise balise de description Meta ? Problèmes de référencement spécifiques à vos sites 19 Août 2022