【问题标题】:Why do I get an error when I try to retrieve the image coordinates via $_POST?当我尝试通过 $_POST 检索图像坐标时,为什么会出现错误?
【发布时间】:2013-03-05 14:40:33
【问题描述】:

在尝试处理图像映射时,如果我尝试通过 $_POST 检索坐标,则会出现错误。我不明白原因。

以下form

<form method='post' action='action_script.php'>
    <input name='coordinates' type='image' src='./rabbits.jpg' />
</form>

这是action_script.php 脚本:

<?php
echo "Coordinates : {$_POST['coordinates_x']} and {$_POST['coordinates_y']} ";

这个脚本抛出一个错误,说coordinates_xcoordinates_y 是未定义的。但是,如果我用$_REQUEST 替换$_POST,它可以正常工作并告诉坐标。为什么我在使用$_POST 时会报错?

以下脚本不会产生错误:

<?php
echo "Coordinates: {$_REQUEST['coordinates_x']} and {$_REQUEST['coordinates_y']}";

【问题讨论】:

  • 确定你有method="post"吗?如果您在表单中添加文本输入并提交,它会显示在$_POST 中吗?
  • 使用$_POST['coordinates'],它的意思是未定义,因为您输入的名称是坐标而不是坐标_x
  • @ColinMorelli 是的。它确实显示了文本
  • $_REQUEST 是 GET、POST、COOKIES 等的组合...播放中的侧面重定向)。试试var_dump($_SERVER['REQUEST_METHOD']),看看你会得到什么。

标签: php imagemap


【解决方案1】:

这是你的完整代码吗?您似乎没有向我们展示提交按钮等。

但重要的是您假设一切顺利并已发布,永远不要假设任何内容,使用任意运算符来实际检查是否发布了任何内容:

$xCord = isset($_POST['coordinates_x']) ? $_POST['coordinates_x'] : false;
$yCord = isset($_POST['coordinates_x']) ? $_POST['coordinates_x'] : false;

而且,正如所指出的,你真的应该做类似的事情

$xCord = isset($_POST['coordinates']) ? $_POST['coordinates'] : false;

如果它真的是你可以剥离的东西,那么这不应该破坏数据。

现在你可以实际检查它是否发布成功,事实证明它是假的,那么你只是做错了。

现在回显是有意义的

echo "Coordinates: $xCord and $yCord";

但话说回来,我觉得你的表格有点时髦。试试这个新方法,然后给我们完整的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多