Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Quelles sont les bases pour créer un site dynamique?

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: 1087
Localisation: Planete terre

URL permanente de ce messagePosté le : Jeu Mar 27, 2008 16:05    Sujet du message: Quelles sont les bases pour créer un site dynamique?

Bonjour,

J'essaye depuis près de 2 semaines de me créer un site web dynamique géré uniquement avec php+ base de données.

Malgré plusieurs tentatives, je me retrouve toujours bloqué au niveau de la transmission de variable par l'url. Sinon dit, soit à cause du titre de la page, soit à cause du nom de la catégorie.
Celles si sont stockés en bd et contient forcément des caractères accentués, des apostrophes, des espaces ou autre lettre comme le "ç"... bref le résultat est que je finit toujours par obtenir des url pourrit avec des (r%E9f%E9) et j'en passe Mad !
J'ai tenté le rewriting mais sans grand succès et de toute façon vue le titre transmit, il m'est impossible de récupérer les données par la suite.
Par exemple pour un titre transmit qui serait "création d'un site dynamique" je vais obtenir une url du genre .../page.php?titre=cr%C3%A9ation+d'un+site+dynamique
Je fait comment après, je case des str_replace() partout Question
Et pour rewriter sa .. c'est possible Question
Bon je suppose qu'il me manque quelque chose mais je ne sais pas quoi !!
----------------------------------------------------------------------------------

Pour continuer:
Supposons une page nommé page_site.php .
Je transmet l'id par url soit page_site.php?id=2427 qui fait correspondre au titre "Création d'un site dynamique".
Un coup de rewrite:
Code:

RewriteRule -s([0-9]*)\.html$  page_site.php?id=$1 [L]

L'url obtenue donne alors ../creation-d-un-site-dynamique-s2427.html

Qu'est ce qui fait que j'obtient le titre dans l'url de la page alors que je transmet uniquement l'id Question

J'aimerais vraiment comprendre pour avancer ...merci.
 
tryan Visiter le site web du posteur
nickargall
WRInaute accro
WRInaute accro

Inscrit le: 13 Juin 2005
Messages: 2927
Localisation: Exilé au Groland à cause de Joe Dalton

URL permanente de ce messagePosté le : Jeu Mar 27, 2008 16:52    Sujet du message: Quelles sont les bases pour créer un site dynamique?

Ben, le lien qui fait appel doit surement etre de la forme
Code:
<a href="/creation-d-un-site-dynamique-s2427.html ">blalabla</a>
... non ?
 
nickargall Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

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

URL permanente de ce messagePosté le : Jeu Mar 27, 2008 17:19    Sujet du message: Quelles sont les bases pour créer un site dynamique?

Heuuuu .. c'est blindé de fonction que je ne comprend pas !!
Ce que je ne pige pas:
Quand on transmet une seule info par url soit l'id "page_site.php?id=2427" pour trouver les informations du site, comment peut on se retrouver ensuite après rewriting avec 2 infos soit le titre+l'id dans l'url ? L'id, ok puisqu'elle est transmise mais le titre ... ? On ne peut rewriter que ce qui est transmit ..non ?

Et pour la première partie, une solution, une suggestion ?
Merci
 
tryan Visiter le site web du posteur
nickargall
WRInaute accro
WRInaute accro

Inscrit le: 13 Juin 2005
Messages: 2927
Localisation: Exilé au Groland à cause de Joe Dalton

URL permanente de ce messagePosté le : Jeu Mar 27, 2008 17:40    Sujet du message: Quelles sont les bases pour créer un site dynamique?

oui, on ne peut réécrire que ce qui est transmis, donc le titre de la page est transmis par le bout de code qui crée ton lien HTML.

Pour la première partie, fais des recherches sur url_encode() en php
 
nickargall Visiter le site web du posteur
webmasterlamogere
WRInaute accro
WRInaute accro

Inscrit le: 17 Déc 2006
Messages: 1143
Localisation: Montpellier & Lyon

URL permanente de ce messagePosté le : Jeu Mar 27, 2008 18:02    Sujet du message: Quelles sont les bases pour créer un site dynamique?

le plus simple est de récupérer le titre à partir de l'id dans la base de données.
 
webmasterlamogere Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

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

URL permanente de ce messagePosté le : Jeu Mar 27, 2008 19:04    Sujet du message: Quelles sont les bases pour créer un site dynamique?

nickargall a écrit:
oui, on ne peut réécrire que ce qui est transmis, donc le titre de la page est transmis par le bout de code qui crée ton lien HTML.

Pour la première partie, fais des recherches sur urlencode() en php

J'ai regardé cette fonction qui dit que sa remplace les caractères non alpha-numériques en % suivi de deux chiffres hexadécimaux et les espaces par des +.
Code:
$titre=urlencode($titre);

Donc si je transmet le titre "création d'un site dynamique" par url avec cette fonction soit page.php?titre=cr%C3%A9ation+d'un+site+dynamique, je vais pouvoir récupérer ensuite mon titre telle qu'il l'est au point de départ soit "création d'un site dynamique" avec la fonction urldecode() ?
D'autre part, peut on rewriter ce genre d'url sachant que sa donnera un truc du genre
Code:

...
<a href="'.$titre.'.php">blalabla</a>
...
Qui donnera:
<a href="cr%C3%A9ation+d'un+site+dynamique.php">blalabla</a>
Question Question

webmasterlamogere a écrit:
le plus simple est de récupérer le titre à partir de l'id dans la base de données.

Je veux bien que tu m'explique parce que la je suis largué..
Sa sous entend qu'il faut récupérer le titre de la page pour ensuite pouvoir le transmettre Question
Merci
 
tryan Visiter le site web du posteur
nickargall
WRInaute accro
WRInaute accro

Inscrit le: 13 Juin 2005
Messages: 2927
Localisation: Exilé au Groland à cause de Joe Dalton

URL permanente de ce messagePosté le : Jeu Mar 27, 2008 19:26    Sujet du message: Quelles sont les bases pour créer un site dynamique?

Bon on reprend :

- ta page A affiche un lien
Code:

<?php
echo '<a href="'.$titredelanews.'-".$iddelanews".">lablabla</a>';
?>

Pour que $titredelanews passe bien dans l'URL, faut y virer ou remplacer tout caractère spécial et accents au préalable (et les tirets aussi, on a besoin qu'y en ait qu'un pour la suite) .

Ensuite, ta règle de réécriture:
Code:

RewriteRule  ^(.*)-([0-9]*)\.html$  page_site.php?id=$2 [L]

...fera que ta page B de destination récupérera l'id passé dans l'argument, ce qui te suffira à trouver le contenu correspondant.
En bref, on se moque de récupérer le $titredelanews dans l'URL, on récupere que $2 qui correspond à la variable php $iddelanews.

Ce que Lamogere veut dire, c'est qu'il ne faut pas essayer de récupérer le titre de la news depuis celui qui est passé par l'URL, mais faire sur la page B une requete SQL sur l'id de la news (que tu récupères facilement) pour ressortir le titre du contenu que tu cherches.

Il te reste plus qu'à trouver une fonction qui enlèvera tous les caractères pas beaux dans le code qui écrit le lien de la page A.

C'est plus clair ?


Dernière édition par nickargall le Ven Mar 28, 2008 2:20; édité 1 fois
 
nickargall Visiter le site web du posteur
webmasterlamogere
WRInaute accro
WRInaute accro

Inscrit le: 17 Déc 2006
Messages: 1143
Localisation: Montpellier & Lyon

URL permanente de ce messagePosté le : Jeu Mar 27, 2008 19:28    Sujet du message: Quelles sont les bases pour créer un site dynamique?

il faut une table avec comme clé id et contenant une colonne titre
ainsi l'url un-url-avec-un-titre-01.html est rewritée en affiche_id.php?id=01 avec la règle :
Code:
RewriteRule ^(.*)-([0-9]*)\.html$ /affiche_id.php?id=$1 [L]

le script affiche_id.php récupère le titre dans la table a partir de l'id en paramètre et fait ensuite ce que tu veux.
 
webmasterlamogere Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

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

URL permanente de ce messagePosté le : Jeu Mar 27, 2008 20:15    Sujet du message: Quelles sont les bases pour créer un site dynamique?

Je vous remercie pour vos réponses mais je dois avoué avoir du mal, alors je teste, je teste ...et j'ai mal au crane ^^.

Question peut être conne mais question quand même:
Peut on tester sa avec juste 3 fichiers sans passer par sql genre index.php contenant :
Code:

<?php
$titre="création d'un site dynamique";
$id="2477";
echo'<a href="page.php?titre='.$titre.'&id='.$id.'">'.$titre.'</a><br>';
echo'<a href="'.$titre.'-'.$id.'.php">'.$titre.'</a>';
?>

Une page "page.php" pour recup les données et le htaccess avec la règle:
Code:

RewriteRule  ^(.*)-([0-9])+\.php$  page.php?id=$2 [L]

Rolling Eyes Rolling Eyes Rolling Eyes
 
tryan Visiter le site web du posteur
Alifba
WRInaute discret
WRInaute discret

Inscrit le: 04 Fév 2008
Messages: 68
Localisation: Paris

URL permanente de ce messagePosté le : Jeu Mar 27, 2008 20:30    Sujet du message: Quelles sont les bases pour créer un site dynamique?

Salut,

Ne serait-ce pas plus simple de mettre dans la base un champs contenant un identifiant textuel qui n'aurait alors ni accents ni caractères spéciaux ?
 
Alifba Visiter le site web du posteur
phpmikedu83
WRInaute accro
WRInaute accro

Inscrit le: 06 Aoû 2005
Messages: 1259
Localisation: LE LAVANDOU

URL permanente de ce messagePosté le : Jeu Mar 27, 2008 22:42    Sujet du message: Quelles sont les bases pour créer un site dynamique?

mais un passage par là :

http://www.siteduzero.com/tuto-3-4-0-un-site-dynamique-avec-php.html

ne serait pas si mal... Il ne faut pas être rebuté par le nom du site... Malheureusement, on ne naît pas en sachant programmer en PHP+MySQL
 
phpmikedu83 Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

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

URL permanente de ce messagePosté le : Ven Mar 28, 2008 1:34    Sujet du message: Quelles sont les bases pour créer un site dynamique?

phpmikedu83 a écrit:
mais un passage par là :

http://www.siteduzero.com/tuto-3-4-0-un-site-dynamique-avec-php.html

ne serait pas si mal... Il ne faut pas être rebuté par le nom du site... Malheureusement, on ne naît pas en sachant programmer en PHP+MySQL

Houuu, je sent un ton narcissique la dessous Laughing ^^.
Je connais ce site et il est très bon... cependant il ne répond pas à mon interrogation. Moi ce qui me gène c'est le passage de variable contenant des accent,espace et autre caractère...
Si je fais un lien depuis mon menu:
Code:

$titre="création d'un site dynamique";
echo'<a href="page.php?titre='.$titre.'">'.$titre.'</a>';
 

Puis dans ma page de destination un truc du style $titre=$_GET["titre"]; et dans ma requête de récupération je fait un ("SELECT $titre FROM mon_champs WHERE titre=$titre") je me retrouve forcément n*ké puisque je vais me retrouvé avec des caractères bizarre dans l'url !
J'ai l'impression de ne pas me faire comprendre .. c'est le cas ?
J'ai beau utiliser urlencode et tout ce qui sens suis, mon titre transmit par url n'ai jamais le bon Confused .
Bon, suite à sa, je veux passer une couche de rewriting pour obtenir une zolie url !
La seule solution que j'ai trouvé est d'ajouter un nouveau champ qui enregistre le titre en remplacent tout ce qui m'ennuie avec la fonction str_replace() de façon à obtenir un titre du genre creation_d_un_site_dynamique .

Je ne suis pas contre un dessin ou un exemple concret Laughing
 
tryan Visiter le site web du posteur
nickargall
WRInaute accro
WRInaute accro

Inscrit le: 13 Juin 2005
Messages: 2927
Localisation: Exilé au Groland à cause de Joe Dalton

URL permanente de ce messagePosté le : Ven Mar 28, 2008 2:00    Sujet du message: Quelles sont les bases pour créer un site dynamique?

Tu ne pourras pas récupérer un zouli titre en le récupérant depuis l'URL, vu que les caracteres spéciaux et les caracteres accentués auront été traités par les fonctions faites pour les modifier. et donc tu ne pourras pas récupérer un article de ta base de données en te basant sur ce titre modifiée passée dans l'URL.

Il te faut donc récupérer le contenu de l'enregistrement voulu dans ta base à partir de l' id que tu transmets par l'URL.

A partir de cet 'id' qui est unique, et que tu récupères facilement par l'URL, ben tu récupères l'enregistrement de la base de données qui correspond à cet ID. Ya pas plus simple.
Code:

$select="SELECT `id`,`titre`, `article`, [... tous les champs que tu veux récupérer...]  FROM ma_table WHERE `id`=$id";
$result=mysql_query($select);
$row=mysql_fetch_array($result);
$titre=$row['titre'];


C'est le contenu de la base de données qui te donnera ton $titre, et non ce qui passe dans l'URL.
Bon bien sur si le titre n'est pas présent dans l'enregistrement de la base de données, c'est rapé.

Précision : Le passage du titre modifié dans l'URL n'a quasiment jamais pour vocation à être récupéré; seulement à être présent dans l'URL de la page (histoire que cette URL comporte des "mots" qui avec un peu de chance sont des mots clés demandés par les internautes...

Mais bon c'est tellement peu important d'avoir des mots clés dans l'URL que tu pourrais t'en passer ... vu les soucis que ça te cause Smile

