如何创建PHP登录计数器

如何创建PHP登录计数器,php,session,login,Php,Session,Login,我将首先说,我显然是一名高中生,所以这不是一个实际的网站,所以我只是想学习一些新的东西,但这并不像我想的那么容易。我正在尝试创建一个登录计数器,每当尝试登录失败时,该计数器都会回显剩余的数字。一旦计数器达到0,它应该重定向到谷歌。我的问题是会话变量不会倒计时。如果有人能帮助我,我将不胜感激 session_start(); if($_POST['submit']=='submit') { $_SESSION[x]=5; if($_POST['ps']=='happy8') {

我将首先说,我显然是一名高中生,所以这不是一个实际的网站,所以我只是想学习一些新的东西,但这并不像我想的那么容易。我正在尝试创建一个登录计数器,每当尝试登录失败时,该计数器都会回显剩余的数字。一旦计数器达到0,它应该重定向到谷歌。我的问题是会话变量不会倒计时。如果有人能帮助我,我将不胜感激

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使它倒计时,但现在,谢谢,我现在将尝试解决其余的问题。