PHP 中的登录实现



假设我有两个页面登录.php和索引.php。在索引中.php我有两个按钮登录和注册。单击按钮后,用户被定向登录.php。

如果我想使用 PHP 实现登录功能,与 facebook 相关的东西,如果用户以前登录过,那么一旦设置用户名和密码,它就会绕过索引页面并直接进入登录页面。_SESSION美元是一种正确的方法吗?

例如:

   <?php
    session_start();
?><!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>Ayu</title>
    </head>
    <body>
<?php if (isset($_SESSION["user"])) { ?>
        <h1>Hi <?php echo $_SESSION["user"]; ?></h1>
        <a href="logout.php">Logout</a>
<?php } else { ?>
        <h1>Login</h1>
<?php echo (isset($_GET["error"])) ? '<p>You idiot!</p>' : ""; ?>
        <form action="new-user.php" method="post">
            <div>
                <label>
                    <strong>Username</strong>
                    <input type="text" name="username" />
                </label>
            </div>
            <div>
                <label>
                    <strong>Password</strong>
                    <input type="password" name="password" />
                </label>
            </div>
            <input type="submit" value="Log In" />
        </form>
<?php } ?>
    </body>
</html>

在登录功能中,我正在设置 $_SESSION 值

<?php
    session_start();
    if (count($_POST))
        if ($_POST["username"] == "ayu" && $_POST["password"] == "shee") {
            $_SESSION["user"] = "Ayushi";
            header("Location: ./");
        } else {
            unset($_SESSION["user"]);
            header("Location: ./?error");
        }
?>
是的,

使用和创建 ( $_SESSION ( 会话是检查登录用户的正确方法。

$_SESSION是一个"超全局"或自动全局变量。这 简单地说,它在整个脚本的所有范围内都可用。 没有必要做全局$variable;在函数中访问它 或方法。

检查页面顶部的会话,如果找到重定向到索引其他登录页面。

if(!isset($_SESSION['login_user'])){
      header("location:login.php");
   }

在这里使用我的 sql 在 php 中参考这个简单的登录示例

编辑

根据OP的要求 - 如果您想根据会话值隐藏索引中的特定部分.php页面或说用户是否已登录,可以像这样完成:

<?php
if(isset($_SESSION['login_user'])){
?>
<form>
   <input type="submit" name="whatever" />
   <!-- Other Fields -->
</form>
<?php
}
?>

上述代码中的 Html 表单仅在用户登录时显示,否则将被隐藏。

是的,会话是实现相同内容的最佳方式。您可以使用下面的php代码来解决您的问题

<?php
    session_start();
    if (!empty($_POST))
        if ($_POST["username"] == "ayu" && $_POST["password"] == "shee") {
            $_SESSION["user"] = "Ayushi";
            header("Location: ./");
        } else {
if($_SESSION["user"]!=''){
            unset($_SESSION["user"]);
}
            header("Location: ./?error");
        }else{
/* Write code for form */
}
?>

最新更新