Autre précision : tu parles d'utiliser la réécriture d'URL pour en avoir une jolie (d'URL Rolling Eyes), mais ce n'est pas le but de la réécriture d'URL. La réécriture va permettre au serveur de savoir que si tu appelles /une,zoulie,url-1.html ; il devra lui lancer la page /page.php?id=1. Le reste, "une,zouile,url " , tu t'en bats les steacks, comme disent les djeunes de mon patelin.T'as pas à la récupérer en $_GET, ça sert à rien.

d'ailleurs, la règle que je te proposais te permettait pas de récupérer le titre en $_GET, vu que ça sert à rien du tout :

Code:

RewriteRule  ^(.*)-([0-9])+\.php$  page.php?id=$2 [L]

ya qu'un paramètre dans la partie droite de la règle, et c'est l'ID, qui est la seule chose que tu aies besoin de récupérer dans l'URL (bon voilà je l'ai dit 3 fois, ca devrait aller cette fois ci Smile )

Et pour finir pour aujourd'hui, un lien sur une discussion abordant la transformation de chaine de caracteres pour virer les accents et caracteres spéciaux :

http://www.webrankinfo.com/forums/viewtopic_83127.htm

désolé je peux pas faire plus pour toi ... bon courage
 
nickargall Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

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

URL permanente de ce messagePosté le : Ven Mar 28, 2008 2:27    Sujet du message: Quelles sont les bases pour créer un site dynamique?

nickargall a écrit:
Tu ne pourras pas récupérer un zouli titre en le récupérant depuis l'URL, vu que les caracteres spéciaux et les caracteres accentués auront été traités par les fonctions faites pour les modifier. ...

Bon au moins comme sa c'est clair!
nickargall a écrit:
A partir de cet 'id' qui est unique, qui est relié au titre de l'article, et que tu récupères facilement par l'URL, ben tu récupères le titre associé .. à partir de la base de données.

$select="SELECT `id`,`titre` FROM ma_table WHERE `id`=$id";

C'est le contenu de la base de données qui te donnera ton titre, et non celui passé dans l'URL

Je suis daccord mais je vais me retrouver avec une url pourrit contenant uniquement l'id !

nickargall a écrit:
Le passage du titre modifié dans l'URL n'a quasiment jamais pour vocation à être récupéré; seulement à être présent dans l'URL de la page (histoire que cette URL comporte des "mots" qui avec un peu de chance sont des mots clés demandés par les internautes...

Et bien justement, c'est ce que je veux faire. Je préfère avoir une url du style /mes-mot-clef.php que /125.php et forcement, c'est la dessus que je bute .
nickargall a écrit:

Mais bon c'est tellement peu important d'avoir des mots clés dans l'URL que tu pourrais t'en passer ... vu les soucis que ça te cause Smile

J'ai toujours crus comprendre le contraire ..Exclamation
nickargall a écrit:

Enfin, tu parles de réécriture d'URL pour en avoir une jolie (d'URL Rolling Eyes), mais ce n'est pas le but de la réécriture d'URL. La réécriture va permettre au serveur de savoir que si tu appelles /une,zoulie,url-1.html ; il devra lui lancer la page /page.php?id=1.

Oui j'ai bien comprit sa mais je reste butté sur le faite qu'avoir une url contenant des mots clés en rapport avec le contenue de la page est important ...dailleurs sa ma toujours réussit de cette façon Razz .
nickargall a écrit:

Et pour finir pour aujourd'hui, un lien sur une discussion abordant la transformation de chaine de caracteres pour virer les accents et caracteres spéciaux :
http://www.webrankinfo.com/forums/viewtopic_83127.htm

Je vais allez lire sa ... après ma nuit de sommeil ^^
nickargall a écrit:

désolé je peux pas faire plus pour toi ...

C'est déjà pas mal Wink , merci.

J'insiste un peut:Comment font alors les annuaires pour obtenir le titre du site dans la page alors qu'uniquement l'id est transmise ??
 
tryan Visiter le site web du posteur
darkjukka
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 28 Avr 2007
Messages: 172

URL permanente de ce messagePosté le : Ven Mar 28, 2008 5:09    Sujet du message: Quelles sont les bases pour créer un site dynamique?

Code:
function filter($in) {
      $search = array ('@[B]@i','@[D]@i','@[F]@i','@[G]@i','@[H]@i','@[J]@i','@[K]@i','@[L]@i','@[M]@i','@[N]@i','@[P]@i','@[Q]@i','@[R]@i','@[S]@i','@[T]@i','@[V]@i','@[W]@i','@[X]@i','@[Y]@i','@[Z]@i','@[éèêëÊËE]@i','@[àâäÂÄA]@i','@[îïÎÏI]@i','@[ûùüÛÜU]@i','@[ôöÔÖO]@i','@[çC]@i','@[ ]@i','@[^a-zA-Z0-9_]@');
      $replace = array ('b','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z','e','a','i','u','o','c','_','');
      return preg_replace($search, $replace, $in);
   }

Ca te permet de virer les caractères spéciaux et les majuscules Wink

Après pour tes url il te suffis de faire :
Code:
<a href="'.$data['id'].'-'.filter($data['titre']).'.php">

et hop, ça roule! (C'est le système mis en place sur mon www Wink)
 
darkjukka 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    

Définitions :

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