Nom de page dynamique

Eléphant du PHP | 259 Messages

15 mars 2008, 12:25

Bonjour,

Sur mon site je référence différent produit, en fait j'aimerais que lorsque l'on clique sur un produit le nom de la page soit : nom_du_produit.php

Voici mon code :

function titre_iso($titre)
  {
  	$titre_complet =	$titre;
		$titre_complet = ereg_replace(", ","-",$titre_complet);
		$titre_complet = ereg_replace(" ","-",$titre_complet);
		$titre_complet = ereg_replace("'","-",$titre_complet);
		$titre_complet = ereg_replace("/","-",$titre_complet);
		$titre_complet = ereg_replace(",","-",$titre_complet);
		$titre_complet = ereg_replace(":","-",$titre_complet);
		$titre_complet = ereg_replace("!","-",$titre_complet);
		$titre_complet = ereg_replace("#","-",$titre_complet);
		$titre_complet = ereg_replace("\?","",$titre_complet);
		
		$titre_complet = ereg_replace("[-]","-",$titre_complet);
		if ($titre_complet != htmlentities($titre_complet))
		{
			for ($i=0;$i<strlen($titre_complet);$i++)
			{
				if ($titre_complet[$i] != htmlentities($titre_complet[$i]))
				{
					$newchaine=htmlentities($titre_complet[$i]);
					$newcar=$newchaine[1];
					$titre_complet=ereg_replace($titre_complet[$i], $newcar, $titre_complet);

				}
			}

		}
		$titre_complet = ereg_replace("[-]","-",$titre_complet);
		$size=strlen($titre_complet);
		if ($titre_complet[$size-1]=='-')
			$titre_complet=substr($titre_complet,0,$size-1);
			
		$titre_complet = ereg_replace("--","-",$titre_complet);
		return $titre_complet;
  }
  
   function titre_slash($titre)
  {
		$titre_slash = addslashes($titre);
		return $titre_slash;
  }

$nom_produit_iso = titre_iso($nom_produit);
$nom_produit_slash = titre_slash($nom_produit);

Code : Tout sélectionner

<A HREF="/produit/<?= $id_produit ?>/<?= $nom_produit_iso ?>.php" class="style4" onMouseOver="window.status='<?= $nom_produit_slash ?>'; return true;" onMouseOut="window.status=''"><?=$nom_produit?></A>
Donc quand je clique sur un produit j'arrive bien sur la page www.monsite.fr/produit/id_produit/nom_produit.php

Mais maintenant je me demande comment il faut faire pour afficher la page du produit, car ce sont toutes des pages dynamique, elle n'existent pas en dur sur mon site ! Sur quel page je dois récupéré l'di du produit pr l'affiché ?

Merci d'avance pr vos réponses

ViPHP
ViPHP | 3607 Messages

15 mars 2008, 13:11

une petite recherche sur l'url rewriting devrait résoudre ton problème ;)
Au passage il y a pas mal de chose à améliorer dans ta fonction...
Un exemple, on utilise pas ereg_replace pour remplacer une chaine fixe, mais plutôt str_replace()
ereg_replace() (qui est d'ailleurs à bannir au profit de preg_replace()) n'est utile que si tu as une expression régulière à évaluer!
Il y a d'autres choses qui ne sont pas géré, que fait tu des accents ?
En règle générale on préconise de les éliminer...

ViPHP
ViPHP | 4039 Messages

15 mars 2008, 13:12

salut,
Pourquoi ne pas alors utiliser un simple url-rewrite ? (ré-écriture des urls)

En arrière, tu aurais simplement la page index avec les variables get appelant la page
ex: www.monsite.fr/index.php?produit=nom_du_produit

Mais dans le navigateur, les gens verraient
www.monsite.fr/produit/nom_du_produit

Sous apache, ça se bidouille dans le .htaccess, avec le module mod_rewrite.

Voilà toujours un guide, mais y'en a plein sur le net:
http://www.webmaster-hub.com/publicatio ... e-des.html
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 259 Messages

15 mars 2008, 13:21

Merci pour vos réponses.

Quel sont les avantages du urlrewriting ? est ce que ça vaut le coup de les utiliser ? ou bien de passé simplement les variable en GET ?

Pour le référencement c'est mieux d'utiliser les url rewriting non ?

ViPHP
ViPHP | 4039 Messages

16 mars 2008, 11:18

ben les avantages c'est que c'est plus joli, plus compréhensible. Et tu empêches, de façon limité, d'afficher la structure et le fonctionnement réel de tes pages.

Pour ce qui est du référencement, on disait ça y'a un temps, mais depuis plus de nouvelle. Je crois que ça joue plus trop de nos jours.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.