2009-11-21 9 views
0

Mon code AJAX transmet QueryString à un fichier PHP. Le QueryString ressemble à ceci:Comment récupérer les valeurs QueryString sans utiliser GET?

var strUrl = "./lib/filldropdown.php?DivName = " + DivName + "&DropDownControlName = " + DropDownName + "&SqlQuery = " + SqlQuery; 

Dans le fichier « filldropdown.php », je veux aller chercher les valeurs de la chaîne de requête. Comment faire cela sans utiliser GET? Et aussi, s'il vous plaît laissez-moi savoir si la chaîne de requête est écrite correctement ou non.

+0

Peut-être pourriez-vous également expliquer pourquoi vous ne voulez pas utiliser GET en premier lieu? – hbw

+0

Parce que GET ne fonctionne pas. Je l'ai essayé, mais ce n'est pas choisir des valeurs. – RKh

+0

Dans ce cas, la chose à faire est de comprendre ce qui ne va pas. La réponse de Paul détient la clé. – outis

Répondre

3

Vous pourriez utiliser $ _REQUEST ['...'], qui répondra tous les deux aux paramètres envoyés via POST | GET.

+0

vous pouvez également supprimer ces espaces entre les = ex:? DivName = "+ DivName +" try? DivName = "+ DivName +" – nowk

+0

@nowk: Merci cela a fonctionné. – RKh

2

Ummm. $_GET['DivName'] devrait être une partie de vos données. Juste pour noter

  • Ne créez pas la chaîne de requête vous-même. Construire un tableau JS et utiliser une bibliothèque javascript (je recommande JQuery) pour faire la création QS
  • Le = ne devrait pas avoir des espaces
  • un Passing SQLQuery dans votre params est une mauvaise idée. Je vais rapidement pirater votre application, la seconde que je vois cela. Regardez les petites tables de bobby.
+0

-1 S'il ne l'utilise pas déjà, introduire jQuery juste pour créer une chaîne de requête est une idée horrible et carrément exagérée. +1 pour signaler la faille de sécurité avec le paramètre sql. –

+1

+1 pour les espaces, c'est pourquoi l'OP pense que PHP ne prend pas l'entrée. Un soulignement prendra la place des espaces dans les noms de clés. – outis

0

Etes-vous sûr d'utiliser $_GET et non $GET ou autre chose? Si c'est vraiment cassé (ce qui pourrait être dû à une sorte de problème de configuration, mais je n'ai jamais entendu parler de cela avant). $_REQUEST peut fonctionner pour vous, ou vous pouvez essayer d'obtenir la chaîne de requête à partir de $_SERVER['QUERY_STRING'], mais vous devrez l'analyser vous-même.

Comme Paul Tarjan souligné dans sa question, la chaîne de requête n'est pas correcte et il est sûr de transmettre des requêtes SQL à un script PHP. Ils doivent toujours être générés côté serveur avec un assainissement strict sur toutes les données fournies par l'utilisateur.

+0

@Justin: J'utilise $ _GET et non $ GET. – RKh

Questions connexes