首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有复选框数组的PHP代码在实际站点中不工作,而是在本地主机中工作。

带有复选框数组的PHP代码在实际站点中不工作,而是在本地主机中工作。
EN

Stack Overflow用户
提问于 2015-03-28 20:54:08
回答 1查看 99关注 0票数 0

英语不是我的母语,请原谅输入错误。

使用复选框数组,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代码片段:

代码语言:javascript
复制
<!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代码片段:

代码语言:javascript
复制
...
<?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

EN

回答 1

Stack Overflow用户

发布于 2015-03-28 21:24:15

看看不同之处:

代码语言:javascript
复制
pita%5B%5D=2

当地vs:

代码语言:javascript
复制
pita%5B%5D=2

如果您对pita%5B%5D进行了解码,您将得到pita[],但另一个将是双用户编码的,如果您一旦得到pita%5B%5D就对其进行解码。这是你的问题。你应该看看那个双重密码是从哪里来的。我没有在你发布的代码中看到任何东西,所以可能是服务器设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29322489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档