Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/01/2007, 12h12   #1
Membre expérimenté
 
Avatar de Strix
 
Inscription : novembre 2006
Messages : 632
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 632
Points : 516
Points : 516
Par défaut [Cookies] Rajouter un id='current' sur un lien lors d'un clic

Bonjour.
Alors voilà ma (nouvelle) question :
Pour mon menu tout en image, j'utilise un id='current' pour signaler la page en cours.
J'utilise un template donc dès que je le mets à jour les id='current' sautent et je doit me retaper des copier-coller à tout va.
J'aimerais savoir comment rajouter en php, lorsque on clique sur un des menus, ce fameux id='current' !

Exemple :
Je suis sur Accueil. Je clique sur Portfolio et là j'aimerais que le lien passe de
Code :
<a href="../portfolio.php?lang=<?php echo lang; ?>">
à
Code :
<a href="../portfolio.php?lang=<?php echo lang; ?>" id="current">
Merci !
__________________
On appelle le Dr Freud aux urgences !!
------------
Quelques règles simples qui font la différence :
Rechercher - FAQ - Dire bonjour - Écrire en français - Balises [code] - Dire merci - Tag
Strix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 22h30   #2
Membre éclairé
 
Inscription : août 2006
Messages : 379
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : août 2006
Messages : 379
Points : 383
Points : 383
Bonsoir,
Il est l'heure que j'aille dodo :p j'ai rien compris à ce que tu souhaitais
Mais quelque chose comme ça :
Code :
1
2
if (/* nouvelle page */) { $truc = 'id"current"'; }
<a href="../portfolio.php?lang=<?php echo lang; ?>" <?php echo $truc; ?> >
Devrait faire l'affaire .
SpiritOfDoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 14h08   #3
Membre expérimenté
 
Avatar de Strix
 
Inscription : novembre 2006
Messages : 632
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 632
Points : 516
Points : 516
Bon je reprends avec plus d'exemples :

Voici le code du menu pour ma page Accueil:
Code :
1
2
3
4
5
6
7
8
<ul> 
<li id="m1"><a href="accueil.php?lang=<?php echo lang; ?>" id="current"></a></li>
<li id="m2"><a href="portfolio.php?lang=<?php echo lang; ?>"></a></li>
<li id="m3"><a href="services.php?lang=<?php echo lang; ?>"></a></li>
<li id="m4"><a href="contact.php?lang=<?php echo lang; ?>"></a></li>
<li id="m5"><a href="liens.php?lang=<?php echo lang; ?>"></a></li>
<li id="m6"><a href="telechargement.php?lang=<?php echo lang; ?>"></a></li>
</ul>
Voici le code du menu pour ma page Portfolio:
Code :
1
2
3
4
5
6
7
8
<ul> 
<li id="m1"><a href="accueil.php?lang=<?php echo lang; ?>"></a></li>
<li id="m2"><a href="portfolio.php?lang=<?php echo lang; ?>" id="current"></a></li>
<li id="m3"><a href="services.php?lang=<?php echo lang; ?>"></a></li>
<li id="m4"><a href="contact.php?lang=<?php echo lang; ?>"></a></li>
<li id="m5"><a href="liens.php?lang=<?php echo lang; ?>"></a></li>
<li id="m6"><a href="telechargement.php?lang=<?php echo lang; ?>"></a></li>
</ul>
Le soucis est que je dois rajouter les id="current" manuellement car mon template me les supprime.
Ce que j'aimerais trouvé, c'est un code php qui en gros dit :

Si la page est portfolio.php
alors
Code :
<a href="portfolio.php?lang=<?php echo lang; ?>">
devient
Code :
<a href="portfolio.php?lang=<?php echo lang; ?>"  id="current">
Je suis sûr que j'ai presque donné la réponse du coup... enfin bon.

Re merci
__________________
On appelle le Dr Freud aux urgences !!
------------
Quelques règles simples qui font la différence :
Rechercher - FAQ - Dire bonjour - Écrire en français - Balises [code] - Dire merci - Tag
Strix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 14h14   #4
Membre chevronné
 
Avatar de J0r_x
 
Homme
Analyste - Programmeur
Inscription : mai 2006
Messages : 712
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Analyste - Programmeur
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2006
Messages : 712
Points : 607
Points : 607
J'ai pas la réponse, mais je peux peut être t'aiguiller, il faut que tu recupère la page sur laquelle tu es, en fonction de ça il ne te reste plus qu'a tester dans ton menu pour afficher le "id=current". C'est vague je sais :p

EDIT:
exemple :
- tu peux utiliser une variable de session que tu mets à jour en arrivant sur chaque page avec le nom de la page.
- ou Il doit exister une variable d'environement qui recupère le nom de ta page aussi ($_SERVER['REQUEST_URI'] je crois à tester).
__________________
Aucune aide par MP, utilisez le forum.
J0r_x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 14h17   #5
Membre éclairé
 
Inscription : août 2006
Messages : 379
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : août 2006
Messages : 379
Points : 383
Points : 383
Tu peux mettre le nom de ta page en session, puis dans chaque ligne de ton lien rajouter un echo $_SESSION['nom_de_la_page']; ...

Une façon un peu plus "propre" de le faire serait de générer ton menu dynamiquement ... mais il n'y aura pas vraiment de différence.

Bonne journée.
SpiritOfDoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 14h26   #6
Membre éclairé
 
Avatar de deY!
 
Inscription : avril 2006
Messages : 403
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2006
Messages : 403
Points : 358
Points : 358
Quel morteur de template utilises-tu ? tu as un template par fichier php ?
deY! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 14h27   #7
Membre expérimenté
 
Avatar de Strix
 
Inscription : novembre 2006
Messages : 632
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 632
Points : 516
Points : 516
Template dreamweaver

si je fais un truc de genre =

Code :
1
2
3
if (<?=substr($_SERVER['REQUEST_URI'],x,-x); ?"=='acceuil.php') {
<a href=acceuil.php..." id="current">
}
Ça devrait marcher non ?

Le soucis, n'étant pas un pro en php, c'est où le positionner ?!
__________________
On appelle le Dr Freud aux urgences !!
------------
Quelques règles simples qui font la différence :
Rechercher - FAQ - Dire bonjour - Écrire en français - Balises [code] - Dire merci - Tag
Strix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 14h56   #8
Membre éclairé
 
Avatar de deY!
 
Inscription : avril 2006
Messages : 403
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2006
Messages : 403
Points : 358
Points : 358
à la limite fait

Code :
1
2
3
4
<li id="m1">
<a href="accueil.php?lang=<?php= $lang; ?>" <?php if (strstr($_SERVER['REQUEST_URl'], 'acceuil.php')) echo 'id="current"' ?>>
</a>
</li>
deY! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 15h00   #9
Membre chevronné
 
Avatar de J0r_x
 
Homme
Analyste - Programmeur
Inscription : mai 2006
Messages : 712
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Analyste - Programmeur
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2006
Messages : 712
Points : 607
Points : 607
Tu es obligé de le faire pour chaque menu que tu as.
__________________
Aucune aide par MP, utilisez le forum.
J0r_x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 15h48   #10
Membre expérimenté
 
Avatar de Strix
 
Inscription : novembre 2006
Messages : 632
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 632
Points : 516
Points : 516
Bon ça marche avec ça :

Code :
1
2
3
4
5
6
7
8
<ul> 
<li id="m1"><a href="accueil.php?lang=<?php echo lang; ?>" <?php if (substr($_SERVER['REQUEST_URI'],10,-8)=='accueil.php') echo 'id="current"' ?>></a></li>
<li id="m2"><a href="portfolio.php?lang=<?php echo lang; ?>" <?php if (substr($_SERVER['REQUEST_URI'],10,-8)=='portfolio.php') echo 'id="current"' ?>></a></li>
<li id="m3"><a href="services.php?lang=<?php echo lang; ?>" <?php if (substr($_SERVER['REQUEST_URI'],10,-8)=='services.php') echo 'id="current"' ?>></a></li>
<li id="m4"><a href="contact.php?lang=<?php echo lang; ?>" <?php if (substr($_SERVER['REQUEST_URI'],10,-8)=='contact.php') echo 'id="current"' ?>></a></li>
<li id="m5"><a href="liens.php?lang=<?php echo lang; ?>" <?php if (substr($_SERVER['REQUEST_URI'],10,-8)=='liens.php') echo 'id="current"' ?>></a></li>
<li id="m6"><a href="telechargement.php?lang=<?php echo lang; ?>" <?php if (substr($_SERVER['REQUEST_URI'],10,-8)=='telechargement.php') echo 'id="current"' ?>></a></li>
</ul>
certains peuvent trouver ça long mais j'ai plus à retoucher mon menu !
Je vais voir avec strstr, je me renseigne et j'essaye.

Merci à tous !
__________________
On appelle le Dr Freud aux urgences !!
------------
Quelques règles simples qui font la différence :
Rechercher - FAQ - Dire bonjour - Écrire en français - Balises [code] - Dire merci - Tag
Strix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 17h00   #11
Membre émérite
 
Avatar de ozzmax
 
Inscription : novembre 2005
Messages : 986
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : novembre 2005
Messages : 986
Points : 863
Points : 863
Envoyer un message via MSN à ozzmax
salut

echo lang;?
ca marche ca sans erreur.. c'est une variable?

je crois que c'est correct ce que tu as écris sauf qu'au lieux de faire ton substr plusieur fois, tu pourrais le faire une seule fois

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
$mapage = substr($_SERVER['REQUEST_URI'],10,-8);
?>
<ul> 
<li id="m1"><a <?php echo ($mapage == 'accueil.php') ? 'href="accueil.php?lang=lang" id="current" >' : 'href="accueil.php?lang=lang" ';?></a></li>
<li id="m1"><a <?php echo ($mapage == 'portfolio.php') ? 'href="portfolio.php?lang=lang" id="current" >' : 'href="portfolio.php?lang=lang" ';?></a></li>
<li id="m1"><a <?php echo ($mapage == 'services.php') ? 'href="services.php?lang=lang" id="current" >' : 'href="services.php?lang=lang" ';?></a></li>
<li id="m1"><a <?php echo ($mapage == 'contact.php') ? 'href="contact.php?lang=lang" id="current" >' : 'href="contact.php?lang=lang" ';?></a></li>
<li id="m1"><a <?php echo ($mapage == 'liens.php') ? 'href="liens.php?lang=lang" id="current" >' : 'href="liens.php?lang=lang" ';?></a></li>
<li id="m1"><a <?php echo ($mapage == 'telechargement.php') ? 'href="telechargement.php?lang=lang" id="current" >' : 'href="telechargement.php?lang=lang" ';?></a></li>
</ul>
voilà comme ca tu ne fais pas plusieur fois l'appel à la fonction substr, mais une seule
__________________
La perfection n'est pas un but, l'amélioration constante devrait l'être!
La position des Développeurs de developpez avec les explications
ozzmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 18h50   #12
Membre expérimenté
 
Avatar de Strix
 
Inscription : novembre 2006
Messages : 632
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 632
Points : 516
Points : 516
Salut
Citation:
Envoyé par ozzmax
echo lang;?
ca marche ca sans erreur.. c'est une variable?
Dans mes fichiers langues (fr.php, en.php & de.php) j'ai une variable "lang" (je ne sais pas si on peut réellement appeler ça une variable).
Je l'avais créé avant la création du cookie qui du coup me créé $lang

Citation:
Envoyé par ozzmax
je crois que c'est correct ce que tu as écris sauf qu'au lieux de faire ton substr plusieur fois, tu pourrais le faire une seule fois
Merci beaucoup
__________________
On appelle le Dr Freud aux urgences !!
------------
Quelques règles simples qui font la différence :
Rechercher - FAQ - Dire bonjour - Écrire en français - Balises [code] - Dire merci - Tag
Strix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 09h29   #13
Membre expérimenté
 
Avatar de Strix
 
Inscription : novembre 2006
Messages : 632
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 632
Points : 516
Points : 516
Bonjour.

Suite au messages précédents voilà mon menu :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$urlcurrent = substr($_SERVER['REQUEST_URI'],1,-8);
$current = 'id="current"'
?>
<ul> 
<li id="m1"><a href="accueil.php?lang=<?php echo lang; ?>" <?php if ($urlcurrent=='accueil.php') echo $current ?>></a></li>
<li id="m2"><a href="portfolio.php?lang=<?php echo lang; ?>" <?php if ($urlcurrent=='portfolio.php') echo $current ?>></a></li>
<li id="m3"><a href="services.php?lang=<?php echo lang; ?>" <?php if ($urlcurrent=='services.php') echo $current ?>></a></li>
<li id="m4"><a href="contact.php?lang=<?php echo lang; ?>" <?php if ($urlcurrent=='contact.php') echo $current ?>></a></li>
<li id="m5"><a href="liens.php?lang=<?php echo lang; ?>" <?php if ($urlcurrent=='liens.php') echo $current ?>></a></li>
<li id="m6"><a href="telechargement.php?lang=<?php echo lang; ?>" <?php if ($urlcurrent=='telechargement.php') echo $current ?>></a></li>
</ul>
Le soucis est que j'ai des pages n'ayant pas de liens directement à partir du menu (comme le sondage) mais j'aimerais qu'elles aient l'état current de accueil, comment faire ?

je pense qu'il faut joué au niveau de mon $current et d'un $nocurrent
ex :
$current = lien actuel + id="current"
$nocurrent = lien accueil + id="current"

Mais là je vais avoir des soucis d'écriture...

Ou y a-t-il une façon de faire :

<?php if ($urlcurrent=='accueil.php' ou 'sondage.php') echo $current ?> ?

Re-merci d'avance
__________________
On appelle le Dr Freud aux urgences !!
------------
Quelques règles simples qui font la différence :
Rechercher - FAQ - Dire bonjour - Écrire en français - Balises [code] - Dire merci - Tag
Strix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 09h50   #14
Membre chevronné
 
Avatar de J0r_x
 
Homme
Analyste - Programmeur
Inscription : mai 2006
Messages : 712
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Analyste - Programmeur
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2006
Messages : 712
Points : 607
Points : 607
Code :
1
2
3
4
 
<?php 
if ($urlcurrent=='accueil.php' || $urlcurrent=='sondage.php') echo $current 
?>
__________________
Aucune aide par MP, utilisez le forum.
J0r_x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 09h58   #15
Membre expérimenté
 
Avatar de Strix
 
Inscription : novembre 2006
Messages : 632
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 632
Points : 516
Points : 516
Merci beaucoup. je ne connaissais pas du tout le ||. On peut les enchainés à l'infini (enfin pour 2 ou 3 autres pages) ?
__________________
On appelle le Dr Freud aux urgences !!
------------
Quelques règles simples qui font la différence :
Rechercher - FAQ - Dire bonjour - Écrire en français - Balises [code] - Dire merci - Tag
Strix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2007, 21h12   #16
Membre émérite
 
Avatar de ozzmax
 
Inscription : novembre 2005
Messages : 986
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : novembre 2005
Messages : 986
Points : 863
Points : 863
Envoyer un message via MSN à ozzmax
Oui, il s'agit enfait du "ou" (||) dans les conditions
il y a le "et" aussi && qui peut s'avérer très utile également dans le cas de validations
__________________
La perfection n'est pas un but, l'amélioration constante devrait l'être!
La position des Développeurs de developpez avec les explications
ozzmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h12.


 
 
 
 
Partenaires

Hébergement Web