php - PHP 表单提交代码中的未定义索引错误

标签 php html mysql

我不断得到一个 undefined index 。当我关闭错误报告时,一切都很好,但我正在寻找一种“正确的方式”来解决这个问题

在我的 register.php 表单上,按钮看起来像这样

<input type="submit" name="submit" class="btn btn-kani btn-lg" value="Sign Up"/>

然后链接到另一个名为 login.php 的页面

登录.php代码

我试过了

if (isset($_POST['submit']=="Sign Up")) {
// etc.

我试过了

if ($_POST['submit']=="Sign Up") { 
// etc.

与由于 session 而注销相同,不确定应该如何编码....按钮显示

<li class="inactive"><a href="logout.php?logout=1">Log Out</a></li>

和login.php上的代码

if($_GET["logout"]==1 AND $_SESSION['id']) {
    session_destroy();
    header("Location:../logout.php");       
}

最佳答案

没有 isset() 评估里面的内容并告诉你它是对还是错:

所以这个表达式对你想要做的事情没有真正意义:

if (isset($_POST['submit']=="Sign Up")) {

应该是这样的:

if(isset($_POST['submit'])) { // if index submit <input type="submit" name="submit" /> button was pressed
    // so if the button is pressed, then it will go inside this block
}

如果你想评估它的存在和值(value),你可以这样做:

if(isset($_POST['submit']) && $_POST['submit'] == 'whatever value') {

}

关于 session ,您可以这样检查:

if(isset($_GET['logout'], $_SESSION['id']) && $_GET['logout'] == 1) {
    // if both get logout and session id does exists and logout is equal to 1
    session_destroy();
    header('Location: ../logout.php');
}

如果您需要更多补充信息,可以查看 deceze 的 The Definitive Guide To PHP's isset And empty .这是一本很好的读物, Eloquent 地解释了如何将它用于测试用例,类似于您的测试用例

关于php - PHP 表单提交代码中的未定义索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26091201/

相关文章:

javascript - ajax,jquery 联系表单与 reCAPTCHA v2 - 500 内部服务器错误

php - 获取主键作为外键放入其他表中

php - 获取 mysql 表列描述

javascript - 是否可以使用 JavaScript 从音频文件中提取幅度数据?

javascript - 日期格式被错误解释

php - 表关系问题 - 从第二个表收集信息

php - 使用 jquery 自动完成标签时的 utf-8 问题

javascript - 修改和切换 float 元素的位置

php - 将 PHP 当前时间戳与数据库中的时间戳进行比较

javascript - 在 Java 中使用 Mysql 和 servlet