如何使用多个密码创建登录名

时间:2019-06-13 06:01:40

标签: php html forms login

我尝试了这个,但是没有用。

HTML:

<form id="login" method="post">
        <input type="text" name="login"><br>
        <input type="password" name="pass">
        <input type="submit">
    </form>

PHP

    $login = "citybank";
    $pass = array("ticket3", "ticket2", "ticket1");

    if(isset($_POST["login"])){

        if($_POST["login"] == $login and $_POST["pass"] == $pass){
            echo 'You are logged';
            echo "

            <script>            
            var post = document.querySelector('#login');
            post.style.display = 'none';
            </script>

            ";
        }else{
            echo "You are not logged.";
        }
    }

我认为我的array有问题。 我不知道我使用的方式是否正确。

谢谢

3 个答案:

答案 0 :(得分:2)

您可以使用in_array()函数来解决您的问题。 但是您应该使用数据库来存储密码。

php

$login = "citybank";
$pass = array("ticket3", "ticket2", "ticket1");

if(isset($_POST["login"])){
    if($_POST["login"] == $login && in_array($_POST["pass"], $pass)){
        echo 'You are logged';
        echo "

        <script>            
            var post = document.querySelector('#login');
            post.style.display = 'none';
        </script>

        ";
        }else{
            echo "You are not logged.";
        }
    }

答案 1 :(得分:2)

首先,您在这里遇到语法错误:

$pass = array("ticket3", "ticket2, "ticket1"); // missing "

您还搜索了数组中的值,因此应使用in_array()

<form id="login" method="post">
        <input type="text" name="login"><br>
        <input type="password" name="pass">
        <input type="submit">
    </form>

<?php


    $login = "citybank";
    $pass = array("ticket3", "ticket2", "ticket1");

    if(isset($_POST["login"])){

        if($_POST["login"] == $login and in_array($_POST["pass"], $pass)){
            echo 'You are logged';
            echo "

            <script>
            var post = document.querySelector('#login');
            post.style.display = 'none';
            </script>

            ";
        }else{
            echo "You are not logged.";
        }
    }

?>

警告:永远不要执行这样的登录逻辑,如果可以测试,就可以了,但是在生产环境中是 FORBIDDEN

这是受保护的登录系统的example

答案 2 :(得分:1)

<?php
    $login = "citybank";
    $pass = array("ticket3", "ticket2", "ticket1");

    if(isset($_POST["login"]))
    {
        $count=0;

        if($_POST["login"] == $login)
        {
            for($i=0;$i<3;$i++)
            {

              if($_POST["pass"] == $pass[$i])
              {
                 {
                    $count=1;
                     echo 'You are logged';
                     echo "
                     <script>            
                     var post = document.querySelector('#login');
                     post.style.display = 'none';
                     </script>
                     ";
                     break;
                 }

               }
            }
            if($count==0)
            {
            echo "You are not logged.";
            }

        }
    }
?>