papounet Posté 21 Février 2009 Posté 21 Février 2009 (modifié) Bonjour! Je rencontre actuellement un drôle de problème sur un site, je m'explique! Dans un fichier, je rentre mes mots du style: <?php$mot_1 = "ping pong";$mot_2 = "tennis de table";$mot_3 = "raquette gaucher";?> Ensuite, dans la page dynamique j'inclue la chose suivante: <?php include('inc/title.php'); ?> et plus bas <?php include('inc/naviguation.php'); ?> Jusque là ok, mais pour diverses raison les titres et les ancres,title,et h ref sont générés automatiquement via les mot que j'entre en leur donnant les valeurs cités en début de post Puis pour pouvoir rendre utilisable les mot en l'état dans une url, je les encodes de la sorte dans le fichier encode-url.php: <?php$string = $_SERVER["REQUEST_URI"];$encode_1 = str_replace(" ", "-", $mot_1);$url_1 = '/'.$encode_1.'.html';$encode_2 = str_replace(" ", "-", $mot_2);$url_2 = '/'.$encode_2.'.html';$encode_3 = str_replace(" ", "-", $mot_3);$url_3 = '/'.$encode_3.'.html';?> chose qui me permet de créer automatiquement les titles selon la page comme ceci: <?phprequire('encode-url.php');// encodage des urls par rapport aux mot clésif (eregi($url_1, $string)){echo '<title>'.$mot_1 = ucfirst(strtolower($mot_cle_1)).'</title>';}if (eregi($url_2, $string)){echo '<title>'.$mot_2 = ucfirst(strtolower($mot_cle_2)).'</title>';}if (eregi($url_3, $string)){echo '<title>'.$mot_3 = ucfirst(strtolower($mot_cle_3)).'</title>';}?> Puis dans la même pages mais plus bas dans le code, je fait la même manip mais cette fois-ci destinée à la navigation du site en faisant: <?phprequire('encode-url.php');// encodage des urls par rapport aux mot clésif (eregi($url_1, $string))//page 1{echo ''.$mot_1 = ucwords(strtolower($mot_1)).' <a href="'.$mot_2 = str_replace(" ", "-", $mot_2).'.html" title="'.$mot_2 = ucfirst(strtolower($mot_2)).'">'.$mot_2 = ucwords(strtolower($mot_2)).'</a> <br /> <a href="'.$mot_3 = str_replace(" ", "-", $mot_3).'.html" title="'.$mot_2 = ucfirst(strtolower($mot_3)).'">'.$mot_3 = ucwords(strtolower($mot_3)).'</a>?> Seulement le code généré par if eregi n'accepte de fonctionner qu'une seule fois et c'est ce là que je ne comprends, pas, en fait le titre est bien crée et tout fonctionnement parfaitement, par contre les liens de naviguation ne sont pas là, comme si le if (eregi) repondait false Pourtant si je retire le include"title" et que donc plus rien ne se passe au niveau des titres alors le code fonctionne bien sur les liens de naviguation! Je que je trouve étrange c'est donc que le if(eregi) ne soie effectué qu'une seule fois !! Ha oui et j'allais oublier, ce qui est etrange aussi, c'est que si je remplace le "$ur_1" dans le eregi de la navigation directement par l'url alors cela fonctionne donc apperement le problème est localisé mais je comprends pas pourquoi Merci à ceux qui m'auront lu Modifié 21 Février 2009 par papounet
papounet Posté 21 Février 2009 Auteur Posté 21 Février 2009 (modifié) Bon j'ai contourné le problème différement après avoir testé les preg_match et autres .... $page = strtolower($mot_1);$verif = '/'.$page.'.html';$string = $_SERVER["REQUEST_URI"];if ($string == $verif)//page 1{echo ..... Pas terrible les superglobales mais dans l'état ca me conviens Modifié 21 Février 2009 par papounet
papounet Posté 21 Février 2009 Auteur Posté 21 Février 2009 Bon tenant quand même à savoir la raison du dysfonctionnement afin de comprendre, j'ai persisté J'ai donc compris, en faite je faisais un require(encode_url) deux fois et dans mon deuxième appel la chaine était donc travaillé deux fois par le str_replace, ce qui me donnais un résultais différent de ce que j'attendais
Leonick Posté 22 Février 2009 Posté 22 Février 2009 préférer l'utilisation de require_once à la place
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant