Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 11/02/2011, 15h30   #1
Nouveau Membre du Club
 
Avatar de Gizmil
 
Inscription : août 2007
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 143
Points : 29
Points : 29
Par défaut Détecter le clic sur un bouton

Hello ! J'espère que je poste au bon endroit !!

Voilà, je vous explique mon petit souci !

En fait, je m'y connais peu en php mais j'aimerais charger dynamiquement un contenu dans une page web. Il y a donc un contenu invariable (les menus) et un contenu variable. Ce contenu variable change en fonction des boutons sur lesquels on appuie (jusque là, c'est le principe d'un site web dynamique). Chaque bouton envoie une valeur dans une variable appelée "contenu". Du coup, lorsqu'on clique sur un bouton, la page se recharge en prenant en compte la valeur implémentée dans cette variable, le naviguateur sait ainsi quel contenu charger.

Voilà comment j'implémente la valeur de ma variable $contenu :

Code :
<a href="fr_body.php?contenu=galeries">GALERIES</a>
Je voudrais néanmoins qu'un contenu par défaut soit chargé lorsqu'on arrive depuis l'extérieur sur la page d'index de mon site, c'est à dire la page d'accueil. Comment faire ?

Car si j'écris bêtement dans mon code : $contenu="accueil" dans ma balise <head></head>, par exemple, et que je veux ensuite visiter le site, le naviguateur ne prendra pas en compte la valeur implémentée lors du clic de bouton mais bien celle inscrite dans ma balise <head>. Le naviguateur chargera alors constamment le contenu accueil, quel que soit le bouton sur lequel on pousse.

Pour éviter ça, j'aimerais créer une condition "if" qui vérifie si le site web a déjà été visité ou non !

Code :
1
2
3
if(visitSite==undefined){
$contenu="accueil"
}
Voilà ! Ma question, c'est : comment faire prendre une valeur (n'importe quelle valeur, du moment que ce n'est pas undefined) à ma variable $visitSite lorsque je pousse un bouton ?
Gizmil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 15h38   #2
Membre expérimenté
 
Inscription : mai 2006
Messages : 501
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2006
Messages : 501
Points : 576
Points : 576
Bonjour,

Tu peux faire quelque chose comme ça :
Code :
1
2
3
4
 
$contenu = "accueil";
if (isset ($_GET['contenu']) && $_GET['contenu'])
   $contenu = $_GET['contenu'];
Ceci dit, ceci nécessite un rechargement de la page à chaque clique... Regarde du coté du javascript et de jQuery particulièrement. Tu verras que tu pourras changer tes menus sans recharger la page.
Fabllot est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/02/2011, 15h39   #3
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
En version courte :
Code :
$contenu = isset ($_GET['contenu']) ? $_GET['contenu'] : "accueil";

Attention aux failles d'inclusion.
Ne pas faire ensuite du
Code :
1
2
3
 
// interdit
include ($accueil .'.php');
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/02/2011, 15h55   #4
Nouveau Membre du Club
 
Avatar de Gizmil
 
Inscription : août 2007
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 143
Points : 29
Points : 29
Super, merci ! C'est effectivement plus simple de tester directement la valeur de $contenu, j'aurais dû y penser !! Cela dit, après avoir lu la définition de isset, je ne comprend pas trop ces deux syntaxes !

Que signifie le $_GET ? Est-ce une variable ?

Que signifie $_GET['contenu']

Pourquoi cette répétition ?
isset ($_GET['contenu']) && $_GET['contenu'])
Gizmil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 16h54   #5
Membre expérimenté
 
Inscription : mai 2006
Messages : 501
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2006
Messages : 501
Points : 576
Points : 576
Citation:
Envoyé par Gizmil Voir le message
après avoir lu la définition de isset, je ne comprend pas trop ces deux syntaxes !
La fonction isset teste si une variable existe. C'est à dire, si tu a déclaré quelque part la variable $v par exemple avec la ligne $v = 10;, alors la fonction isset ($v) va retourner true.
L'autre cas d'utilisation courante de isset c'est pour savoir si une clé existe dans un tableau. Si isset ($montableau['macle']) retourne true alors cette variable existe...

Citation:
Que signifie le $_GET ? Est-ce une variable ?
C'est le tableau qui contient toutes les variables passées en http par la méthode get, soit toutes les variables de ton url.

Citation:
Que signifie $_GET['contenu']
Retourne la variable 'contenu' passée en, get... Dans ton exemple avec l'appel à la page ~/fr_body.php?contenu=galeries, $_GET['contenu'] vaut 'galeries'.

Citation:
Pourquoi cette répétition ?
isset ($_GET['contenu']) && $_GET['contenu'])
isset comme dit plus haut, indique que la variable existe, mais celle-ci peut-être nulle. Surtout dans les variables GET.
Par exemple avec l'appel à la page ~/fr_body.php?conten, isset ($_GET['contenu']) va retourner true mais $_GET['contenu'] false...

Un petit conseil sinon, va faire un petit tour dans la faq php... Cela repondra à pas mal de tes questions je pense.
Fabllot est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/02/2011, 17h44   #6
Nouveau Membre du Club
 
Avatar de Gizmil
 
Inscription : août 2007
Messages : 143
Détails du profil
Informations personnelles :
Âge : 34
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 143
Points : 29
Points : 29
Ok, merci à toi pour ton aide précieuse, Fallbot (je suis bien conscient de mes lacunes)!

Et merci à tous ceux qui sont venus m'aider !!

Problème résolu !
Gizmil 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 09h48.


 
 
 
 
Partenaires

Hébergement Web