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 :

Variable globale $_REQUEST


Sujet :

Langage PHP

  1. #1
    Membre très actif
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Par défaut Variable globale $_REQUEST
    Bonjour,

    je ne parviens pas à comprendre ce que signifie cette variable globale ni à quoi elle sert ?

    Merci pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 414
    Par défaut
    Php est le langage serveur le plus employé sur le Web. Aussi il est facile d'avoir des informations dans un moteur de recherche. Par exemple le terme "$_REQUEST php" renvoie la doc en premier lien :
    Citation Envoyé par manuel php
    Un tableau associatif qui contient par défaut le contenu des variables $_GET, $_POST et $_COOKIE.
    Et donc elle permet de récupérer l'ensemble des variables $_GET, $_POST et $_COOKIE. C'est utilisé assez rarement puisqu'on ne peut pas savoir exactement l'origine des variables mais il y a des ordres de récupération (cf variables_order) par exemple $_POST['a'] aura la priorité sur $_GET['a']. Autant éviter son utilisation si possible car si on ne fait pas très attention cela peut être à l'origine de faille de sécurité dans le script.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    tu n'as pas eu la curiosité de faire une recherche ?? "$_REQUEST"

    On trouve tout de suite :


    Et comme dit ABCIWEB, il faut maitriser la provenance de ce qu'on récupère.
    Donc, utiliser de préférence $_POST, $_GET ou $_COOKIE, en fonction du besoin.

  4. #4
    Membre très actif
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Par défaut
    est-ce que je peux remplacer tous mes $_REQUEST par des $_POST systématiquement sans trop me poser de questions ?

  5. #5
    Membre Expert
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 946
    Par défaut
    Bonjour

    Ben non je ne pense pas !!!
    Comme dit plus avant, si c'est la partie $_GET qui est utlisée dans $_REQUEST, prendre $_POST ne donnera rien.

    Pierre

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tu peux remplacer les $_REQUEST par $_POST si ce sont des données transmises par méthode POST. Le plus souvent ça correspond à un formulaire (en méthode POST)
    Donc si tes codes qui utilisent $_REQUEST sont les scripts de traitement de formulaire, il y a de fortes chances que ce soit transparent.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 414
    Par défaut
    Pour compléter le message de Celira concernant les formulaires, vérifies l'attribut "action" des formulaires si tu veux faire ces remplacements. Il arrive qu'on passe des variables $_GET dans cet attribut en complément des variables $_POST.

    D'une manière générale si tu as trouvé du code qui est truffé de variables $_REQUEST, à priori c'est pas bon signe. Les utilisateurs expérimentés l'utilisent avec parcimonie (en commentant son emploi dans le code), voire pas du tout.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    j'apporte ma petite pierre.... ou plutôt, je viens jeter un pavé dans la mare !

    Il se peut aussi qu'on doive traiter... les 2 méthodes $_POST et $_GET !

    Par exemple, pour accéder à une fiche "article" :
    soit par un lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="article.php?id=123">article 123</a>
    -> $_GET['id'] !

    soit par un formulaire(à un autre endroit du site,...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="post" action="article.php">
      <input type="hidden" name="id" value="123" />
      <input type="submit" name="gotoarticle" value="article 123" />
    </form>
    -> $_POST['id'] !


    Le traitement sera alors :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      $id = 0;
    if( isset($_POST['id']) )
    {
      $id = $_POST['id'];
    }
    else if( isset($_GET['id']) )
    {
      $id = $_GET['id'];
    }

  9. #9
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 414
    Par défaut
    Citation Envoyé par jreaux62
    $id = 0;
    if( isset($_POST['id']) )
    {
    $id = $_POST['id'];
    }
    else if( isset($_GET['id']) )
    {
    $id = $_GET['id'];
    }
    Oui c'est un cas typique dans lequel le $_REQUEST peut être intéressant étant donné qu'avec les priorités des traitements il fera d'un coup l'équivalent de ce code avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id = isset($_REQUEST['id']) ? $_REQUEST['id'] : 0;
    Mais pour éviter de commenter le code et d'être dépendant des configurations serveur j'utilise la plupart du temps ton exemple ou deux opérateurs ternaires.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $id = isset($_GET['id']) ? $_GET['id'] : 0;
    $id = isset($_POST['id']) ? $_POST['id'] : $id;

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je confirme l'analyse des deux précédents posts. C'est d'ailleurs à peu près le seul cas où j'utiliserais $_REQUEST en fait.
    J'ai également vu des cas tordus, où le formulaire est en méthode POST mais il y aussi un paramètre dans l'URL. Du genre :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="post" action="article.php?id=123">
      <input type="text" name="titre" value="Le Titre" />
      <input type="submit" name="savearticle" value="save" />
    </form>
    Qui nécessite de récupérer id par $_GET et titre par $_POST, et où utiliser $_REQUEST pour se faciliter la vie est très tentant. Mais personnellement, je resterais sur $_GET['id'] et $_POST['titre'].
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Variable globale / Propriété des threads
    Par rgarnier dans le forum XMLRAD
    Réponses: 4
    Dernier message: 03/10/2003, 10h49
  2. Cacher Variable Url avec Variable Globale
    Par danuz dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/09/2003, 17h20
  3. Variable "globale" (dans plusieurs templa
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/06/2003, 19h22
  4. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59
  5. les variables globales static
    Par gRRosminet dans le forum C
    Réponses: 8
    Dernier message: 27/04/2002, 08h34

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