La fonction GET ($_GET) [Résolu]

Messages postés
120
Date d'inscription
dimanche 9 janvier 2011
Dernière intervention
23 décembre 2012
- - Dernière réponse : Jeromedu79
Messages postés
120
Date d'inscription
dimanche 9 janvier 2011
Dernière intervention
23 décembre 2012
- 29 juin 2012 à 12:56
Bonjour,

Voila depuis peut de temps, je rencontre un petit problème sur mon site ...

Imaginons deux fichiers, un premier pour l'index et un second pour le support.

Mon index contient un formulaire de connexion et deux liens hypertexte (oublie de mot de passe et du login) :

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

<form method="post" action="connexion.php">






</form>
[support.php?action=passrecup Mot de passe oublié ?]

[support.php?action=loginrecup Nom de compte oublié ?]

</html>


Ensuite, ma page pour le support :

<?php
switch($_GET['action']){
case 'passrecup':
// Formulaire de récupération de mot de passe
exit;
case 'loginrecup':
// Formulaire de récupération du login
exit;
}
?>


Pour cette première partie, tous fonctionne correctement.
Mais imaginons maintenant qu'un onglet présent sur mon index permette aux clients d'accéder à "l'index" du support de cette manière :

[support.php Support]


Hélas, cela ne fonctionne pas comme je pouvais l'imaginer ...
Une erreur apparaît : Notice: Undefined index: action in C:\******* on line 3

Pour afficher "l'index" du support, je pensais procéder de cette manière :

<?php
switch($_GET['action']){
case 'passrecup':
// Formulaire de récupération de mot de passe
exit;
case 'loginrecup':
// Formulaire de récupération du login
exit;
}
?>
<center>Support
</center>
<!-- Reste de "l'index" du support -->


Comme vous pouvez le devinez, la fonction "exit;" me permet d’interrompre l’exécution du reste du code source pour faire en sorte que seul l'action souhaitée parmi les deux s’exécutent.
Mettre le contenu de "l'index" à la fin du code source, plus exactement en dessous du switch ($_GET['action']) permettrait de le faire exécuter que si le switch ne détecte rien (aucune case).

Si vous pensez me suggérez de mettre "l'index" du support dans une case du switch :
<?php
switch($_GET['action']){
case'passrecup':
// Formulaire de récupération de mot de passe
exit;
case'loginrecup':
// Formulaire de récupération du login
exit;
case'index':
?>
<center>Support
</center>
<!-- Reste de "l'index" du support -->
<?php
}
?>

Puis d'accéder à l'index de cette manière :
[support.php?action=index ]


Je suis conscient que cette solution aurait de très grandes chances de fonctionner mais je préfère s'avoir si ce problème pourrait ce résoudre autrement.

Merci,
Jérôme
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
21
3
Merci
Perso, je procède toujours de cette manière :

<?php
$action = (isset($_GET['action']) ? $_GET['action'] : '');
switch ($action)
{
case 'passrecup':
// Formulaire de récupération de mot de passe
?>
<?php
break;
case 'loginrecup':
// Formulaire de récupération du login
?>
<?php
break;
default: //index
?>
<?php
}


VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
21
3
Merci
Il s'agit d'une expression ternaire équivalente à :
<?php
if (isset($_GET['action'])) $action = $_GET['action']; else $action = '';


VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_ghuysmans99
Messages postés
120
Date d'inscription
dimanche 9 janvier 2011
Dernière intervention
23 décembre 2012
0
Merci
Merci pour ta réponse :)

Je ne comprend pas :

$action = (isset($_GET['action']) ? $_GET['action'] : '');

Pourrais-tu m'éclairer ?
Commenter la réponse de Jeromedu79
Messages postés
120
Date d'inscription
dimanche 9 janvier 2011
Dernière intervention
23 décembre 2012
0
Merci
Je comprend mieux ^^

Merci :)
Commenter la réponse de Jeromedu79

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.