使用 $postName = $_POST[变量] 时出错


Errors when using $postName = $_POST[variable]

当我尝试运行此代码时,出现以下错误:未定义的偏移量。我希望这足以解释我自己的代码。

$images_id = $row["image_id"];
echo "
    <form action='"index.php'" method='"post'">
        <input type='"submit'" name='"$images_id'" value='"like'" />
    </form>
";
$postName = $_POST["$images_id"];

如果您的表单未回发,则 $_POST 中没有可用的数据。在尝试访问数组之前,您需要检查数组中

是否存在密钥:
if (array_key_exists($images_id, $_POST)) {
  $postName = $_POST[$images_id];
}

对于新的PHP用户来说,这是一个常见的错误。帮自己一个忙,创建一个函数来处理检查变量的繁琐过程:

<?php
function getPostValue($key, $default = false)
{
    if ( isset($_POST[$key]) ) {
        return $_POST[$key];
    }
    return $default;
}
?>

这种方法被许多流行的PHP框架使用,如Laravel,Codeigniter等。