慢速PHP登录表单

慢速PHP登录表单,php,security,login,mysqli,Php,Security,Login,Mysqli,我正在制作一个登录信息表单,但是加载表单本身需要很长时间(1-2秒),所以我想知道我是否做错了什么。 我也非常担心这种方法的安全性 谢谢你的帮助 <? if(isset($_POST['send'])) { $connection=mysqli_connect('host','user','password','database'); $email=$_POST['email']; $

我正在制作一个登录信息表单,但是加载表单本身需要很长时间(1-2秒),所以我想知道我是否做错了什么。 我也非常担心这种方法的安全性

谢谢你的帮助

<?
        if(isset($_POST['send']))
        {
            $connection=mysqli_connect('host','user','password','database');

            $email=$_POST['email'];
            $password=$_POST['password'];

            $query=mysqli_prepare($connection,'SELECT access FROM users_table WHERE email=? AND password=?');   
            mysqli_bind_param($query,'ss',$email,$password);
            mysqli_stmt_execute($query);
            mysqli_stmt_bind_result($query,$access);
            mysqli_stmt_fetch($query);

            if($access>=0)
            {
                session_start();
                $_SESSION['user_email']=$email;
                $_SESSION['user_password']=$password;
                $_SESSION['user_access']=$access;

                switch($access)
                {
                    case(0):
                        header('Location:admin page');
                    case(1):
                        header('Location:user page');
                }
            }
            else
            {
                echo 'Wrong Password!';
            }

            mysqli_stmt_close($query);

            mysqli_close($connection);
        }
        else
        {
            ?>
                <div id='login'>
                    <form method='POST' action=''>
                        <input name='email' type='email' placeholder='Enter your email...'>
                        <input name='password' type='password' placeholder='and your password.'>
                        <input class='button' name='send' type='submit' value='Send'>
                    </form>
                </div>
            <?
        }
    ?>

瓶颈可能来自MySQL连接(MySQL服务器是否位于web服务器的远程位置?)

您可以在
mysqli\u connect
函数前后保存一个时间戳(使用
microtime()
),然后减去end start得到总时间

例如:

$t = microtime(true);
// do connection here
die(microtime(true) - $t);

我不会将密码存储在纯文本中,更不会将其存储在会话中。是否在本地主机或web服务器上尝试?关于安全性,您将密码存储为明文,并将其毫无理由地保存到会话。您不会检查MySQL调用是否有错误。任何失败都可能使你的应用程序崩溃,但你不知道为什么。我本想在之后添加MD5,但我有点忘了。XD它在本地和服务器上运行,结果相似。谢谢会话提示,我将删除它。你是对的,只是服务器出现了问题:到处都是巨魔