Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

Comment transformer une url ?

Aller à la page 1, 2  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
tryan
WRInaute accro
WRInaute accro

Inscrit le: 20 Fév 2005
Messages: 1207
Localisation: Planete terre

URL permanente de ce messagePosté le : Mer Mar 19, 2008 14:16    Sujet du message: Comment transformer une url ?

Bonjour,

Je ne comprend pas comment transformer une url du type : "page-site.php?id=2&champ=REFERENCEMENT" en "le-titre-de-la-fiche.php" .

Je transmet une variable d'un page A vers page-site.php de cette façon:
Code:
echo '<a  href="page-site.php?id='.$id.'&champ='.$nomduchamp.'" >Fiche individuelle</a><br/>';


Dans page-site.php je recupère les info transmises par $_GET soit $id et $nomduchamp:
Code:

<?
$idtransmit=$_GET["id"];
$nomduchamp=$_GET["champ"];
?>

Ensuite je me connecte à ma BD et je fais ma requète avec la boucle:
Code:

.....
$query1 = mysql_query("SELECT * FROM  $nomduchamp WHERE id = $idtransmit");
...
ma boucle
etc...

Ma base est constitué de cette façon:
Code:

 id | titre | description | url | BLABLA(qui en fait correspond à $nomduchamp)
1 | ici un titre | ici une description | ici une url | BLABLA
etc..

Donc, comment procéder pour incorporer le "titre" dans l'url?
Note: je suis débutant en php...
Merci
 
tryan Visiter le site web du posteur
audit.referencement
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 16 Fév 2008
Messages: 121

URL permanente de ce messagePosté le : Mer Mar 19, 2008 14:36    Sujet du message: Comment transformer une url ?

Il faut que tu utilises la technique de l'URL rewriting, tu trouveras plein de choses à ce sujet sur le site et le forum.
 
audit.referencement
webmasterlamogere
WRInaute accro
WRInaute accro

Inscrit le: 17 Déc 2006
Messages: 1623
Localisation: urlrewriting.fr

URL permanente de ce messagePosté le : Mer Mar 19, 2008 14:42    Sujet du message: Comment transformer une url ?

si tu ne veux pas créer autant de fichier php que de titre, il faut ajouter une réécriture d'url dans le fichier .htaccess
Pour mettre le titre dans l'url, il faut avoir une table de correspondance avec comme clé le titre et les zones id et champ.
la règle .htaccess qui correspond est :
Code:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.php$   /page-site.php?titre=$1 [L]

en début de page-site.php il faut lire la table avec comme clé le titre pour récupérer l'id et le champ
 
webmasterlamogere Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

Inscrit le: 20 Fév 2005
Messages: 1207
Localisation: Planete terre

URL permanente de ce messagePosté le : Mer Mar 19, 2008 15:42    Sujet du message: Comment transformer une url ?

Oui, l'url rewriting, j'ai déjà regardé de ce coté et j'avoue ne pas y comprendre grand chose!
Je pensais qu'il fallait en plus du rewriting une fonction pour ce faire.

webmasterlamogere, je suis un peut largué quand tu dis :"avoir une table de correspondance avec comme clé le titre et les zones id et champ".

Je vais essayer d'expliquer au mieux ma façon de procéder:

1-Je créé des tables automatiquement à l'aide d'un formulaire contenant id, titre,description,url,champ (champ correspond au nom de la table créé par formulaire soit $champ).

Quand une table est créé, j'insère en même temps et automatiquement dans une autre table nommé "tous_les_champs" comprenant "id" et "titre" ..id en auto_increment et dans "titre" la valeur de "champ" (soit $champ).

Donc:
-chaque base créée porte le nom donné par formulaire (soit $champ).
-le champ "champ" de chaque base contient le nom de la base (soit $champ).
-la base "tous_les_champs" contient tout les nom de table créé (soit $champ ).

Vous suivez ... ^^.
Ensuite, je fais comme dans mon code du 1er poste :
Code:
echo '<a  href="page-site.php?id='.$id.'&champ='.$nomduchamp.'" >Fiche individuelle</a><br/>';

etc..., etc..

Donc à la finale, il me manque quoi et ou pour pouvoir utiliser l'url rewriting afin d'avoir le titre de chaque fiche dans l'url?

Note2: J'essaye d'apprendre à coder php/mysql, soyez indulgent.. Laughing
Merci
 
tryan Visiter le site web du posteur
Bacteries
WRInaute accro
WRInaute accro

Inscrit le: 27 Mai 2004
Messages: 1048
Localisation: France - Nantes

URL permanente de ce messagePosté le : Mer Mar 19, 2008 15:57    Sujet du message: Comment transformer une url ?

Ton lien tu le construit différement :
Code:

echo '<a  href="page-site-'.$id.'-'.$nomduchamp.'.php >Fiche individuelle</a><br/>';


Et ensuite ta règle de réecriture d'URL qui va prendre les URL commençant par page-site-*-*.php pour les transformer en page-site?id=123&champ=NomDuChamp.
Ainsi l'utilisateur (ou le robot Google...) ne voit que l'URL simplifiée mais ton serveur a lui toujours la même chose à traiter.
 
