0

我把这个案例变成了一个简单的 PHP 页面,它自己提交。我的问题是我正在提交田径比赛结果,其中一个女孩的名字是 Echo……一个可爱的名字。

我提交的问题文本是:撑杆跳 - Rachel Simons, Tow, 8-6; 回声威尔逊,Cit,8-0;莫莉·兰德尔,拖车,7-0;

所以你会看到一个分号,后跟空格,然后是 Echo ......

提交后,它说: POST to /results/test.php not supported

最终目标是将其与其他一些信息一起保存到数据库中,并有一个搜索页面来找到它,并在屏幕上简单地打印出完整的结果。我删除了我所有的数据库内容以解决这个错误。我的意思是,我可以故意拼错她的名字,但总有办法解决这个问题,对吧???

这是测试 PHP 文件。

<html>
<head>
<title>title</title>
</head>
<body>
<?php
echo "<h3>Edit meet info below</h3>";
echo "<form action=\"test.php\" method=\"post\" id=\"submitForm\">";
echo "Full Results:<br/><textarea NAME=\"results\" id=\"results\" rows=\"20\" cols=\"80\" MAXLENGTH=\"8191\"></textarea><br/><br/>";
echo "<input type=\"submit\" name=\"submitMeet\" value=\"Submit\">";
echo "</form>";
?>
</body>
</html>
4

2 回答 2

4

听起来您有一些蹩脚的安全系统(也许mod_security?),它正在扫描请求并拒绝看起来可能有风险的请求。

如果他们可以禁用它,您将不得不询问您的网络主机或其他东西。没有 PHP 函数会根据任何文本组合任意拒绝 POST 请求。(至少,在这种情况下不是)

于 2010-05-11T03:47:04.177 回答
0

你只需要让 Echo 改变她的名字……名字……名字。

说真的,看看 webdestroya 的建议。如果失败了,我认为快速而简单的解决方案是更改用于分隔 POST 请求中名称的分隔符,然后在收到分隔符后将其更改回分号。所以你会发布这样的东西:

Pole vault - Rachel Simons, Tow, 8-6||Echo Wilson, Cit, 8-0||Molly Randall, Tow, 7-0||

然后这样做:

$data = str_replace('||', ';', $the_data_you_posted);

If you don't want to manually type the delimiter when entering results, you could write a small JavaScript to convert the semicolons automatically, e.g. on submit.

于 2010-05-11T03:58:22.130 回答