PHP/MySQL : problème affichage articles
Bonjour,
Je stocke des articles dans une base de données MySQL.
La listes des articles (10 articles par page) sur mon site se fait via les URL suivantes :
http://mon_domaine.fr/index.php?page=actualite&nb=0
http://mon_domaine.fr/index.php?page=actualite&nb=1
http://mon_domaine.fr/index.php?page=actualite&nb=2
...
ou nb=0=numéro de la page (affiche les 10 derniers articles)
nb=0=les 10 articles les plus récents
nb=1=du 11ième au 20ième articles les plus récents
...
L'affichage des articles se fait via l'URL suivante :
http://mon_domaine.fr/index.php?page=actualite&nb=0&id=345
http://mon_domaine.fr/index.php?page=actualite&nb=1&id=250
ou id= identifiant MySQL de l'article
Lorsque un article passe de la page 1 à la page 2 (par exemple) l'URL pour le visualiser change :
AVANT : http://mon_domaine.fr/index.php?page=actualite&nb=0&id=250
APRES : http://mon_domaine.fr/index.php?page=actualite&nb=1&id=250
Du coup les moteurs de recherches ne trouvent plus l'article. Ils référencent l'article à l'URL http://mon_domaine.fr/index.php?page=actualite&nb=0&id=250 alors qu'il est visible à cette nouvelle URL http://mon_domaine.fr/index.php?page=actualite&nb=1&id=250.
Lorsqu'un internaute surfe sur mon site, il n'y a pas de pbs puisque les URL sont correctes. Par contre lorsque l'internaute vient de google ou autre moteur de recherche, il y a souvent des pbs.
Je voudrais donc mettre en place un code php gérant les choses de la façon suivante :
- continuer de la même façon lorsque l'URL source vient de mon_domaine.fr
- mettre en place une solution lorsque la requête de vient pas de mon domaine pour afficher correctement l'article
Quelqu'un aurait il une ou des idée(s) ?
Merci d'avance
Je stocke des articles dans une base de données MySQL.
La listes des articles (10 articles par page) sur mon site se fait via les URL suivantes :
http://mon_domaine.fr/index.php?page=actualite&nb=0
http://mon_domaine.fr/index.php?page=actualite&nb=1
http://mon_domaine.fr/index.php?page=actualite&nb=2
...
ou nb=0=numéro de la page (affiche les 10 derniers articles)
nb=0=les 10 articles les plus récents
nb=1=du 11ième au 20ième articles les plus récents
...
L'affichage des articles se fait via l'URL suivante :
http://mon_domaine.fr/index.php?page=actualite&nb=0&id=345
http://mon_domaine.fr/index.php?page=actualite&nb=1&id=250
ou id= identifiant MySQL de l'article
Lorsque un article passe de la page 1 à la page 2 (par exemple) l'URL pour le visualiser change :
AVANT : http://mon_domaine.fr/index.php?page=actualite&nb=0&id=250
APRES : http://mon_domaine.fr/index.php?page=actualite&nb=1&id=250
Du coup les moteurs de recherches ne trouvent plus l'article. Ils référencent l'article à l'URL http://mon_domaine.fr/index.php?page=actualite&nb=0&id=250 alors qu'il est visible à cette nouvelle URL http://mon_domaine.fr/index.php?page=actualite&nb=1&id=250.
Lorsqu'un internaute surfe sur mon site, il n'y a pas de pbs puisque les URL sont correctes. Par contre lorsque l'internaute vient de google ou autre moteur de recherche, il y a souvent des pbs.
Je voudrais donc mettre en place un code php gérant les choses de la façon suivante :
- continuer de la même façon lorsque l'URL source vient de mon_domaine.fr
- mettre en place une solution lorsque la requête de vient pas de mon domaine pour afficher correctement l'article
Quelqu'un aurait il une ou des idée(s) ?
Merci d'avance
Configuration: Windows XP Firefox 3.0.16
6 réponses
-
bon je sens que je ne ferai pas ça ce soir, ça va entrainer pas mal de modifs ...
merci de ton aide
@+ -
en allant sur ton site j'ai pensé a un truc :
le nb tu n'en a pas besoin du tout tu peux le calculer : tu fait un
select count(article) where date>(select date from article where id=id
et après tu récupère ton nb avec un modulo -
exemple concret :
http://www.handball.fr/index.php?page=page_actu&nb=1&id_actu=173#173
=> cet article s'affiche
demain j'ajoute des articles et celui la (id=173) passe en page 2 (nb=2) mais les moteurs de recherche ne le verront pas...
http://www.handball.fr/index.php?page=page_actu&nb=2&id_actu=173#173
=> cet article ne s'affiche pas
voila ce que je cherche à résoudre ...
Du coup, je pensais faire un test :
si la requete vient de handball.fr je traite comme aujourd'hui
si la requete vient de l'extérieur, je prend juste page=page_actu et id_actu=173
Peux tu m'aider ? -
tu n'a pas besoin de du "nb" pour afficher un article, tu en a besoin pour naviguer sur tes pages ?
en gros :
SI $id alors
select * from article where id=$id
SiNONSI £nb alors
select * from article limit $nb*20, $nb
fin
et comme cela peu importe d'ou il vient si l'id est correcte il trouvera l'article -
et comment gérer 2 traitements différents :
- URL source provient de http://mon_domaine.fr
- URL source ne provient pas de http://mon_domaine.fr -
ne tiens pas compte du "nb" si tu as l "id"