Bacteries Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

Inscrit le: 20 Fév 2005
Messages: 1207
Localisation: Planete terre

URL permanente de ce messagePosté le : Mer Mar 19, 2008 16:16    Sujet du message: Comment transformer une url ?

Merci Bacteries,
Cependant aurais tu l'exemple des règles de rewriting correspondant à la forme de l'url que tu m'as donné ?
...Je vais allez lire les tuto la dessus ^^!
 
tryan Visiter le site web du posteur
webmasterlamogere
WRInaute accro
WRInaute accro

Inscrit le: 17 Déc 2006
Messages: 1623
Localisation: urlrewriting.fr

URL permanente de ce messagePosté le : Mer Mar 19, 2008 16:23    Sujet du message: Comment transformer une url ?

Si tu supprimes tes paramètres de l'url, il faut bien un moyen de les retrouver à partir du titre. il faut donc avoir un index unique qui fait correspondre le titre avec l'id et le champ. Il semble que ce soit la table tous_les_champs qui fasse ce lien.

Code:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.php$   /page-site.php?titre=$1 [L]


Une petite explication de la règle de réécriture ci-dessus : la première ligne indique que tu veux utiliser le moteur de réécriture apache.
les deux lignes suivantes indique que tu ne veux pas que la règle ne soit appliquée à des répertoires ou des fichiers existants (la règle ne doit s'appliquer que si l'url n'existe pas)
la dernière permet d'afficher le contenu de la page /page-site.php?titre=n-importe-quel-titre si l'url demandée est sous la forme http://www.example.com/n-importe-quel-titre.php et cela de manière invisible sur ton navigateur.
 
webmasterlamogere Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

Inscrit le: 20 Fév 2005
Messages: 1207
Localisation: Planete terre

URL permanente de ce messagePosté le : Mer Mar 19, 2008 17:41    Sujet du message: Comment transformer une url ?

Ok, merci webmasterlamogere.

Donc en faisant:
Code:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.php$   /page-site.php?titre=$1 [L]


Pour une url d'origine:
Code:
http://monsite.com/page-site.php?id=3&champ=TOTO


Sa me donne une url accessible du genre :
Code:
http://monsite.com/3.php

Le soucis est que la page est vide.
J'ai donc changé la ligne :
Code:
RewriteRule ^(.*)\.php$   /page-site.php?titre=$1 [L]

par:
Code:
RewriteRule ^(.*)-(.*)\.php$   /page-site.php?titre=$1&champ=$2 [L]

Ce qui me donne maintenant une url accessible du genre :
Code:
http://monsite.com/3-TOTO.php

Mais même punition, la page existe mais reste vide ...j'y comprend kedal !! Shocked
 
tryan Visiter le site web du posteur
webmasterlamogere
WRInaute accro
WRInaute accro

Inscrit le: 17 Déc 2006
Messages: 1623
Localisation: urlrewriting.fr

URL permanente de ce messagePosté le : Mer Mar 19, 2008 18:04    Sujet du message: Comment transformer une url ?

j'ai compris que tu veux remplacer l'url :
Code:
http://monsite.com/page-site.php?id=3&champ=TOTO

par l'url :
Code:
http://monsite.com/titre-de-la-page.php

sachant qu'une table contient une correspondance entre l'id "3" + le champ "TOTO" et un titre "titre-de-la-page"



par contre si tu veux juste avoir une url :
Code:
http://monsite.com/3-TOTO.php

il te suffit de mettre la règle :
Code:
RewriteRule ^([0-9]*)-(.*)\.php$   /page-site.php?id=$1&champ=$2 [L]
 
webmasterlamogere Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

Inscrit le: 20 Fév 2005
Messages: 1207
Localisation: Planete terre

URL permanente de ce messagePosté le : Mer Mar 19, 2008 18:42    Sujet du message: Comment transformer une url ?

Merci webmasterlamogere Very Happy .

Je continue dans ma lancé.
Vue que l'url de la page ne me convient pas étant donné que je récupère l'id et le nom du champ, je me suis dit que j'allais plutôt mettre le titre dans l'url.
J'ai donc ajouté $titre à mon url:
Code:
http://monsite.com/page-site.php?id=3&champ=TOTO&titre=montitre

Je me confronte à 2 problème:
1-Si mon titre comporte des espaces et des accents je me trouve alors avec une url du genre:
Code:
http://monsite.com/3-TOTO-Cr%C3%A9er%20un%20blog.php

Comment fait ton pour remplacer les espaces par des (-) et les caractères accentués (éàèç) par (eaec)?

2-Comment afficher dans l'url rewrité juste le titre pour obtenir une url du style:
Code:
http://monsite.com/Creer-un-blog.php


Bon, j'en demande peut être beaucoup mais j'essaye de comprendre.
Merci
 
tryan Visiter le site web du posteur
Bacteries
WRInaute accro
WRInaute accro

Inscrit le: 27 Mai 2004
Messages: 1048
Localisation: France - Nantes

URL permanente de ce messagePosté le : Mer Mar 19, 2008 19:03    Sujet du message: Comment transformer une url ?

Alors : vu que tu as l'ID inutile de mettre dans ?id=3&champ=TOTO&titre=montitre le titre (je suppose que tu ne t'en sert pas pour retrouver ton contenu).

