IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Identifier variable transmise en GET ou en POST


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut Identifier variable transmise en GET ou en POST
    Bonjour à tous

    voici ma question. Est-il possible d'identifier par quel moyen une variable est transmise en GET ou en POST?

    Je m'explique… j'ai une page recherche qui est donc un formulaire dont les variables sont transmises en POST. Sur la page résultat de la recherche, j'ai une pagination. La fonction pagination transmet les variables en GET. La fonction pagination pour afficher la page suivante fait appel à la même page que celle qui affiche le résultat de recherche. Donc elle réception les variable en POST une première fois pour afficher les résultats mais lorsqu'on clique sur page suivante, elle reçoit en GET mais je n'ai pas trouvé le moyen de distinguer par quelle méthode elle reçoit. Donc elle ne sait pas traiter les variables reçue en GET.

    Avez-vous une idée ou une solution?

    D'avance merci de m'avoir lu et de votre aide.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Points : 192
    Points
    192
    Par défaut
    Tu peux faire un test si tes valeurs existent en GET et sinon si elles existent en POST

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (isset($_GET['value'])){
    //Traitement en GET
    }else if (isset($_POST['value'])){
    //Traitement en POST
    }else{
    //Pas de traitement
    }

  3. #3
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut
    Bonjour Billy14,

    merci pour ta réponse.

    J'avais déjà essayé cette solution mais ça n'avais pas l'air de fonctionner.
    Je vais réessayer et te tiens au courant.

    Merci

  4. #4
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut
    Je viens encore d'essayer, mais cela ne fonctionne pas.


    Voici une partie de mon code. Le else if est de toute façon exécuté même si les variables sont en POST.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    if (isset($_POST['type']))
    	{
    	$nbcol=mysql_num_fields($result);/*Nombre de champs*/
    	$nbart=mysql_num_rows($result); /*Nombre de lignes*/
    	//-------Debut En-tete-------//
    	//Récupération des critères de recherche//
    	$choix_type=mysql_escape_string(strtolower($_POST['type']));
    	$choix_statut=mysql_escape_string($_POST['statut']);
    	$choix_commune=mysql_escape_string(Ucfirst($_POST['commune']));
    	$prix_min=mysql_escape_string($_POST['prix_min']);
    	$prix_max=mysql_escape_string($_POST['prix_max']);
     
    	}
     
     
    else if(isset($result) && (!$result))
    	{
    	echo 'Lecture impossible';
    	}
    else
    	{
    	$nbcol=mysql_num_fields($result);/*Nombre de champs*/
    	$nbart=mysql_num_rows($result); /*Nombre de lignes*/
    	//-------Debut En-tete-------//
    	//Récupération des critères de recherche//
    	$choix_type=mysql_escape_string(strtolower($_GET['type']));
    	$choix_statut=mysql_escape_string($_GET['statut']);
    	$choix_commune=mysql_escape_string(Ucfirst($_GET['commune']));
    	$prix_min=mysql_escape_string($_GET['prix_min']);
    	$prix_max=mysql_escape_string($_GET['prix_max']);
    	}

  5. #5
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut Résolu
    Je viens de résoudre mon problème en mettant mon formulaire en method GET plutot que POST.

  6. #6
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut
    Rectification, mon problème n'est qu'a moitié résolu. Cela fonction mais sur mon formulaire, j'ai des bouton checkbox qui permettent de sélectionner des critères. Du coup, en GET ils ne sont plus pris en compte.

    Une autre idée?

  7. #7
    Membre confirmé
    Avatar de FERDIKAM
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2005
    Messages : 123
    Points : 616
    Points
    616
    Par défaut
    Utilise la superglobale $_REQUEST pour détecter si ta requête est du type GET ou POST

    fais un var_dump($_REQUEST) tu veras.

  8. #8
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par paintbox Voir le message
    j'ai une page recherche qui est donc un formulaire dont les variables sont transmises en POST. Sur la page résultat de la recherche, j'ai une pagination. La fonction pagination transmet les variables en GET.
    Ton script de traitement de recherche utilise du POST.
    Ton script de pagination utilise du GET.

    Tu peux combiner les deux en faisant par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="search.php?page=<?php echo $numéroDePageVoulu ?>" method="post">
    Ainsi tu ne perds ni l'un et ni l'autre.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  9. #9
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonsoir,

    Tu peux probablement te servir de ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if($_SERVER['REQUEST_METHOD'] === 'POST'){
        // ...
    }

Discussions similaires

  1. [AJAX]récupérer une variable transmise en get ?
    Par artotal dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/02/2008, 14h36
  2. Passage de variable GET via formulaire POST ?
    Par tintin72 dans le forum Langage
    Réponses: 4
    Dernier message: 25/07/2007, 17h51
  3. Réponses: 2
    Dernier message: 11/01/2007, 15h56
  4. recuperer variables passées en GET
    Par vivian dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/08/2006, 20h48
  5. [Tableaux] Modifier une variable passée en get
    Par akito dans le forum Langage
    Réponses: 10
    Dernier message: 20/08/2006, 18h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo