IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[URLRewriting] La page ne s'affiche pas toujours de la même manière


Sujet :

Langage PHP

  1. #21
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    oui j'ai bien 30 qui s'affiche !

  2. #22
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Page blanche ou 30 ?
    Ça fonctionne ou pas ?

    Je suis perdu

  3. #23
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    ma page affiche bien
    categorie 30
    , le nom du module, ici "categorie" et l'id "30"

  4. #24
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Dis-m'en plus, ça fait 2 pages que j'essaie de voir ce qui ne va pas et visiblement tout va bien...
    La réécriture fonctionne, les paramètres sont bien envoyés au script... Où est le problème ?

  5. #25
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    Voici mon probleme :
    Mon menu "musique" correspond en réalité à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    index.php?module=categorie&catid=21
    Dans ma base l'url reécrite se nomme
    videos-musique-nice
    ==> avec ton tutorial cela me donne une url :
    article-21-sur-videos-musique-nice.html
    cela a donc rajouté "article-" + "le parametre catid (ici 21)" + "-sur-" + " la valeur de mon champs URL dans ma base pour cet enregistrement" + ".html"
    mais quand je clique sur mon lien la page ne change pas, ce que j'attends c'est avoir en url
    article-21-sur-videos-musique-nice.html
    et que cela m'affiche ma page correspondant au script
    index.php?module=categorie&catid=21
    Or pour le moment cela ne me donne rien, il n'y a que l'url
    index.php?module=categorie&catid=21
    qui affiche du contenu, alors que je veux que
    article-21-sur-videos-musique-nice.html
    m'affiche le même contenu !

    Tu me suis ?

  6. #26
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Donne-moi la balise <a href> que tu as dans ta page Web, et celle que tu souhaites avoir, que je voie si j'ai bien compris.

  7. #27
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    celle générée par le script de réecriture c'est :
    <a href="article-21-sur-videos-musique-nice.html" title="Musique">Musique</a>
    celle qui fonctionne c'est :
    <a class="class_menu_2" href="http://www.monsite.com/index.php?module=categorie&catid=21" >Musique</a>

  8. #28
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Au message #20 ci-dessus je te demande si l'adresse réécrite fonctionne, et tu me dis que oui aux messages #21 et confirmation au #23.
    Là tu me dis que la seule adresse qui fonctionne est l'adresse qui n'est pas réécrite.

    Mois pas comprendre. J'ai pas dormi cette nuit, il y a probablement un lien de cause à effet...

  9. #29
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    oui ton test que tu m'as fais faire avec le die() fonctionne, et si je met article-30.html cela m'affiche bien le contenu du die ( categorie 30) ca c'est une chose.
    Si j'enleve le die() du php, j'ai mon menu, avec les liens reécris, mais si je re teste artcilce-30.html alors là la page reste la meme, une page avec le menu sans contenu.
    tu vois ?

  10. #30
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Je comprends pourquoi je n'avais pas compris jusque-là. Enfin, je crois. En tout cas, je pense qu'il est temps de montrer un peu de code (plus que ce que tu as donné, si possible).

    Au fait, le coup de la regex est utile pour gérer d'un coup des scripts comme phpBB, avec des liens de partout. Si c'est un script que tu es en train de coder, il est largement plus simple/fiable/efficace d'écrire directement les liens sans passer par la gestion de tampon et des regex.

  11. #31
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    Voilà mon script php de la page test.php, basé sur ton tutorial...ne crie pas j'ai surement dû ecorcher ton tut vu que ca marche pas ce que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <?php
    //...... y a la connexion avant et blablabla
    while($categorie = mysql_fetch_assoc($result)){
    ?>
     
     <a href="index.php?module=categorie&catid=<?php echo $categorie['id']; ?>"><?php echo $categorie['libel_categories']; ?></a> 
     
    <br />
    <?php
    }
     
    // Récupérer le tampon et arrêter la mise en cache
    $contents = ob_get_contents();
    ob_end_clean();
    // Récupérer les liens à l'aide d'une expression régulière   '#<a href="index.php\?a=([0-9]+)">(.+)</a>#Usi',
    if(preg_match_all(
    '#<a href="index.php\?module=categorie&catid=([0-9]+)">(.+)</a>#Usi',
    //'#<a href="index.php\?module=categorie&catid=([0-9]+)&code=([0-9]+)">(.+)</a>#Usi',
    $contents,
    $matches,
    PREG_SET_ORDER))
    {
    // Parcourir les liens et les réécrire à l'aide de la base de données
    foreach($matches as $match){
    $pattern = $match[0];
    $article_id = $match[1];
    $anchor = $match[2];
    $sql = 'SELECT `libel_categories`, `url`
    FROM `wt_categories`
    WHERE `id` = '.$article_id;
    $result = mysql_query($sql)
    or die(__LINE__.' : '.mysql_error());
    if($categorie = mysql_fetch_assoc($result)){
    //$new_url =
    //'<a href="article-'.clean($categorie['url']).'-sur-'.$article_id.'.html" '
    //.'title="'.$categorie['libel_categories'].'">'
    //.$categorie['libel_categories']
    //.'</a>';
     
    $new_url =
    '<a href="article-'.$article_id.'-sur-'.clean($categorie['url']).'.html" '
    .'title="'.$categorie['libel_categories'].'">'
    .$categorie['libel_categories']
    .'</a>';
     
    $contents = str_replace($pattern, $new_url, $contents);
    }
    }
    }
    // Afficher la page
    echo $contents;
     
    ?>

  12. #32
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Oui, donc, je ne vois toujours pas pourquoi tu te compliques la vie à écrire deux fois le lien. Pourquoi ne pas contruire le lien correct dès le premier coup ?

    Sinon, sais-tu à quel moment du script ça commence à foirer ? Essaie de déplacer le die() pour voir.

  13. #33
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    en fait tu me parles de double ecriture et c'est ca que j'ai pas trop compris sur ton tutorial, entre la boucle pour recuperer les URL dans la base de donnée et les expressions regulieres...
    Il me semblait avoir refais ton script tel que presenté en page 18 de ton tutorial en pdf pourtant...

  14. #34
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    La différence est que mon truc est appliqué à un site déjà existant... C'est un phpBB2 complet, un site qu'il coûterait énormément de temps de mofifier entièrement, et que chaque nouveau thème installé obligerait à refaire toutes les modifications... Bref, il n'était pas pensable de modifier à la main les scripts PHP et les gabarits de tout le site. D'où l'intérêt d'utiliser la gestion du cache de sortie (ob_start()) et une expression régulière afin d'effectuer un post traitement.

    Dans ton cas, tu es visiblement en train de développer le site. Il n'existe pas encore, donc tu peux le modeler à ta vision des choses. Il me semble avoir mis divers exemples afin d'expliquer comment mettre en place l'URLR à partir de zéro, c'est cela qu'il te faut lire et non la partie appliquée à phpBB.

    Encore une fois, je te rappelle que tous les plus grands frameworks de développement PHP permettent de gérer l'URLR en natif... cf. ma traduction de l'intro à Zend-Framework si tu veux un exemple.

  15. #35
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    mon site est déjà en place depuis 2 mois, et pour le moment j'ai pres de 450 pages référencées sur google mais mais url sont toutes du style que tu as vu c'est pour ca que je veux tout optimiser car j'ai fais des titres individuels, balises meta...il me reste les url voilà.
    je vais continuer de chercher et je vais bien finir par trouver à force...

  16. #36
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Citation Envoyé par Yogui
    Sinon, sais-tu à quel moment du script ça commence à foirer ? Essaie de déplacer le die() pour voir.
    bis

Discussions similaires

  1. [C#] Trace qui ne s'affiche pas toujours.
    Par vin100H dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/08/2007, 08h53
  2. [MySQL] La page ne s'affiche pas avec ce bout de code
    Par mimagyc dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/08/2007, 23h56
  3. Serveur de production page ne s'affiche pas
    Par friiitz dans le forum Dreamweaver
    Réponses: 5
    Dernier message: 10/05/2007, 18h18
  4. <html:errors /> Ma page ne s'affiche pas
    Par Zanton dans le forum Struts 1
    Réponses: 5
    Dernier message: 10/10/2006, 10h33
  5. Réponses: 9
    Dernier message: 04/10/2005, 19h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo