OVH Cloud OVH Cloud

detecter si il y a du get ou du post dans l'url ?

8 réponses
Avatar
sylvie
salut a tous.

Je cherche desesperement un moyen fiable de detecter (pour faire une action)
dans un if si l'utilisateur du site a mis un &quelquchose= apres l'url quel
que soit ce quelque chose.

J'ai fait ca :
if (isset($_GET) || isset($_POST)) {

mais il me repond true meme si il y a rien.

Que me conseillez vous de faire ?

Merci.

8 réponses

Avatar
Stephane CARPENTIER
sylvie wrote:

salut a tous.

Je cherche desesperement un moyen fiable de detecter (pour faire une
action) dans un if si l'utilisateur du site a mis un &quelquchose= apres
l'url quel que soit ce quelque chose.

J'ai fait ca :
if (isset($_GET) || isset($_POST)) {

mais il me repond true meme si il y a rien.


Ca me paraît normal qu'il réponde true. Si j'ai bien tout compris, isset ne
sert pas à savoir si la variable est vide, mais si une variable est définie.
Or, $_GET et $_POST sont des variables prédéfinies.

Il me semble que $_GET est un tableau, donc un truc genre count($_GET)==0 me
paraît faire ce que tu veux.

Stéphane
--
Pour me répondre, traduire gratuit en anglais et enlever le .invalid

Avatar
Vincent Lascaux
if (isset($_GET) || isset($_POST)) {

mais il me repond true meme si il y a rien.


Il faudrait plutot faire
if (!empty($_GET) || !empty($_POST)) {
...

--
Vincent

Avatar
Guy
Je cherche desesperement un moyen fiable de detecter (pour faire une action)
dans un if si l'utilisateur du site a mis un &quelquchose= apres l'url quel
que soit ce quelque chose.

J'ai fait ca :
if (isset($_GET) || isset($_POST)) {

mais il me repond true meme si il y a rien.


essayez :

if ($_SERVER['REQUEST_METHOD'] == 'GET') {
ou
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

guy

Avatar
sylvie
"Vincent Lascaux" a écrit dans le message de news:
42a1dd57$0$25807$
if (isset($_GET) || isset($_POST)) {

mais il me repond true meme si il y a rien.


Il faudrait plutot faire
if (!empty($_GET) || !empty($_POST)) {
...


Merci, ca marche :)


Avatar
Thibaut Allender
if ($_SERVER['REQUEST_METHOD'] == 'GET') {


par défaut on est toujours en get, ça ne veut pas dire qu'on envoie
forcément des paramètres dans l'url

--
thibaut allender | freelance | http://capsule.org

Avatar
sylvie
"Guy" a écrit dans le message de news:

Je cherche desesperement un moyen fiable de detecter (pour faire une
action) dans un if si l'utilisateur du site a mis un &quelquchose= apres
l'url quel que soit ce quelque chose.

J'ai fait ca :
if (isset($_GET) || isset($_POST)) {

mais il me repond true meme si il y a rien.


essayez :

if ($_SERVER['REQUEST_METHOD'] == 'GET') {



Ca risque de renvoyer vrai meme si il n'y a aucun parametre.


Avatar
Olivier Miakinen

essayez :

if ($_SERVER['REQUEST_METHOD'] == 'GET') {


Ca risque de renvoyer vrai meme si il n'y a aucun parametre.


Et, inversement, de renvoyer faux pour un POST même s'il y a des
paramètres dans l'URL.


Avatar
Guy
Thibaut Allender a écrit:

if ($_SERVER['REQUEST_METHOD'] == 'GET') {



par défaut on est toujours en get, ça ne veut pas dire qu'on envoie
forcément des paramètres dans l'url



évident !
comme la solution !!!
encore faut-il savoir déterminer le défaut !

guy