oui j'ai bien 30 qui s'affiche !
Page blanche ou 30 ?
Ça fonctionne ou pas ?
Je suis perdu
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
ma page affiche bien, le nom du module, ici "categorie" et l'id "30"categorie 30
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 ?
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Voici mon probleme :
Mon menu "musique" correspond en réalité àDans ma base l'url reécrite se nomme
Code : Sélectionner tout - Visualiser dans une fenêtre à part index.php?module=categorie&catid=21
==> avec ton tutorial cela me donne une url :videos-musique-nice
cela a donc rajouté "article-" + "le parametre catid (ici 21)" + "-sur-" + " la valeur de mon champs URL dans ma base pour cet enregistrement" + ".html"article-21-sur-videos-musique-nice.html
mais quand je clique sur mon lien la page ne change pas, ce que j'attends c'est avoir en urlet que cela m'affiche ma page correspondant au scriptarticle-21-sur-videos-musique-nice.htmlOr pour le moment cela ne me donne rien, il n'y a que l'urlindex.php?module=categorie&catid=21qui affiche du contenu, alors que je veux queindex.php?module=categorie&catid=21m'affiche le même contenu !article-21-sur-videos-musique-nice.html
Tu me suis ?
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.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
celle générée par le script de réecriture c'est :celle qui fonctionne c'est :<a href="article-21-sur-videos-musique-nice.html" title="Musique">Musique</a><a class="class_menu_2" href="http://www.monsite.com/index.php?module=categorie&catid=21" >Musique</a>
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...
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
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 ?
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.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
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; ?>
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.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
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...
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.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
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...
bisEnvoyé par Yogui
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager