Page 1 sur 1

Nom de page dynamique

Posté : 15 mars 2008, 12:25
par angebleu17
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

Posté : 15 mars 2008, 13:11
par jojolapine
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...

Posté : 15 mars 2008, 13:12
par Berzemus
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

Posté : 15 mars 2008, 13:21
par angebleu17
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 ?

Posté : 16 mars 2008, 11:18
par Berzemus
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.