我之前在论坛上发布了一段代码,但没有人能回答这个问题。"注册"answers"注销"都是其他页面上的值类型按钮,链接到这个名为login.php 的页面代码
问题是我一直得到一个未定义的索引。有什么方法可以说它更好吗?
我。。
if ($_POST['submit']=="Sign Up") {
和。。
if($_GET["logout"]==1 AND $_SESSION['id']) { session_destroy();
header("Location:logout.php");
}
由于POST和GET变量必须根本不发送,请始终使用类似于以下方案的方案:
$var = isset($_POST['fieldname']) ? $_POST['fieldname'] : null;
if ( !isset($var) )
{
// errorhandling
}
else
{
// proceed ...
您得到的错误表明您的POST和/或get变量中至少有一个没有设置或拼写错误。
正如Axel所指出的,使用isset()函数检查$_POST是否具有"submit"的值,如果设置了该值,则可以按照您的方式访问该值。如果$_POST没有该值,则表示它没有被发送。
因此,在HTML中,检查按钮是否确实是以这种方式调用的,以及它是否位于ACTION属性和METHOD设置为POST的标记内。
还要小心与1进行比较,因为在PHP中is也意味着true。