hschalle78
Messages postés4Date d'inscriptionmercredi 22 octobre 2008StatutMembreDernière intervention26 octobre 2008 26 oct. 2008 à 18:47
Twisteurwin > En fait, quand tu te trouves sur la page d'accueil du site Alleraugolf.com et que tu vas sur regions/index2.php, dans ce fichier se trouve la fonction OptimiseURL.
J'affiche les régions grâce à une fonction do...while.
Par contre, lorsque je clique sur une des régions et que je me dirige sur la page des clubs de golf concernés par la région, la fonction n'est pas présente.
Pour afficher les clubs de la région concernée, ( region.php ), cela se passe en plusieurs temps :
1 - Je fais une réquète à partir de la table région pour sélectionner la région que j'ai choisi
2 - Si la 1ère requète est vraie, Je fais une réquète à partir de la table clubs pour afficher les clubs de golf de cette même région.
Par contre, je n'utilise pas la fonction OptimiseURL dans ce deuxième fichier region.php.
J'espère que je suis assez clair dans mes explications. :-)
Merci de ton aide.
A++
cs_twisteurwin
Messages postés167Date d'inscriptionmardi 21 septembre 2004StatutMembreDernière intervention 2 mai 2009 24 oct. 2008 à 01:42
hschalle78 > pas de quoi, mais ce que tu récupères depuis ta tbl club (un while surrement )tu appliques bien ta fonction non ?
hschalle78
Messages postés4Date d'inscriptionmercredi 22 octobre 2008StatutMembreDernière intervention26 octobre 2008 23 oct. 2008 à 23:06
Merci beaucoup twisteurwin pour ta réponse et le temps que tu y consacres.
En fait pour rentrer dans le détail, quand tu arrives sur la page d'accueil et que tu cliques sur les régions, tu appelles le contenu de la table regions et ensuite lorsque tu cliques sur une région particulière, ca appelle la table clubs pour les clubs de golf étant dans la région sur laquelle l'internaute a cliqué.
Mais en tout cas, il y a une table région et une table clubs avec un champ region.
Ce qui me surprend, c'est que ce que j'ai fait jusqu'à présent fonctionne très bien pour toutes les régions sauf celles qui s'affichent avec des accents ou des espaces, excepté donc pour Rhône-Alpes, Pays de la Loire et Nord Pas de Calais.
Par contre, si tu vas sur les fichiers en ligne regions/index.php, tu verras qu'en cliquant sur n'importe quelle région cela fonctionne mais c'est sans la réécriture d'URL.
Mon problème n'est pas dans la réécriture de l'URL mais dans la récupération du contenu de la table clubs correspondant à la région sélectionnée, dans le cadre de la réécriture.
J'espère que mes explications sont assez claires.
Merci encore une fois de ton aide. Si tu souhaites soumettre le problème à tes potes, n'hésite surtout pas.
A++
cs_twisteurwin
Messages postés167Date d'inscriptionmardi 21 septembre 2004StatutMembreDernière intervention 2 mai 2009 22 oct. 2008 à 22:09
petite correction adaptée pour ton site:
fichier [.htaccess] v2 :p comme ton index2.php est dans le dossier regions, laisse le htaccess a la racine :)
RewriteEngine on
RewriteRule ^/?regions/golf-([a-zA-Z-]+)\.html$ regions/region.php?region=$1 [NC,L]
voilà bon dev et dis moi si tu as un soucis +++
cs_twisteurwin
Messages postés167Date d'inscriptionmardi 21 septembre 2004StatutMembreDernière intervention 2 mai 2009 22 oct. 2008 à 21:55
salut hschalle78,
Tu as deux souçis,
1) ton fichier .htaccess
2) tu ne test pas tes var en réception sur la page region.php ( if(isset($_GET['region'])){.... ) apparition de "> inexpliquée...
Voici la solution que je te propose pour ton cas de figure en supposant que ton fichier .htaccess est à la racine de ton site:
fichier [.htaccess]
RewriteEngine on
RewriteRule ^/?golf-([a-zA-Z-]+)\.html$ regions/region.php?region=$1 [NC,L]
fichier [index2.php]
<?php
// ta fonction
function OptimiseUrl($chaine)
{
$chaine = strtolower(strtr($chaine,'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ', 'aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn'));
$chaine = preg_replace('#[^a-z0-9_-]#','-',$chaine); while (strpos($chaine,'--') !false) $chaine str_replace('--','-',$chaine);
return $chaine;
}
// regions censées etre récupérée de la bdd, ici pour faire des test hein :)
$var1 ='Bretagne';
$var2 ='Centre';
$var3 ='Champagne-Ardenne';
$var4 ='Rhône-Alpes';
$var5 ='Nord Pas de Calais';
$var6 ='Pays de la Loire';
fichier [region.php] situé dans ton dossier => ./regions/region.php
<?php
// test si la var existe + affichage :p ou non o_O
if(isset($_GET['region'])){echo $_GET['region'];}else{echo 'piti probleme o_O => '.$_GET['region'];}
?>
Fais un test avec ça et adapte à ton site si ca marche :)
hschalle78
Messages postés4Date d'inscriptionmercredi 22 octobre 2008StatutMembreDernière intervention26 octobre 2008 22 oct. 2008 à 20:39
Bonjour,
J'essaie désespérement de mettre en place l'URL rewriting sur mon site alleraugolf.com.
J'y suis presque. Cependant, j'ai des soucis avec les espaces et caractères accentués.
Il y donc trois éléments :
- le site en lui-même
- la page index ( en l'occurence index2.php pour les essais avant mise en ligne )
- le fichier .htaccess
Si vous allez sur la page http://www.alleraugolf.com/regions/index2.php, vous tombez sur la liste des régions. Lorsque l'on pointe la souris sur l'ensemble des régions, la réécriture se fait bien.
Par contre, lorsque l'on clique sur les régions Rhône Alpes, Nord Pas de Calais, et Pays de la Loire, on atterrit sur une page aux bonnes couleurs mais qui n'affiche pas le contenu souhaité, à savoir la liste des golfs de la région concernée.
Pour mettre en place cette réécriture, j'ai donc utilisé deux choses :
- le fichier .htaccess qui contient les éléments suivants :
RewriteEngine on
RewriteRule ^golf-([a-z\-]+)\.html$ /regions/region.php?region=$1 [L]
- la fonction suivante dans le fichier affichant la liste des régions :
function OptimiseUrl($chaine)
{
$chaine = strtolower(strtr($chaine,'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ', 'aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn'));
$chaine = preg_replace('#[^a-z0-9_-]#','-',$chaine);
while (strpos($chaine,'--') !false) $chaine str_replace('--','-',$chaine);
return $chaine;
}
Quelqu'un pourrait-il me filer un coup de main pour résoudre mon problème ?
Je vous remercie et reste à votre dispo.
A++
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 23 févr. 2008 à 18:43
on devrait placer ca sur codyx, on aurait alors une bonne dizaine d'astuces pour repondre a ce probleme... et on pourrait le faire dans plusieurs langages
cs_twisteurwin
Messages postés167Date d'inscriptionmardi 21 septembre 2004StatutMembreDernière intervention 2 mai 2009 23 févr. 2008 à 18:39
Yop, si la mienne peut intéresser on sait jamais ^^
function convertion_pour_url($chaine){
// convertion des accents => sans accents + trim vire espaces => $chaine
$string = strtr(trim($chaine),
'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ',
'aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn');
// convertion des espaces en -
$string = eregi_replace('[^a-z0-9]','-', $string);
return $string;
}
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 22 févr. 2008 à 18:01
vous avez oublier le <? qui doit-etre remplace par <?php
cs_garfield90
Messages postés388Date d'inscriptionlundi 7 juillet 2003StatutWebmasterDernière intervention10 février 2009 22 févr. 2008 à 17:03
26 oct. 2008 à 18:47
J'affiche les régions grâce à une fonction do...while.
Par contre, lorsque je clique sur une des régions et que je me dirige sur la page des clubs de golf concernés par la région, la fonction n'est pas présente.
Pour afficher les clubs de la région concernée, ( region.php ), cela se passe en plusieurs temps :
1 - Je fais une réquète à partir de la table région pour sélectionner la région que j'ai choisi
2 - Si la 1ère requète est vraie, Je fais une réquète à partir de la table clubs pour afficher les clubs de golf de cette même région.
Par contre, je n'utilise pas la fonction OptimiseURL dans ce deuxième fichier region.php.
J'espère que je suis assez clair dans mes explications. :-)
Merci de ton aide.
A++
24 oct. 2008 à 01:42
23 oct. 2008 à 23:06
En fait pour rentrer dans le détail, quand tu arrives sur la page d'accueil et que tu cliques sur les régions, tu appelles le contenu de la table regions et ensuite lorsque tu cliques sur une région particulière, ca appelle la table clubs pour les clubs de golf étant dans la région sur laquelle l'internaute a cliqué.
Mais en tout cas, il y a une table région et une table clubs avec un champ region.
Ce qui me surprend, c'est que ce que j'ai fait jusqu'à présent fonctionne très bien pour toutes les régions sauf celles qui s'affichent avec des accents ou des espaces, excepté donc pour Rhône-Alpes, Pays de la Loire et Nord Pas de Calais.
Par contre, si tu vas sur les fichiers en ligne regions/index.php, tu verras qu'en cliquant sur n'importe quelle région cela fonctionne mais c'est sans la réécriture d'URL.
Mon problème n'est pas dans la réécriture de l'URL mais dans la récupération du contenu de la table clubs correspondant à la région sélectionnée, dans le cadre de la réécriture.
J'espère que mes explications sont assez claires.
Merci encore une fois de ton aide. Si tu souhaites soumettre le problème à tes potes, n'hésite surtout pas.
A++
22 oct. 2008 à 22:09
fichier [.htaccess] v2 :p comme ton index2.php est dans le dossier regions, laisse le htaccess a la racine :)
RewriteEngine on
RewriteRule ^/?regions/golf-([a-zA-Z-]+)\.html$ regions/region.php?region=$1 [NC,L]
voilà bon dev et dis moi si tu as un soucis +++
22 oct. 2008 à 21:55
Tu as deux souçis,
1) ton fichier .htaccess
2) tu ne test pas tes var en réception sur la page region.php ( if(isset($_GET['region'])){.... ) apparition de "> inexpliquée...
Voici la solution que je te propose pour ton cas de figure en supposant que ton fichier .htaccess est à la racine de ton site:
fichier [.htaccess]
RewriteEngine on
RewriteRule ^/?golf-([a-zA-Z-]+)\.html$ regions/region.php?region=$1 [NC,L]
fichier [index2.php]
<?php
// ta fonction
function OptimiseUrl($chaine)
{
$chaine = strtolower(strtr($chaine,'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ', 'aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn'));
$chaine = preg_replace('#[^a-z0-9_-]#','-',$chaine); while (strpos($chaine,'--') !false) $chaine str_replace('--','-',$chaine);
return $chaine;
}
// regions censées etre récupérée de la bdd, ici pour faire des test hein :)
$var1 ='Bretagne';
$var2 ='Centre';
$var3 ='Champagne-Ardenne';
$var4 ='Rhône-Alpes';
$var5 ='Nord Pas de Calais';
$var6 ='Pays de la Loire';
// tes liens
echo '[golf-',OptimiseUrl($var1),'.html ',$var1,']
',"\r\n"
,'[golf-',OptimiseUrl($var2),'.html ',$var2,']
',"\r\n"
,'[golf-',OptimiseUrl($var3),'.html ',$var3,']
',"\r\n"
,'[golf-',OptimiseUrl($var4),'.html ',$var4,']
',"\r\n"
,'[golf-',OptimiseUrl($var5),'.html ',$var5,']
',"\r\n"
,'[golf-',OptimiseUrl($var6),'.html ',$var6,']
',"\r\n";
?>
fichier [region.php] situé dans ton dossier => ./regions/region.php
<?php
// test si la var existe + affichage :p ou non o_O
if(isset($_GET['region'])){echo $_GET['region'];}else{echo 'piti probleme o_O => '.$_GET['region'];}
?>
Fais un test avec ça et adapte à ton site si ca marche :)
22 oct. 2008 à 20:39
J'essaie désespérement de mettre en place l'URL rewriting sur mon site alleraugolf.com.
J'y suis presque. Cependant, j'ai des soucis avec les espaces et caractères accentués.
Il y donc trois éléments :
- le site en lui-même
- la page index ( en l'occurence index2.php pour les essais avant mise en ligne )
- le fichier .htaccess
Si vous allez sur la page http://www.alleraugolf.com/regions/index2.php, vous tombez sur la liste des régions. Lorsque l'on pointe la souris sur l'ensemble des régions, la réécriture se fait bien.
Par contre, lorsque l'on clique sur les régions Rhône Alpes, Nord Pas de Calais, et Pays de la Loire, on atterrit sur une page aux bonnes couleurs mais qui n'affiche pas le contenu souhaité, à savoir la liste des golfs de la région concernée.
Pour mettre en place cette réécriture, j'ai donc utilisé deux choses :
- le fichier .htaccess qui contient les éléments suivants :
RewriteEngine on
RewriteRule ^golf-([a-z\-]+)\.html$ /regions/region.php?region=$1 [L]
- la fonction suivante dans le fichier affichant la liste des régions :
function OptimiseUrl($chaine)
{
$chaine = strtolower(strtr($chaine,'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ', 'aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn'));
$chaine = preg_replace('#[^a-z0-9_-]#','-',$chaine);
while (strpos($chaine,'--') !false) $chaine str_replace('--','-',$chaine);
return $chaine;
}
Quelqu'un pourrait-il me filer un coup de main pour résoudre mon problème ?
Je vous remercie et reste à votre dispo.
A++
23 févr. 2008 à 18:43
23 févr. 2008 à 18:39
function convertion_pour_url($chaine){
// convertion des accents => sans accents + trim vire espaces => $chaine
$string = strtr(trim($chaine),
'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ',
'aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn');
// convertion des espaces en -
$string = eregi_replace('[^a-z0-9]','-', $string);
return $string;
}
22 févr. 2008 à 18:01
22 févr. 2008 à 17:03
$chaine = preg_replace('#[^a-z0-9_-]#','-',$chaine);while (strpos($chaine,'--') !false) $chaine str_replace('--','-',$chaine);
pourrais etre remplacer par :
return preg_replace('#([^a-z0-9_-]|(-){2,})#','-', $chaine); à vue de nez
22 févr. 2008 à 16:50
Tiens un ptit code que j'ai fais à la vite, on peut surment faire beaucoup mieu..
function OptimiseUrl($chaine)
{
$chaine = strtolower(strtr($chaine,'àâäåãáçéèêëïîìíñöôóòõùûüúÿ', 'aaaaaaceeeeiiiinooooouuuuy'));
$chaine = preg_replace('#[^a-z0-9_-]#','-',$chaine); while (strpos($chaine,'--') !false) $chaine str_replace('--','-',$chaine);
return $chaine;
}
Et ce genre de code vas plus sur codyx.org qu'ici :-/