Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有复选框数组的PHP代码在实际站点中不起作用,但在本地主机中起作用_Php_Html - Fatal编程技术网

带有复选框数组的PHP代码在实际站点中不起作用,但在本地主机中起作用

带有复选框数组的PHP代码在实际站点中不起作用,但在本地主机中起作用,php,html,Php,Html,英语不是我的母语;请原谅打字错误 我对PHP代码有一个非常奇怪的问题,即使用复选框数组。 这是一个简单的复选框代码,在真实的俄语网站上,我帮助我的朋友修复: 主机的PHP版本为5.3.13 但是这段代码,是的,在我的本地PC Windows7中运行,安装了Xamp Appache PHP版本5.6.3。我已经安装了PHP服务器来调试我在这里描述的问题 问题描述。文件test2.php中的复选框在浏览器上显示得非常完美,但当我选中其中一些复选框并按Submit时,服务器不会将任何数据移动到处理数

英语不是我的母语;请原谅打字错误

我对PHP代码有一个非常奇怪的问题,即使用复选框数组。 这是一个简单的复选框代码,在真实的俄语网站上,我帮助我的朋友修复:

主机的PHP版本为5.3.13

但是这段代码,是的,在我的本地PC Windows7中运行,安装了Xamp Appache PHP版本5.6.3。我已经安装了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>
...
<?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";
结果处理文件testrez2.php有一些简单的matematic,但我添加了一些调试代码来查看输入数据和其他信息 testrez2.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>
...
<?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也不接收任何数据

下面是两个GET的匹配:real site和my 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

看看区别:

pita%5B%5D=2
本地vs:

pita%255B%255D=2
如果您对pita%5B%5D进行URL解码,您将得到pita[],但另一个是双URL编码的,如果您对其进行一次解码,您将得到pita%5B%5D。这是你的问题。您应该检查双urlencode来自何处。
我在您发布的代码中没有看到任何内容,因此可能需要一些服务器设置。

警告:array_值期望参数1为array,在第23行的/home/astrabis/astrabis.ru/docs/teoria/testrez2.php中给出空值-在testrez2.php的第26行和第28行中相同。显示第23、26、28行“代码”22 echo vata:;'代码“23打印值$\u POST['vata'”;24回声皮塔:;25个打印值$\u POST['pita'];26回声卡帕:;27印刷价值$\u邮政['kapha'];玛丽娜,谢谢你的回答。我现在要谈谈这个警告。这是问题的核心。在打印中,_rarray_values$_POST['vata'];如上所示,vata不存在,因为服务器没有将其发送到testrez2.php文件。结果,$\u POST为空,数组\u值打印出警告。这是我专门为调试添加的cod。克里斯蒂安,谢谢你的回答。我也看到了区别。我展示了代码中的一行:我认为编码是问题所在。我将代码更改为UTF8编码,但没有更改字符集参数。这没有帮助。请给我一些朝向,我真的不知道该怎么办,多了吧。pita%255B%255D=2数据是从客户端Chrome发送的,您可以通过View page source命令查看HTML代码。我这样做了,但我不知道。这与字符集编码无关。请看:这就是发生的情况。Christian@,我仔细阅读了你的建议,但我不明白为什么这是服务器的问题,因为你指出,从Chrom客户端获取消息与本地主机不同。而且消息也不正确。现在,我请求该站点的所有者修改test2.php中的表单,添加“enctype=text/plan”,下一次尝试将是“=application/x-www…”