我一直得到一个未定义的索引...当我关闭错误报告时,一切都很好,但我正在寻找一种方法来解决这个“正确的方式”
在register.php上的表单上,按钮看起来像这样
<input type="submit" name="submit" class="btn btn-kani btn-lg" value="Sign Up"/>
然后将其链接到另一个名为login.php的页面
Login.php代码
我试过了
if (isset($_POST['submit']=="Sign Up")) {
// etc.
我试过了
if ($_POST['submit']=="Sign Up") {
// etc.
与注销相同,因为会话,不知道应该如何编码....按钮读取
<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");
}
答案 0 :(得分:2)
否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
}
如果您想评估其存在和价值,您可以执行以下操作:
if(isset($_POST['submit']) && $_POST['submit'] == 'whatever value') {
}
关于会话,您可以这样检查:
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。这是一个很好的阅读,并雄辩地解释如何将它与测试用例一起使用,类似于你的
答案 1 :(得分:1)
if ($_POST['submit']=="Sign Up")
不首先检查以确保$_POST['submit']
中有值,这可能会导致“未定义的索引”;
if (isset($_POST['submit']=="Sign Up"))
只是没有意义。尝试类似:
if (isset($_POST['submit']) && ($_POST['submit']==="Sign Up"))