Java 发送字符串[]b httprequest并在php中获取b$\u get
我想通过HTTP请求发送一个Java 发送字符串[]b httprequest并在php中获取b$\u get,java,php,json,httprequest,Java,Php,Json,Httprequest,我想通过HTTP请求发送一个字符串[],并使用$\u get方法获取PHP中的值。 字符串[]中的值总数是可变的。 到目前为止,我已经尝试过: List<NameValuePair> params = new ArrayList<NameValuePair>(); String[] dropdowns = {"1st item","2nd item","3rd item","4th item"}; for (int i = 0; i < dropdowns.leng
字符串[]
,并使用$\u get
方法获取PHP中的值。字符串[]
中的值总数是可变的。到目前为止,我已经尝试过:
List<NameValuePair> params = new ArrayList<NameValuePair>();
String[] dropdowns = {"1st item","2nd item","3rd item","4th item"};
for (int i = 0; i < dropdowns.length; i++) {
params.add(new BasicNameValuePair("pid", dropdowns[i]));
}
然后像这样使用它们:
$result = mysql_query("SELECT *FROM Apps WHERE pid[0] = $pid" AND pid[1] = $pid"
AND ...);
但我知道这种方式是错误的。
如何才能做到这一点?除非您有一个输入数组,例如:
<input type='text' name='manyOfThese[]' />
然后是下一个脚本
$pid = $_SESSION['pid'];
unset($_SESSION['pid']);
foreach($pid as $element){
echo $element //or do whatever you need to do to that variable
}
在脚本的开头,您还需要包括:
会话_start()
然后当退出php应用程序时(例如,在注销时):
会话_destroy() 这个
$result = mysql_query("SELECT *FROM Apps WHERE pid[0] = $pid" AND pid[1] = $pid" AND ...);
这是非常错误和不安全的。(列错误语法、SQL注入、错误引用、错误SQL语法等)
一定有点像
$result = mysql_query("
SELECT * FROM Apps WHERE pid
IN(" . implode(',', mysql_real_escape_string($pid)) . ")
");
您可以创建要在url中发送的值的序列化重新命名。它有一些限制,例如url的最大长度
'http://domain.com/data_handler.php?data=' . urlencode(serialize($array1));
取回您的阵列:
$array1 = unserialize($_GET['data']);
创建post请求并使用以下语法更好:
pid[]=1
pid[]=2
这有两个部分,都涉及循环。首先,在发送数据时,将括号放在名称中以数组形式发送:
for (int i = 0; i < dropdowns.length; i++) {
params.add(new BasicNameValuePair("pid[]", dropdowns[i]));
}
显然,您应该使用实际值做一些其他事情,以避免sql注入 如果在params.add中使用名称“pid[]”,可能会出现这种情况。但当发送httprequest时,您在PHP页面中看到了什么?尝试放置一个var_dump($_-GET)以查看。如何在php中使用var_-dump($_-GET)检索pid[I]编号?替换$pid=$_-GET['pid']。放置var_dump($_GET);。因此PHP dump var$\u GET将参数send与Java联合起来。但是您必须从Java到PHP页面进行httprequest,以查看send.OK是什么。那么,我如何在php中检索n个项目的pid[I]?php接收类似数组的'pid'参数?var_dump会看到这一点。你能更具体一点吗?如何检索p'p中n个项目的pid[I]?请参阅使用foreach循环进行加法
pid[]=1
pid[]=2
for (int i = 0; i < dropdowns.length; i++) {
params.add(new BasicNameValuePair("pid[]", dropdowns[i]));
}
$x = 0;
foreach($_GET['pid'] as $value) {
$yourSQLString .= " AND pid[". $x ."] = '" . $value . "'";
$x++;
}