英语不是我的母语,请原谅输入错误。
使用复选框数组,PHP代码有一个非常奇怪的问题。这是一个简单的复选框代码,在一个真实的网站上用俄语,在那里我帮助我的朋友修复:http://astrabis.ru/teoria/test2.php。
主机的PHP版本为5.3.13。
,但这段代码是在我的本地PC (Windows7,安装了Xamp Appache) PHP5.6.3版本中工作的。i已经安装在PHP服务器上,以调试我在这里描述的问题。
问题描述。在浏览器上可以很好地显示文件test2.php中的复选框,但是当我检查其中一些复选框并按Submit时,服务器不会将任何数据移动到处理数据的testrez2.php文件中。
详细信息。在文件test2.php中,有三个复选框数组: vata[] pita[] kapha[],test2.php代码片段:
<!DOCTYPE html>
<html>
<head>
...
<meta http-equiv=Content-Type content="text/html; charset=windows-1251" /><meta name=viewport content="width=device-width, initial-scale=1" />
...
</head>
...
<form action="http://www.astrabis.ru/teoria/testrez2.php" method="post">
...
<table cellspacing="1px">
<tbody>
<tr><td rowspan="3">????</td><td><input name="vata[]" type="checkbox" value="2">???????, ??????????; ???????????, ??????????? ?? ???????? ?????????, ???????????? ????????, ??????? ? ??? ?????? ? ? ??? ??????.</td></tr>
<tr><td><input name="pita[]" type="checkbox" value="2">???????????, ?????????????????, ????????????, ?????? ????, ????? ???????. ???????????? ???. ???????????? ???????? ? ????, ???? ??????? ??????? ???? ?? ????????????????? ????????.</td></tr>
<tr><td><input name="kapha[]" type="checkbox" value="2">?????????, ??????, ??????????, ?? ???????????? ???????.</td>
...
...
<tr><td rowspan="3">?????</td><td><input name="vata[]" type="checkbox" value="2">??????????? ? ????? ? ???????????.</td></tr>
<tr><td><input name="pita[]" type="checkbox" value="2">??????????? ? ?????????? ???????????, ?????? ?????????.</td></tr>
<tr><td><input name="kapha[]" type="checkbox" value="2">??????????? ? ????????????? - ????????,???????? ? ?.?.</td>
</tr>
</tbody>
</table>结果处理的文件testrez2.php具有一些简单的匹配性,但是我添加了一些调试代码来查看输入数据和其他信息-- testrez2.php代码片段:
...
<?php
echo "<br>vata : ";
print_r(array_values($_POST['vata']));
echo "<br>pita : ";
print_r(array_values($_POST['pita']));
echo "<br>kapha : ";
print_r(array_values($_POST['kapha']));
$x=0;
$y=0;
$z=0;
if (isset($_POST['vata']))
{$x=array_sum($_POST['vata']);}
if (isset($_POST['pita']))
{$y=array_sum($_POST['pita']);}
if (isset($_POST['kapha']))
{$z=array_sum($_POST['kapha']);}
$sum=$x+$y+$z;
//debug
echo "<br>x : $x";
echo "<br>y : $y";
echo "<br>z : $z";
echo "<br>sum : $sum";更多的是,历史上,我开始从站点调试另一个文件,并在一个文件testrez3.php中添加了相同的代码(它是由同一个真实url的test3.php激活的)。它与上面的testrez2.php文件中显示的调试打印代码相同。
对test3.php和testrez3.php进行了几天的工作,并停止了相同的问题!
我还将POST中的方法放到了test2.php testrez2.php ()文件中。我希望在浏览器Chrome的地址行中看到复选框数据确实被发送到服务器。它被发送了!但是testrez2.php也不接收任何数据。
见下面两个“获取”的匹配:真正的站点和我的PC本地主机
localhost/astrabis/astrabis.ru/test/testrez2.php?vata%5B%5D=2&pita%5B%5D=2&kapha%5B%5D=2&vata%5B%5D=2&pita%5B%5D=2&kapha%5B%5D=2
astrabis.ru/teoria/testrez2.php?vata%255B%255D=2&pita%255B%255D=2&kapha%255B%255D=2&vata%255B%255D=2&pita%255B%255D=2&kapha%255B%255D=2
发布于 2015-03-28 21:24:15
看看不同之处:
pita%5B%5D=2当地vs:
pita%5B%5D=2如果您对pita%5B%5D进行了解码,您将得到pita[],但另一个将是双用户编码的,如果您一旦得到pita%5B%5D就对其进行解码。这是你的问题。你应该看看那个双重密码是从哪里来的。我没有在你发布的代码中看到任何东西,所以可能是服务器设置。
https://stackoverflow.com/questions/29322489
复制相似问题