如何创建PHP登录计数器
我将首先说,我显然是一名高中生,所以这不是一个实际的网站,所以我只是想学习一些新的东西,但这并不像我想的那么容易。我正在尝试创建一个登录计数器,每当尝试登录失败时,该计数器都会回显剩余的数字。一旦计数器达到0,它应该重定向到谷歌。我的问题是会话变量不会倒计时。如果有人能帮助我,我将不胜感激如何创建PHP登录计数器,php,session,login,Php,Session,Login,我将首先说,我显然是一名高中生,所以这不是一个实际的网站,所以我只是想学习一些新的东西,但这并不像我想的那么容易。我正在尝试创建一个登录计数器,每当尝试登录失败时,该计数器都会回显剩余的数字。一旦计数器达到0,它应该重定向到谷歌。我的问题是会话变量不会倒计时。如果有人能帮助我,我将不胜感激 session_start(); if($_POST['submit']=='submit') { $_SESSION[x]=5; if($_POST['ps']=='happy8') {
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();
}
}
session_start();
如果($_POST['submit']=='submit')
{
$_SESSION[x]=5;
如果($_POST['ps']=='happy8')
{
$_SESSION[ps]=1;
标题('Location:private.php');
退出();
}
其他($_POST['ps']!='happy8')
{
如果($\u会话[x]>1)
{
$output='您还有'$'次会话[x].'次尝试剩余
';
$\u会话[x]=$\u会话[x]-1;
}
if($\u会话[x]==0)
{
会话_destroy();
标题('位置:https://www.google.com/');
退出();
}
}
}每次提交表单时,您都将尝试设置为5:
$\u会话[x]=5
你应该这样做:
session_start();
if (!isset($_SESSION[x]) $_SESSION[x]=5;
//Otherwise nothing, preserve the session value
if($_POST['submit']=='submit') {
...
}
另外,我不知道会话[x]==5代码>在此位置制作:
if($_SESSION[x]==0)
{
$_SESSION[x]==5;
session_destroy();
header('Location: https://www.google.com/');
exit();
}
您正在比较未赋值的值。正如Gonzalo所说,每次提交表单时,我都会重置x值。因此,我使用if(!isset($\u SESSION[x])只设置值,如果它不是通过值的减法设置的。1。这是一个分号省略的打字错误:$\u SESSION[x]第二行=5?输入错误,没有错误它只是不会倒计时,但谢谢我修复了它。哦,对不起,我以为我删除了它。我遇到了一个问题,当它达到0时它不会重置。所以我把它放在那里,但我想将它替换为会话销毁。isset使它倒计时,但现在,谢谢,我现在将尝试解决其余的问题。