8797 sujets

Développement web côté serveur, CMS

Bonjour à tous.
J'utilise pour un nouveau site de l'URL Rewriting classique via un fichier .htaccess.
Jusque là rien de compliqué. J'ai une série de catégorie et sous-catégorie dans le site PHP et tout est bien géré via ce fichier, parce que ces "catégories" sont statiques.

Maintenant j'ai également mis au point un système pour créer les pages HTML (enfin php Smiley langue ) de manière dynamique.

Dans une bdd MySQL j'ai donc une table "Pages" avec les champs suivants :

- id
- title
- description
- url

Bref le contenu de ma page est totalement dynamique.

Exemple :

index.php?id=1 -> On peut tomber sur une page dont le titre serait "page sur les fours ménagers"

index.php?id=2 -> On peut tomber sur une page dont le titre serait " comment réussir son mariage"

etc...

Bref une tonne d'articles qui n'ont rien en commun.

Il n'y a donc pas de catégories ou sous-catégories ici comme pour de l'url rewriting classique et statique via le .htaccess

Comment donc dire au fichier .htaccess (ou autre technique mais là je ne vois pas) d'aller rechercher le nom de l'url (exemple : comment-reussir-son-mariage.html) dans la base de données ?

Merci d'avance,

Cordialement, Smiley cligne
Modifié par arnaud_verlaine (13 May 2008 - 16:48)
Salut,
arnaud_verlaine a écrit :
Comment donc dire au fichier .htaccess (ou autre technique mais là je ne vois pas) d'aller rechercher le nom de l'url (exemple : comment-reussir-son-mariage.html) dans la base de données ?
Pourquoi utiliser le titre comme élément de recherche dans la base ? Il faudra t'assurer qu'il est bien unique dans la table, et tu risques de t'arracher les cheveux pour gérer les caractères spéciaux à l'entrée et à la sortie Smiley ohwell

Un système plus simple, et qui devrait donner des résultats équivalents en termes de référencement, serait de conserver l'id dans l'url, mais en ajoutant le titre de ta page derrière, quelque chose comme
http://monsite.com/2/les+fours+ménagers

que tu peux récupérer avec :
^([0-9]+).*$     index.php?id=$1


Sinon, pour récupérer le nom de l'url dans la base de donnée, ça ne se fait pas dans le fichier .htaccess, mais dans ton script PHP. Le fichier .htaccess ne sert qu'à "traduire l'url" pour passer les variables à PHP.

Format URL :
 http://monsite.com/fers+a+repasser+volants
 

.htaccess :
^$            index.php
^([.]+)$      article.php?$url=$1

article.php :
<?php
  $url = $_GET['url'];
  // Traitement de la châine $title pour 
  //  1. éviter les injections SQL éventuelles !!,
  //  2. faire correspondre ce qu'on récupère en GET & le contenu de
  //      la BDD
  //  $url = ...
  $query = sprintf("SELECT * FROM tableArticles WHERE url = '%s'", $url);
  // et en avant ...


ps: exactitude des expressions régulières absolument incertaine, j'ai pas testé ^^
Bonjour et un grand merci pour le coup de pouce.

J'approche du but.

C'est à dire : ceci fonctionne déja en passant non plus l'id mais l'url en paramètre :

a écrit :
www.monsite.com/article.php?url=mon-fer-a-repasser


La page demandée s'affiche bien.

Par contre c'est le lien du htaccess que je foire je pense :


RewriteRule ^([.]+)$  page.php?url=$1 [L]


J'avoue que là je suis un peu paumé.

Je souhaiterais donc une URL du type :

www.monsite.com/mon-fer-a-repasser
ou :
www.monsite.com/mon-fer-a-repasser.html

Bref, c'est une simple bourde de syntaxe dans le .htaccess, si un pro du .htaccess pourrait passer 2 minutes... Smiley lol

Merci pour l'aide ! Smiley cligne
Bonjour, j'ai exactement le même problème donc je me permet de remonter ce topic afin de ne pas en créer un autre sur le même sujet... Voilà je vous expose brièvement le problème :

J'ai une base de donnée avec une table "personnes" contenant comme données : "nom", "prénom", etc...

J'ai fait une page "personnes.php", et je souhaiterais que quand on tape "personne.php?nom=alsa&prenom=roger" on tombe sur la personne "Alsa Roger" avec sa fiche personnalisée (nom, prénom, détails...).

Le seul problème étant que je n'arrive pas à réaliser cette étape... Premièrement, je n'arrive pas à réécrire l'url dans mon script php, et deuxièmement je ne sais pas comment afficher sur ma page le "nom", "prénom" et "détails" correspondant à la personne affichée dans l'URL.

Quelqu'un pour m'aider ??


Merci. Cordialement,
Bonjour et bienvenue sur Alsacréations Smiley smile ,

termi a écrit :
Bonjour, j'ai exactement le même problème donc je me permet de remonter ce topic afin de ne pas en créer un autre sur le même sujet... Voilà je vous expose brièvement le problème :


Non justement ce n'est pas le même problème il faut créer un nouveau sujet Smiley cligne