Probleme Rewriting et session

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

Alexandre B
Nouveau WRInaute
 
Messages: 6
Inscription: Ven Mar 16, 2007 16:03

Probleme Rewriting et session

Message le Ven Mar 16, 2007 16:18

Bonjour à tous,

Voilà j'ai un soucis, je développe un site marchand en php/mysql et pour l'accès aux fiches produits j'utilise l'url rewriting.

Mon htaccess :
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^produit-([0-9]+)-([0-9]+)-([a-zA-Z]+)-([a-zA-Z]+)-([a-zA-Z]+)\.php$ produit.php?id=$2&cat=$1 [L]


Le rewriting marche bien par exemple je suis sur la page d'accueil ou j'effectue
Code: Tout sélectionner
<?php session_start();
j'appelle la page produit-15-6-Autres-SONY-PIANO.php et j'accède bien à pa page produit.php?id=6&cat=15

Sur cette page produit je refais un session_start() pour recuperer les variables passées dans la session (email client ...).
Déja sur cette page produit impossible de lire le code source (ou très très long) et si je reclique sur un lien par exemple qui redirige vers la page d'accueil alors cette page met un temps fou à s'afficher (alors que très légère) et fais buguer le navigateur (IE, FIREFOX, OPERA).

Ce qui est marrant c'est que les sessions marchent bien, le rewriting aussi mais apparemment pas les deux en meme temps

C'est très énervant et mon projet prends du retard a cause de ça.

J'espère que quelqu'un pourra m'aiguiller, j'ai déja pas mal arpenter les forums mais sans trouver mon bonheur.

Merci beaucoup de m'avoir attribué un peu de votre temps. :lol:


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3311
Inscription: Mar Nov 16, 2004 18:27

Message le Sam Mar 17, 2007 5:58

Pour eviter ce genre de probleme, j'aurais deja commencer par coder comme ceci :

?id_article=$1&cat_article=$2
id_session
cat_session
....

Ensuite cette syntaxe n'est pas correcte :
Code: Tout sélectionner
^produit-([0-9]+)-([0-9]+)-([a-zA-Z]+)-([a-zA-Z]+)-([a-zA-Z]+)\.php$ produit.php?id=$2&cat=$1 [L]


de cette maniere c'est correcte :

Code: Tout sélectionner
RewriteRule ^produit-([0-9]+)-([0-9]+)\.php$ produit.php?id=$1&cat=$2 [L]


Puis autant rester dans les normes et mettre une extention html puisque c'est du rewrite:

Code: Tout sélectionner
RewriteRule ^produit-([0-9]+)-([0-9]+)\.html$ produit.php?id=$1&cat=$2 [L]


ce qui une url de ce type:

produit-25-bonbon.html

Mais bon ca fait desordre la categorie à la fin !!

Mon conseil :
Code: Tout sélectionner
RewriteRule ^produit-([0-9]+)-([0-9]+)\.html$ produit.php?cat=$1&id=$2 [L]


produit-bonbon-25.html

Alexandre B
Nouveau WRInaute
 
Messages: 6
Inscription: Ven Mar 16, 2007 16:03

Message le Lun Mar 19, 2007 11:27

Merci KOogar

je viens d'essayer mais c'est la meme chose. Toujours les memes problemes.

RewriteEngine on
RewriteRule ^produit-([0-9]+)-([0-9]+)\.html$ produit.php?cat=$1&id=$2 [L]


Lien produit
produit-15-6.html


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3311
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Mar 19, 2007 12:53

Tu veux dire que les liens ils marchent mais des que tu demarres une session, ca plante ?

Alexandre B
Nouveau WRInaute
 
Messages: 6
Inscription: Ven Mar 16, 2007 16:03

Message le Lun Mar 19, 2007 15:55

Voila c'est ça si j'enleve ce bout de code
Code: Tout sélectionner
<?php session_start();
if($_SESSION["test"]!="ok"){
   session_destroy();
   header("location: index.php");
}

en haut de ma page produit ca marche.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3311
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Mar 19, 2007 17:49

Je pense que tu dois avoir une variable en doublon ou une global mal parser. Maintenant je suis pas derriere ton ordi donc je peux pas trop t'aider, mais c'est clair que tu as une coquille quelque part, lol.

Fait des

echo $ma_variable;

pour debuger :wink:

Alexandre B
Nouveau WRInaute
 
Messages: 6
Inscription: Ven Mar 16, 2007 16:03

Message le Mar Mar 20, 2007 13:00

:roll: Ya de quoi venir timbré, j'ai simplifié les choses:

J'ai un dossier essai avec dedans le .htaccess:
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^produit-([0-9]+)-([0-9]+)\.html$ produit2.php?cat=$1&id=$2 [L]

Le fichier essai.php
Code: Tout sélectionner
<?php session_start(); ?>
<html>
<head>
<title>ESSAI</title>
</head>
<body>
<a href="produit-15-6.html">Op</a>
</body>
</html>


et le fichier produit2.php
Code: Tout sélectionner
<?php session_start(); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>ESSAI</title>
</head>
<body>
<?php echo $_GET["id"];
echo $_GET["cat"];
echo $_SESSION["test"];
echo $_SESSION["log"];
?>
<a href="essai.php">Accueil</a>
</body>
</html>


Et toujours le meme problème . :evil:


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3311
Inscription: Mar Nov 16, 2004 18:27

Message le Mar Mar 20, 2007 13:38

ouaip, il n'y a rien d'apparent qui puisse générer ton beug

et quand tu listes tes variables de sessions:

Code: Tout sélectionner
foreach($_SESSION as $key=>$val) { echo $key.'=>'.$val.'<p>';  }


aucun doublon avec tes variables GET ???

Code: Tout sélectionner
foreach($_GET as $key1=>$val1) { echo $key1.'=>'.$val1.'<p>';  }

Alexandre B
Nouveau WRInaute
 
Messages: 6
Inscription: Ven Mar 16, 2007 16:03

Message le Mar Mar 20, 2007 14:27

Voici le résultat :?

15cat_article=>15

Accueil


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3311
Inscription: Mar Nov 16, 2004 18:27

Message le Mar Mar 20, 2007 15:00

vu le resultat, je pense que tu dois avoir un probleme de declaration de variables plus haut dans ton code.

Si tu galeres encore, contact moi par MP.

Alexandre B
Nouveau WRInaute
 
Messages: 6
Inscription: Ven Mar 16, 2007 16:03

Message le Mar Mar 20, 2007 16:32

Non j'ai justement viré toutes les variables de session.


Bema
WRInaute discret
WRInaute discret
 
Messages: 84
Inscription: Mer Nov 30, 2005 10:57

pareil

Message le Mer Mar 21, 2007 14:10

Bonjour,
j'ai exactement le meme problème
je pense aussi que c situé un niveau du .htacces ... mais variable Session ne reste pas active ... c supre bizare
tu serais pas hébergé chez llord par hasard ?
( je me disais que ca viendrais peut etre de l'hébergeur meme le problème )
tiens moi au courant parceque je m'arrache les cheveux sur ce p*** de problème
Mo


julesdsl
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Lun Déc 08, 2003 16:56

Message le Jeu Mar 29, 2007 11:28

Bonjour,

Il s'agit d'un bug de PHP 4.4.1, nous avons mis PHP à jour avec la version 4.4.6 et le problème semble corrigé.

Pour plus d'info :
PHP 4.4.1+mod_rewrite

Cordialement.
Julian


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 1 invité