1. ⭐⭐⭐ Grosse PROMO en cours sur ma plateforme SEO My Ranking Metrics
    Rejeter la notice

Code php de meta keywords ne s'affiche pas

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par bibiyanki, 10 Décembre 2012.

  1. bibiyanki
    bibiyanki WRInaute occasionnel
    Inscrit:
    4 Janvier 2010
    Messages:
    267
    J'aime reçus:
    0
    bonjour:

    j'ai un petit bout de code qui ne marche pas et j'aimerai savoir si vous voyez le problème^^

    Code:
    <?php if (substr($_SERVER['REQUEST_URI'],1) == "sujet") /// s'il on est sur une page de visualisation d'un sujet
    
    /// A modifier car c'est typique de mes urls
    
    {
    $res_meta = $db->query("SELECT message FROM posts WHERE topic_id=".$_GET['id']." ORDER BY id LIMIT 0,1"); /// je récupère le premier message de la discussion
    
    while ($cur_mots = $db->fetch_assoc ($res_meta))
    {
    $tab = explode(" ",metas($cur_mots['message']));
    $nb_mots = count($tab); 
    $incremo = 0;
    $listemots="";
    $nb_max_mots="";
    while ($incremo != $nb_mots && $nb_max_mots != 25) /// Je récupère les 25 premiers mots du message
    {
    if (strlen($tab[$incremo])>5){$listemots.=$tab[$incremo].", ";$nb_max_mots++;}
    $incremo++;
    }
    
    echo '<meta name="keywords" content="'.$listemots.'" />'."\n";
    }
    }
    
    ?>
    merci de votre aide
    ps: en faite au debut j'ai mis 10337 mais je ne comprends pas ce qu'il faut mettre...
     
  2. franckM
    franckM WRInaute impliqué
    Inscrit:
    15 Novembre 2007
    Messages:
    808
    J'aime reçus:
    0
    Et bien commences par regarder la fonction Substr PHP:
    http://php.net/manual/fr/function.substr.php

    Le nombre dont tu parles est l'élément start:
     
  3. bibiyanki
    bibiyanki WRInaute occasionnel
    Inscrit:
    4 Janvier 2010
    Messages:
    267
    J'aime reçus:
    0
    désolé j'ai rien compris, je sais à peu prêt lire le php enfin vite fait comprendre ce qu'il fait mais après...

    donc en gros j'ai un sujet

    "salut, je m'appel tintin, j'ai 19ans"

    si je mets, 1, il commence à S ??

    et sinon il y a aucun problème?
     
  4. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 196
    J'aime reçus:
    1
    0 pour S, 1 pour A, 2 pour L ... il me semble ...
     
  5. bibiyanki
    bibiyanki WRInaute occasionnel
    Inscrit:
    4 Janvier 2010
    Messages:
    267
    J'aime reçus:
    0
    de toute maniere cela ne fonctionne pas...
     
  6. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 196
    J'aime reçus:
    1
  7. bibiyanki
    bibiyanki WRInaute occasionnel
    Inscrit:
    4 Janvier 2010
    Messages:
    267
    J'aime reçus:
    0
    j'ai enlevé le ==sujet

    if (substr($_SERVER['REQUEST_URI'],1) )


    mais toujours rien..
     
  8. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 873
    J'aime reçus:
    71
    Tu es censé avoir le mot sujet dans tes url ou pas ?

    Vu comme tu as modifié le test, ça doit en effet encore moins marcher.
     
  9. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 196
    J'aime reçus:
    1
    sérieusement tu as lu la page de la fonction ? car là tu montre juste que tu va a la pèche a la ligne et que tu ne fait pas d'effort pour comprendre.
    pense tu que ton expression renvoie juste "ujet" ? affiche $_SERVER['REQUEST_URI'] pour voir a quoi tu est confronté et recompose ta règle dans la condition.
     
  10. bibiyanki
    bibiyanki WRInaute occasionnel
    Inscrit:
    4 Janvier 2010
    Messages:
    267
    J'aime reçus:
    0
    mes urls sont comme ça

    /t10989-football-ligue-1-but-en-3d-le-missile-de-bastos.html

    donc un t à tous mes sujets

    sinon je vous donne le code tel que je l'ai pris et qui marche chez l'auteur...

    Code:
    <?
    if (substr($_SERVER['REQUEST_URI'], 7, 5) == "sujet") /// s'il on est sur une page de visualisation d'un sujet
    
    /// A modifier car c'est typique de mes urls
    
    {
    $res_meta = mysql_query("SELECT message FROM pun_posts WHERE topic_id=".$_GET['id']." ORDER BY id LIMIT 0,1"); /// je récupère le premier message de la discussion
    
    while ($cur_mots = $db->fetch_assoc ($res_meta))
    {
    $tab = explode(" ",metas($cur_mots['message']));
    $nb_mots = count($tab); 
    $incremo = 0;
    $listemots="";
    $nb_max_mots="";
    while ($incremo != $nb_mots && $nb_max_mots != 25) /// Je récupère les 25 premiers mots du message
    {
    if (strlen($tab[$incremo])>5){$listemots.=$tab[$incremo].", ";$nb_max_mots++;}
    $incremo++;
    }
    print '<meta name="description" content="'.substr(metas($cur_mots['message']), 10, 300).'" />'."\n";
    print '<meta name="keywords" content="'.$listemots.'" />'."\n";
    }
    }
    elseif (substr($_SERVER['REQUEST_URI'], 7, 5) == "forum") /// S'il ont est en train de visualiser un forum 
    
    {
    $res_meta = mysql_query("SELECT subject FROM pun_topics WHERE forum_id = ".$_GET['id']." ORDER BY id DESC LIMIT 0,10"); /// je cherche les sujets des topics de ce forum
    $keywords = "";
    $description = "";
    while ($cur_mots = $db->fetch_assoc ($res_meta))
    {
    $description.= $cur_mots['subject'].", ";
    $tab = explode(" ",metas($description));
    $nb_mots = count($tab); 
    $incremo = 0;
    $listemots="";
    $nb_max_mots="";
    while ($incremo != $nb_mots && $nb_max_mots != 25) /// Et je récupère les 25 premiers mots
    {
    if (strlen($tab[$incremo])>5){$listemots.=$tab[$incremo].", ";$nb_max_mots++;}
    $incremo++;
    }
    }
    print '<meta name="description" content="'.$description.'" />'."\n";
    print '<meta name="keywords" content="'.$listemots.'" />'."\n";
    }
    else /// S'il l'on est sur l'index des forum, on créé des meta par défaut
    {
    ?>
    <meta name="description" content="Forum dédié au Cap-Sizun et à ses environs. Tous les sujets de conversation y sont les bienvenus à partir du moment ou les mots sont choisis, pesés et argumentés. A chacun son opinion et acceptons également celle des autres." />
    <meta name="keywords" content="forum, cap, sizun, audierne, beuzec, cleden, confort, meilars, esquibien, goulien, mahalon, plogoff, plouhinec, pont croix, primelin, pointe, raz, van, trepasses, baie, douarnenez, ile, sein finistere, bretagne, france" />
    <?
    }
    ?>

    j'ai pris uniquement le code pour les sujets car pour le reste, je l'écris manuellement
     
  11. bibiyanki
    bibiyanki WRInaute occasionnel
    Inscrit:
    4 Janvier 2010
    Messages:
    267
    J'aime reçus:
    0
    vous etiez 40 à me repondre a 14heures et là plus personne sniff
     
  12. bibiyanki
    bibiyanki WRInaute occasionnel
    Inscrit:
    4 Janvier 2010
    Messages:
    267
    J'aime reçus:
    0
    quelqu'un entre temps à essayer de m'aider mais sans succès

    Code:
    if (substr($_SERVER['REQUEST_URI'],1) == "t") /// s'il on est sur une page de visualisation d'un sujet
    
    /// A modifier car c'est typique de mes urls
    
    {
    $res_meta = $db->query("SELECT message FROM posts WHERE topic_id=".$_GET['id']." ORDER BY id LIMIT 0,1") or error('Impossible de retrouver les informations des discussions et des messages', __FILE__, __LINE__, $db->error());
    
    while ($cur_mots = $db->fetch_assoc ($res_meta))
    {
    $tab = explode(" ",metas($cur_mots['message']));
    $nb_mots = count($tab); 
    $incremo = 0;
    $listemots="";
    $nb_max_mots="";
    }
    while($incremo <= $nb_mots){
    // on prend que les 25 premier mots
       if($nb_max_mots < 25){
          if(strlen($tab[$incremo])>5 ){
             // si le mot est supérieur a 5 lettre alors on ajoute le mot a la liste et on met une virgule et on incremente le $nb_max_mots
             $listemots.=$tab[$incremo].", ";
             $nb_max_mots++;
          }else{
             // si le mot est infereieur ou egala  5 lettres on l'ajoute sans ajoute de virgules.
             $listemots.=$tab[$incrmeo]." ";
          }
       }else{
          // si on as plus de 25 mots on termine la boucle
          break;
       }
       $incremo++;
    echo '<meta name="keywords" content="'.$listemots.'" />'."\n";
    }
    }
     
  13. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 873
    J'aime reçus:
    71
    Tout ça pour une balise meta qui ne sert à rien.

    Tu as quoi comme erreur ?
     
  14. bibiyanki
    bibiyanki WRInaute occasionnel
    Inscrit:
    4 Janvier 2010
    Messages:
    267
    J'aime reçus:
    0
    Bin j en ai aucune. Il n y a rien meme pas les metas
     
  15. bibiyanki
    bibiyanki WRInaute occasionnel
    Inscrit:
    4 Janvier 2010
    Messages:
    267
    J'aime reçus:
    0
    Alors une idee?
     
  16. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 873
    J'aime reçus:
    71
    Tu peux déjà essayer de débugger de ton côté, en ajoutant des echo avant et après chaque test et boucle, de manière à savoir où cela pêche.
     
  17. bibiyanki
    bibiyanki WRInaute occasionnel
    Inscrit:
    4 Janvier 2010
    Messages:
    267
    J'aime reçus:
    0
    y'a rien qui s'affiche aucune erreur...
     
  18. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 873
    J'aime reçus:
    71
    Tu as testé ton code point par point ? Ce que je te propose n'a pas pour but de t'affiche des erreurs, mais de te permettre d'identifier dans quel condition / boucle ton code ne passe pas, de manière à ce que tu puisse identifier la source du problème.
     
  19. bibiyanki
    bibiyanki WRInaute occasionnel
    Inscrit:
    4 Janvier 2010
    Messages:
    267
    J'aime reçus:
    0
    oui j'ai bien compris, déjà il lis la connexion à la table...
     
  20. liens-geeks.com
    liens-geeks.com WRInaute discret
    Inscrit:
    6 Octobre 2011
    Messages:
    188
    J'aime reçus:
    0
    C'est clair!
    Requete + traitement pour une balise inutile dont le contenu ne sera pas pertinent en plus. Tu en as vraiment besoin?

    Au niveau logique de programmation, tu n'as aucun moyen de savoir sur quel type de page tu es sans avoir à parser l'URL?
    En javascript je peux comprendre de faire ça mais là c'est étrange.

    Essaye ça :
    Code:
    if(strstr($_SERVER['REQUEST_URI'], 'sujet'))
    {
    echo 'aa';
    ...
    }
    
    Si tu arrives à le faire fonctionner, crée 1 fichier contenant la meta keywords et ensuite à chaque chargement de page tu commence par tester si le fichier existe. SI oui tu fais un file_get_contents, ca prendra moins de temps

    Ciao
     
  21. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 196
    J'aime reçus:
    1
    ça c'est la méthode pas subtile le mieux reste a mon avis de créer dynamiquement un fichier php contenant une liste de variables en dur (qu'on va concaténer au fur et a mesure de leur création) puis de l'inclure pour tester l’existence de la variable. Ça évite les opération I/O du file get qui sont très gourmandes, et permet la sortie avec un simple echo.
     
  22. liens-geeks.com
    liens-geeks.com WRInaute discret
    Inscrit:
    6 Octobre 2011
    Messages:
    188
    J'aime reçus:
    0
    C'est juste le principe de base de tous les systèmes de cache ^^
    C'etait juste la manière la plus simple pour optimiser ce script (tout en sachant que le dev a déjà des difficultés sur un script de base)
    Comme tu dis, ce que j'ai écris c'est orienté serveurs qui ne sont pas saturés au niveau du disque
     
Chargement...
Similar Threads - Code php meta Forum Date
Modification d'un code PHP Développement d'un site Web ou d'une appli mobile 10 Décembre 2017
Différence code PHP header Location Débuter en référencement 7 Novembre 2016
Reduire des lignes de code php Développement d'un site Web ou d'une appli mobile 5 Novembre 2016
Passage d'un site HTML en php par étapes. Comment coder les redirections ? Développement d'un site Web ou d'une appli mobile 18 Octobre 2015
Optimiser le code d'un forum phpbb Problèmes de référencement spécifiques à vos sites 12 Juin 2015
Code Javascript s'affiche différemment en php et en html Développement d'un site Web ou d'une appli mobile 8 Décembre 2014
Problème de modication du code html d'un site en CURL et DOM PHP Développement d'un site Web ou d'une appli mobile 11 Avril 2014
La campagne n'apparaît pas dans Analytics ( PHP et QRcodes inside) Google Analytics 11 Septembre 2013
[php] error suite à code antiduplication Développement d'un site Web ou d'une appli mobile 5 Février 2013
[PHP] comprendre ce code pour pseudo-frame Développement d'un site Web ou d'une appli mobile 28 Décembre 2012
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice