nomasis Posté 19 Février 2005 Auteur Posté 19 Février 2005 Essayes d'être précis quant au problème, stp : si je comprends bien ton dernier post, tu utilises des pseudo-frames, c'est à dire que tu n'as qu'une seule page dont le contenu est différent selon le contenu de ta querystring (ce qui se trouve après le ? dans l'url). dans ce cas, l'utilisation de $_SERVER['PHP_SELF'] ne suffit pas car cette valeur te renvoie seulement l'url de la page relative à la racine du serveur. dans ce cas, tu devrais essayer de concaténer à cette valeur le contenu de la querystring avec la variable $_SERVER[' QUERY_STRING '] , ce qui donne ceci: <body class="page_bg" OnLoad="startPix();<?php if($_SERVER['PHP_SELF'].'?'.$_SERVER[' QUERY_STRING ']=='/index.php?option=com_content&task=view&id=61&Itemid=1') echo 'Popup()' ?>"> en supposant que la querystring que tu donnes dans ton dernier post corresponde à la page sur laquelle tu veux voir s'afficher ta popup, sinon, c'est à adapter ... Pour vérifier que la valeur est la bonne, tu peux faire comme précedemment un script avec ceci: <?php echo $_SERVER['PHP_SELF'].'?'.$_SERVER[' QUERY_STRING ']; ?> /index.php? Ou alors, je n'ai pas compris et il faut que tu donnes des infos supplémentaires... <{POST_SNAPBACK}> j'utilise un CMS, Mambo (sous Apache/MySQL) donc il y a un index.php et selon les liens ils chargent les éléments de la base de données... J'ai essayé l'echo serveur avec ton nouveau bout de code, ce qui donne la même chose : /index.php? Que pourrais-je te dire d'autre ?
nomasis Posté 19 Février 2005 Auteur Posté 19 Février 2005 Ok Alors fais : <body class="page_bg" OnLoad="startPix();<?php if($_SERVER['PHP_SELF']=='/index.php') echo 'Popup()' ?>"> euh... c'est quoi la différence bigornot
bigornot Posté 19 Février 2005 Posté 19 Février 2005 la différence, c'est le / devant index.php mais j'avais oublié de lire un post moi, je te conseille ça : if((isset($_GET['option']))&&(isset($_GET['task'])){//ça veut dire que tu es sur //index.php?option=com_content&task=view&id=61&Itemid=1//donc, fais en conséquence (ou ça veut dire que option et task sont //initialisés}else{//mets ta pop-up}
nomasis Posté 19 Février 2005 Auteur Posté 19 Février 2005 bon eh bien je regarderais ça demain parce qu'on va pas passer la soirée dessus non plus, hein ?
Anonymus Posté 19 Février 2005 Posté 19 Février 2005 En fait, quand tu fais $_SERVER['PHP_SELF'], tu tombes toujours sur index.php, parce que toutes les pages passent par index.php. Ce que tu voudrais, c'est que ca n'ouvre ton pop up 'que' si l'on est sur la page d'accueil, et seulement sur celle ci. Donc, il faut que tu testes le $_SERVER['PHP_SELF'], mais aussi la chaine de requetes, autrement dit, ce qu'il y a après le point d'interrogation. S'il y a qqch après le point d'interrogation, alors ce n'est plus la première page. Sinon, c'est la première page. Ca se traduit ainsi : if ($_SERVER['PHP_SELF']=='/index.php' && $_SERVER['QUERY_STRING']=='') ... suite du code. Nico.
Commmint Posté 20 Février 2005 Posté 20 Février 2005 (modifié) Tu peux gagner quelques caractères en utilisant directement $PHP_SELF. Il faut aussi tester si la page est accédée en /index.php ou par la racine du site. Si un lien pointe vers http://toto.com ce n'est pas égal à http://toto.com/index.php le pop up risque de pas s'ouvrir une fois sur deux. Il faut harmoniser l'accès à la page index. de manière à ce que $PHP_SELF soit toujours égal à / ou à index.php edit : hum chui à la rue moi, j'avais pas vu la seconde page du post. C'est dimanche je retourne me coucher Modifié 20 Février 2005 par Commmint
nomasis Posté 20 Février 2005 Auteur Posté 20 Février 2005 (modifié) En fait, quand tu fais $_SERVER['PHP_SELF'], tu tombes toujours sur index.php, parce que toutes les pages passent par index.php.Ce que tu voudrais, c'est que ca n'ouvre ton pop up 'que' si l'on est sur la page d'accueil, et seulement sur celle ci. Donc, il faut que tu testes le $_SERVER['PHP_SELF'], mais aussi la chaine de requetes, autrement dit, ce qu'il y a après le point d'interrogation. S'il y a qqch après le point d'interrogation, alors ce n'est plus la première page. Sinon, c'est la première page. Ca se traduit ainsi : if ($_SERVER['PHP_SELF']=='/index.php' && $_SERVER['QUERY_STRING']=='') ... suite du code. Nico. <{POST_SNAPBACK}> BINGO ! Merci, un très grand merci à tous ! Vous me tirez une sacrée épine du pied... Question subsidiaire : si on revient sur la page d'accueil le popup est rechargé. Comment pourrait on l'éviter ? Par un cookie ? Modifié 20 Février 2005 par nomasis
nomasis Posté 21 Février 2005 Auteur Posté 21 Février 2005 Question subsidiaire : si on revient sur la page d'accueil le popup est rechargé.Comment pourrait on l'éviter ? Par un cookie ? <{POST_SNAPBACK}>
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant