首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >记录登录项和会话状态

记录登录项和会话状态
EN

Stack Overflow用户
提问于 2014-09-03 01:33:24
回答 1查看 698关注 0票数 1

如何记录登录条目和会话状态?我已经搜索了源代码和想法,但我无法理解其中的一些。我想通过PHP问一段简单的代码。我有一个可以登录用户但不需要MySql数据库的代码,我想知道如何记录登录条目和连接我的PHP代码的会话状态。或者,如果您有其他需要MySql数据库的选项代码。

下面是代码:

"CONFIG.PHP“

代码语言:javascript
运行
复制
<?php
$user = "admin";
$pass = "password";
?>

"INDEX.PHP“

代码语言:javascript
运行
复制
<?php
include("config.php");

// Check form if is submited
if(isSet($_POST['trimite'])) {
// Check if user is equal with username and  password from config.php
if($_POST['user'] != $user || $_POST['pass'] != $pass) {
echo "Sorry, your data is invalid";
} else {
// Open the session for store user logged
session_start();
// Setting the session
$_SESSION['logat'] = "da";
// Redirecting user to admin page if is logged
Header('Location: admin.php');
}
} else {
// Form
echo '<form action="" method="post">
Username: <input type="text" name="user">
Password: <input type="password" name="pass">
<input type="submit" name="trimite">
</form>';
}
?>

"ADMIN.PHP“

代码语言:javascript
运行
复制
<?php
include("config.php");
// Start session
session_start();

// Check if user is logged and existing session
if(isset($_SESSION['logat'])) {
// Content for user logged
echo "Welcome ".$user." :) - <a href='logout.php'>Logout</a>";
} else {
// Redirecting to login page
Header("Location: ./");
}
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-03 01:57:49

始终将session_start()作为<?php之后的第一个语句

即使用户没有登录,也可以运行session_start()。session_start()应该是第一条语句。

注意,header()命令需要小写的h (而不是Header --这是错误的)。

index.php

代码语言:javascript
运行
复制
<?php
    session_start();
    include("config.php");

    // Check form if is submited
    if( isSet($_POST['user']) ) {
        // Check if user is equal with username and  password from config.php
        if($_POST['user'] != $user || $_POST['pass'] != $pass) {
            echo "Sorry, your data is invalid";
        } else {
            // Open the session for store user logged
            // Setting the session
            $_SESSION['logat'] = "da";
            $_SESSION['username'] = $_POST['user'];
            // Redirecting user to admin page if is logged
            header('Location: admin.php');
        }
    } else {
        // Form
        $out = '
            <form action="" method="post">
                Username: <input type="text" name="user">
                Password: <input type="password" name="pass">
                <input type="submit" name="trimite">
            </form>
        ';
        echo $out;
    }
?>

admin.php --以下是如何引用/使用用户名会话变量:

代码语言:javascript
运行
复制
<?php
    // Start session
    session_start();

    include("config.php");

    // Check if user is logged and existing session
    if(isset($_SESSION['logat'])) {
        // Content for user logged
        echo "Welcome ".$_SESSION['username']." :) - <a href='logout.php'>Logout</a>";
    } else {
        // Redirecting to login page
        header("Location: ./");
    }
?>

注意,只有在尚未向DOM发送数据的情况下才能使用header。有时候,这是很难防止的。下面是一个HTML标记,它允许您重定向到另一个页面:

代码语言:javascript
运行
复制
<meta http-equiv="refresh" content="0;url=http://example.com">

数字0(在url=之前)意味着重定向页面之前要等待的秒数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25634910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档