A partir de là libre à toi de transformer ton titre, soit simplement avec la fonction urlencode() soit de façon plus avancée. Pour avoir qqchose de bien.

Ensuite peut être est-il préférable pour toi de faire une url du type :
Code:
ID-ton_titre.php
 
Bacteries Visiter le site web du posteur
webmasterlamogere
WRInaute accro
WRInaute accro

Inscrit le: 17 Déc 2006
Messages: 1623
Localisation: urlrewriting.fr

URL permanente de ce messagePosté le : Mer Mar 19, 2008 19:10    Sujet du message: Comment transformer une url ?

Pour supprimer les caractères spéciaux il faut utiliser une petite fonction comme celle ci :
http://www.webrankinfo.com/forums/viewtopic_57538.htm#552814

pour n'avoir que le titre dans l'url il faut faire comme je t'ai dit là : http://www.webrankinfo.com/forums/viewtopic_90356.htm#869589

la seule difficulté c'est d'ajouter au début de page-site.php le code qui récupère l'id et le champ a partir du titre (sans les caractères spéciaux). c'est pour cela que je t'ai conseillé d'avoir une table qui fait le lien entre ce titre sans les caractères spéciaux et l'id+champ
 
webmasterlamogere Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

Inscrit le: 20 Fév 2005
Messages: 1207
Localisation: Planete terre

URL permanente de ce messagePosté le : Ven Mar 21, 2008 19:55    Sujet du message: Comment transformer une url ?

Merci webmasterlamogere,

J'ai donc utilisé ta technique de cette façon:
Code:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)-(.*)-([0-9]*)\.php$  /page-site.php?rewriting=$1&champ=$2&id=$3 [L]


Ce qui me donne des url du genre:
Code:
http://monsite.com/titre-de-la-page-NOMCATEGORIE-id.php

Bon c'est un peut long mais je n'ai pas encore comprit comment afficher juste le titre sachant qu'au point de départ je transmet 3 variables dans l'url!!

J'essaye maintenant de rewriter une autre url qui donne:
Code:
/categorie.php?categorie=nomdelacatégorie

Note:nomdelacatégorie peut être tout en majuscule, tout en minuscule et séparé par des tirets bas(_).
J'ai éssayé:
Code:

RewriteRule ^(.*)\.php$   /categorie.php?categorie=$1 [L]
RewriteRule ^([a-z]*)\.php$   /categorie.php?categorie=$1 [L]
...

J'ai le droit soit à des 404 ou 500 Laughing ! Je ne comprend pas.
 
tryan Visiter le site web du posteur
webmasterlamogere
WRInaute accro
WRInaute accro

Inscrit le: 17 Déc 2006
Messages: 1623
Localisation: urlrewriting.fr

URL permanente de ce messagePosté le : Ven Mar 21, 2008 23:34    Sujet du message: Comment transformer une url ?

Code:
RewriteRule ^(.*)\.php$   /categorie.php?categorie=$1 [L]
RewriteRule ^([a-z]*)\.php$   /categorie.php?categorie=$1 [L]

les erreurs 500 c'est parce que ça boucle.
Il faut mettre :
Code:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z-]*)\.php$   /categorie.php?categorie=$1 [L]

les deux conditions c'est pour éviter que des url qui existent ne match avec cette condition.
attention de bien mettre ces lignes en fin de fichier htaccess car cette règle est très générale.

pour éviter que deux règles ne se marchent dessus, le mieux est que tes url rewrité soit avec un préfixe : par exemple cat- ou c-
 
webmasterlamogere Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

Inscrit le: 20 Fév 2005
Messages: 1207
Localisation: Planete terre

URL permanente de ce messagePosté le : Sam Mar 22, 2008 0:16    Sujet du message: Comment transformer une url ?

Grand merci webmasterlamogere Very Happy .

Enfin sa fonctionne, même si je n'ai pas tout comprit sur les règles d'écriture.
Mon htacces ressemble à sa maintenant:
Code:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)-(.*)-([0-9]*)\.php$   /page-site.php?rewriting=$1&champ=$2&id=$3 [L]

RewriteRule ^cat-([a-zA-Z-]*)\.php$   /categorie.php?categorie=$1 [L]


Je "travail" en sous dossier d'un site existant pour tester cela et c'est un peut galère quand d'une, on y comprend pas grand chose dans le rewriting et de deux, quand on s'aperçoit qu'une simple ligne dans un htaccess peut foutre le bordel sur tout un site ... Laughing
Milles merci de ta patience et de tes explications Wink
 
tryan Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 2 - Aller à la page 1, 2  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort