htacess et variables get

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

nina_bee
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 11
Inscription: 24 Juil 2007

htacess et variables get

Message le Mar Juil 31, 2007 11:01

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: Tout sélectionner
AddType x-mapp-php5 .php
Options +FollowSymlinks
RewriteBase /monsite/new/
RewriteEngine on
RewriteRule ^(.*)\.html$ /new/article.php?recherche=$1&ok=ok [NC]
RewriteRule ^membre.html$ /new/membre.php?id=$1 [L]

(je précise que la premiere règle de réécriture marche)
Merci d'avance de votre aide

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Message le Mar Juil 31, 2007 11:14

L'attribut QSA du mod_rewrite.
Cf. documentation.

nina_bee
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 11
Inscription: 24 Juil 2007

Message le Mar Juil 31, 2007 12:00

salut FloBaoti,
[QSA]:
Query String Append. Rajoute le QUERY_STRING à la fin de l’expression, après la réécriture. A réserver pour la dernière règle de réécriture. Utilisée le plus souvent avec le flag [L], comme dans [QSA,L]

je l'ai rajouté seul ou avec L mais ca ne marche pas.
Maintenant j'ai une erreur SQL:
erreur sql Unknown column 'membre' in 'where clause'.
Pourtant quand je remet l'url normale dans le lien, ma page s'affiche correctement. Pourquoi le navigateur considère t il membre comme un parametre de ma requette?

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Message le Mar Juil 31, 2007 12:10

Ton erreur SQL dit tout simplement que tu cherche un champ qui n'existe pas.
Dans ton WHERE, tu as quelquepart "membre='xx'", or tu n'as pas de colonne membre dans ta table.

Pour le QSA, c'est par exemple pour faire:
membre.html?variable=blabla&tralala=fff
avec membre.html qui redirige vers /new/membre.php par exemple.

nina_bee
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 11
Inscription: 24 Juil 2007

Message le Mar Juil 31, 2007 13:08

C'est sympa de m'aider ( je crois que je suis un cas désespéré...)
je viens de vérifier la requette qui permet d'afficher le formulaire pré-rempli:
Code: Tout sélectionner
   $select = "SELECT id, nom , prenom, jour, mois, an, adresse, tel, mail, code, statut FROM membres WHERE id=".$identite;

ou
Code: Tout sélectionner
$identite==mysql_real_escape_string($_GET['id']);

d'autre part si je change le lien
Code: Tout sélectionner
<a href="membre.html">
par
Code: Tout sélectionner
<a href="membre.php?<?php echo $identite?>"
ca fonctionne très bien...
Je ne comprend pas ce qui se passe...


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Mar Juil 31, 2007 13:32

je prend en compte que cette ligne marche, je vois pas l'id par contre. C'st normal ?
<a href="membre.php?<?php echo $identite?>"

>>>>>>>>>>>>>>


donc ton nouveau lien (sans marquer "id" dans l'url, je me suis basé sur l'ex du dessus):

exe : membre-25.html

Code: Tout sélectionner
<a href="membre-<?php echo $identite?>.html">


et ton htaccess

Code: Tout sélectionner
RewriteRule ^membre-([0-9]+)\.html$   /new/membre.php?$1 [L]

nina_bee
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 11
Inscription: 24 Juil 2007

Message le Mar Juil 31, 2007 15:49

désolé (erreur de frappe) mon lien normal est <a href="membre.php?id=<?php echo $identite ?>" et mon lien réécrit est membre.html


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Mar Juil 31, 2007 16:25

le lien:
Code: Tout sélectionner
<a href="membre-<?php echo $identite?>.html">


le htaccess:
Code: Tout sélectionner
RewriteRule ^membre-([0-9]+)\.html$   /new/membre.php?id=$1 [L]


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités