我首先要说的是,我显然是一名高中生,所以这不是一个真实的网站,所以我只是想学习新的东西,但它并不像我想象的那么容易。我试图创建一个登录计数器,每次执行登录失败尝试时都会回显一个数字。一旦计数器达到0,它应该重定向到谷歌。我的问题是Session变量不会倒计时。如果有人可以提供帮助,我将不胜感激。
session_start();
if($_POST['submit']=='submit')
{
$_SESSION[x]=5;
if($_POST['ps']=='happy8')
{
$_SESSION[ps]=1;
header('Location: private.php');
exit();
}
elseif($_POST['ps']!='happy8')
{
if($_SESSION[x]>1)
{
$output='<p style="color:red">You have '.$_SESSION[x].' attempts left</p>' ;
$_SESSION[x]=$_SESSION[x]-1;
}
if($_SESSION[x]==0)
{
session_destroy();
header('Location: https://www.google.com/');
exit();
}
}
}
答案 0 :(得分:0)
每次提交表单时,您都会将尝试设置为5:$_SESSION[x]=5
你应该做这样的事情:
session_start();
if (!isset($_SESSION[x]) $_SESSION[x]=5;
//Otherwise nothing, preserve the session value
if($_POST['submit']=='submit') {
...
}
另外,我不知道$_SESSION[x]==5;
在这个地方做出了什么:
if($_SESSION[x]==0)
{
$_SESSION[x]==5;
session_destroy();
header('Location: https://www.google.com/');
exit();
}
您正在比较未分配的值。
答案 1 :(得分:0)
Gonzalo说我每次提交表格时都会重置x值。所以我使用if(!isset($ _ SESSION [x])仅设置值,如果它没有通过减去值来设置。