.htaccess/mod_rewrite : ou est ma variable?

.htaccess/mod_rewrite : ou est ma variable? - PHP - Programmation

Marsh Posté le 31-07-2007 à 14:02:28    

bonjour à tous,  
pour mon site j'aimerais utiliser l'url rewriting. J'ai une page qui affiche un formulaire pré-rempli en fonction des données de ma base affin que les membres puissent midifier leurs infromations. l'url normale de cette page est : www.monsite.com/new/membre.php?id=123 et je voudrais avoir:  
www.monsite.com/new/membre.html  
pour l'instant je retrouve bien ma page à www.monsite.com/new/membre.html mais le formulaire n'est pas prérempli (en fait ma variable ne pass plus) et j'ai une belle erreur SQL  
voila mon fichier.htaccess:

Code :
  1. AddType x-mapp-php5 .php
  2. Options +FollowSymlinks
  3. RewriteBase /monsite/new/
  4. RewriteEngine on
  5. RewriteRule ^(.*)\.html$ /new/article.php?recherche=$1&ok=ok [NC]
  6. RewriteRule ^membre.html$ /new/membre.php?id=$2 [QSA, L]


 
le lien dans ma page .php est membre.html
 
quand je teste j'ai une erreur SQL:
erreur sql Unknown column 'membre' in 'where clause'
 
Pourquoi mon navigateur considère 'membre ' comme un élément de ma requette SQL et comment faire pour voir ma page normalement?

Reply

Marsh Posté le 31-07-2007 à 14:02:28   

Reply

Marsh Posté le 31-07-2007 à 14:40:18    

Avec http://www.monsite.com/new/membre.html comment tu veux que ton script sache quel membre tu veux afficher ? [:pingouino]  
 
J'utilise pas souvent QSA mais je verrais plutôt un truc comme ça si tu veux l'utiliser :
RewriteRule ^membre.html$ /new/membre.php [QSA, L]  
 
(ptête rajouter un "?" après "membre.php" )
 
Et après tu l'appelles avec membre.html?id=123 mais ça n'a pas un intérêt grandiose. [:petrus75]  
 
Pourquoi pas :
RewriteRule ^membre-([0-9]+).html$ /new/membre.php?id=$1 [L]
 
?
 
Ensuite t'y vas avec membre-123.html. :spamafote:


Message édité par sielfried le 31-07-2007 à 14:41:21

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 31-07-2007 à 17:06:40    

salut sielfried,
merci de m'aider!!!
bon alors j'ai copié ta ligne et ca marche pas avec [QSA, L]. J'ai une erreur 500.
si je met juste le drapeau [L] j'ai encore la meme erreur sql :

Citation :

erreur sql Unknown column 'membre' in 'where clause'

.
As tu une autre idée?

Reply

Marsh Posté le 31-07-2007 à 19:58:15    

Vire l'espace après la virgule.
 
Mais là avec ton truc faudra y accéder avec membre.html?id=... hein.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 01-08-2007 à 04:08:23    

tiens c'est le moment de partager une méthode différente pour l'url-rewriting avec php
dans le .htaccess, juste

Code :
  1. <files admin>
  2.         ForceType application/x-httpd-php
  3.         AcceptPathInfo On
  4. </files>

plus le reste de la config du serveur qui va bien ...
 
Et ensuite, on peut appeler www.monsite.com/entry/ce_qu_on_veu [...] émentaires
 
le fichier d'entrée sera "entry"
et on récupère "/ce_qu_on_veut_avec/ou/sans_slash_ssupplémentaires" dans la variable $_SERVER["PATH_INFO"]
 
Du coup, on peut avoir une partie membre dans le site et appeler www.monsite.com/membre/new/123 ... ce qui est très joli et on a pas à de farcir la syntaxe de l'url-rewriting
 
EDIT: bon le message existe puisque je l'édite par contre il n'affiche rien c'est quand même super bizare :??:  :??:  :??:  :??:  :??:


Message édité par TheRom_S le 01-08-2007 à 20:59:37

---------------
The Rom's, à votre service
Reply

Marsh Posté le 01-08-2007 à 20:49:48    

EDIT: Message de TheRom_s:
 
tiens c'est le moment de partager une méthode différente pour l'url-rewriting avec php
dans le .htaccess, juste

Code :
  1. <files admin>
  2.         ForceType application/x-httpd-php
  3.         AcceptPathInfo On
  4. </files>
  5. plus le reste de la config du serveur qui va bien ...
  6. Et ensuite, on peut appeler www.monsite.com/entry/ce_qu_on_veu [...] émentaires
  7. le fichier d'entrée sera "entry"
  8. et on récupère "/ce_qu_on_veut_avec/ou/sans_slash_ssupplémentaires" dans la variable $_SERVER["PATH_INFO"]


 
Du coup, on peut avoir une partie membre dans le site et appeler www.monsite.com/membre/new/123 ... ce qui est très joli et on a pas à de farcir la syntaxe de l'url-rewriting
 
EDIT: bon le message existe puisque je l'édite par contre il n'affiche rien c'est quand même super bizare :??:  :??:  :??:  :??:  :??:


Message édité par ViMx le 01-08-2007 à 21:01:01
Reply

Marsh Posté le 01-08-2007 à 20:53:56    

C'est super bizarre  :heink:

Reply

Marsh Posté le 01-08-2007 à 20:56:19    

lol  :pt1cable:  :pt1cable:  :love:  :love:  :bounce:


---------------
The Rom's, à votre service
Reply

Marsh Posté le 01-08-2007 à 21:21:58    

La couleur elle débarque d'où aussi :??:

Reply

Marsh Posté le 03-08-2007 à 14:46:33    

ViMx > La couleur elle débarque du fait qu'en C, la tilde sert à débuter et terminer les chaines de caractères. A retenir : [ code ] <> [ quote ]
 
nina dj >  

Citation :

RewriteRule ^(.*)\.html$ /new/article.php?recherche=$1&ok=ok [NC]

veut dire que le texte correspondant au .* sera mise dans "recherche". Par exemple pour "www.monsite.com/new/membre.html" t'auras au mieux "/new/article.php?recherche=membre&ok=ok"
 

Citation :

RewriteRule ^membre.html$ /new/membre.php?id=$2 [QSA, L]

veut dire que les paramètres seront rajouter à la fin de l'adresse . Comme il n'y a pas de parentaise dans ta règle, $2 sera toujours vide et du coup au niveau de php, id sera toujours vide.
Au final pour l'adresse "www.monsite.com/new/membre.html?toto=12" t'auras droit à un bel "/new/membre.php?id=&toto=12".
 
PS : Je n'arrive plus à me rappeler si on aura "www.monsite.com/new/membre" ou juste "membre" dans le $1 de la première règle.

Reply

Marsh Posté le 03-08-2007 à 14:46:33   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed