Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:有人知道像Facebook页面那样的会话处理吗?_Php_Session - Fatal编程技术网

PHP:有人知道像Facebook页面那样的会话处理吗?

PHP:有人知道像Facebook页面那样的会话处理吗?,php,session,Php,Session,问题: 用户已登录 所以当我打字的时候 local.test_php.com/form/ 它需要我登录页面。local.test_php.com/form/index.php 但是我想把它放到我的主页上 我想要的是当我们键入facebook.com(之前已经登录)并重定向到新闻提要时,facebook所做的事情。。。但在我的情况下,我会被重定向到登录页面(即使我已经登录),所以我必须再次登录或键入url才能进入主页 我不知道如何自定义会话,以便在用户登录时始终重定向到主页。它不应该采取我登录页面

问题: 用户已登录 所以当我打字的时候 local.test_php.com/form/

它需要我登录页面。local.test_php.com/form/index.php

但是我想把它放到我的主页上

我想要的是当我们键入facebook.com(之前已经登录)并重定向到新闻提要时,facebook所做的事情。。。但在我的情况下,我会被重定向到登录页面(即使我已经登录),所以我必须再次登录或键入url才能进入主页

我不知道如何自定义会话,以便在用户登录时始终重定向到主页。它不应该采取我登录页面在任何情况下

主页如下所示:

<!DOCTYPE html>
<html>
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>

<head>
    <title>My first PHP Website</title>
</head>
<body>
<h2 align="center">Home Page</h2>
<?php
session_start();
if(isset($_SESSION['user'])){

}else{
    header("location: index.php");
}

$user = $_SESSION['user'];
echo "<br>";
echo "WELCOME ".$user." ";
echo "<br>";
echo "Do you want to ";
print '<a href="logout.php" align="left">logout</a>';
echo " ?";
echo "<br>";

?>
</body>
</html>

我的第一个PHP网站
主页
试试这个:

    <?php
    session_start();
    if(isset($_SESSION['user'])){

    }else{
        header("location: index.php");
    }

    $user = $_SESSION['user'];
    echo "<br>";
    echo "WELCOME ".$user." ";
    echo "<br>";
    echo "Do you want to ";
    print '<a href="logout.php" align="left">logout</a>';
    echo " ?";
    echo "<br>";

    ?>
    <html>
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>

<head>
    <title>My first PHP Website</title>
</head>
<body>
<h2 align="center">Home Page</h2>

我的第一个PHP网站
主页
代码的问题在于,您希望在html输出后使用header函数,请尝试以下操作:

    <?php
    session_start();
    if(isset($_SESSION['user'])){

    }else{
        header("location: index.php");
    }

    $user = $_SESSION['user'];
    echo "<br>";
    echo "WELCOME ".$user." ";
    echo "<br>";
    echo "Do you want to ";
    print '<a href="logout.php" align="left">logout</a>';
    echo " ?";
    echo "<br>";

    ?>
    <html>
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>

<head>
    <title>My first PHP Website</title>
</head>
<body>
<h2 align="center">Home Page</h2>

我的第一个PHP网站
主页

您的代码的问题是,您希望在html输出之后使用header函数,我稍微重写了您的代码,因此现在它更具可读性

首先,当您想在页面上使用
header
函数或启动会话时,您应该在输出缓冲区中进行任何操作之前进行操作

如您所见,我删除了
echo
东西,如果您使用IDE作为编辑器,语法突出显示将帮助您阅读代码,并确保它是有效的

第二件事,如果您想让用户“记住”,当用户关闭所有存储会话变量的浏览器时,您需要给用户一个机会。但首先,修复代码

<?php
session_start();
if (!isset($_SESSION['user'])) {
    header("location: index.php");
}
?><!DOCTYPE html>
<html>
    <script src="//code.jquery.com/jquery-1.9.1.js"></script>
    <script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
    <head>
        <title>My first PHP Website</title>
    </head>
    <body>
        <h2 align="center">Home Page</h2>
<?php
    if (!empty($_SESSION['user'])) {
        ?>
        <p>WELCOME <?php echo $_SESSION['user']; ?></p>
        <p>Do you want to <a href="logout.php" align="left">logout</a>?</p>
        <?php
    }
?>
    </body>
</html>

我的第一个PHP网站
主页
欢迎光临

你想去吗


我稍微重写了您的代码,因此现在可读性更强

首先,当您想在页面上使用
header
函数或启动会话时,您应该在输出缓冲区中进行任何操作之前进行操作

如您所见,我删除了
echo
东西,如果您使用IDE作为编辑器,语法突出显示将帮助您阅读代码,并确保它是有效的

第二件事,如果您想让用户“记住”,当用户关闭所有存储会话变量的浏览器时,您需要给用户一个机会。但首先,修复代码

<?php
session_start();
if (!isset($_SESSION['user'])) {
    header("location: index.php");
}
?><!DOCTYPE html>
<html>
    <script src="//code.jquery.com/jquery-1.9.1.js"></script>
    <script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
    <head>
        <title>My first PHP Website</title>
    </head>
    <body>
        <h2 align="center">Home Page</h2>
<?php
    if (!empty($_SESSION['user'])) {
        ?>
        <p>WELCOME <?php echo $_SESSION['user']; ?></p>
        <p>Do you want to <a href="logout.php" align="left">logout</a>?</p>
        <?php
    }
?>
    </body>
</html>

我的第一个PHP网站
主页
欢迎光临

你想去吗



只是一个快速观察,您需要将您的
标题()
放在任何html/输出之前,否则您将得到一个“Headers all ready sent”错误,除此之外,您已经准备好了大部分逻辑,对吗?如果用户设置为空或不为空,请重定向到主页?@epodax能否请您详细说明使用代码…非常感谢。。!!在您自己提供的代码中,您已经准备好检查用户是否已登录,据我所知,您只有在未登录时才会被重定向?@epodax yes correct。但我想知道的是,当我们键入facebook.com时,facebook会做什么,我们会重定向到新闻提要。。。但在我的情况下,我会被重定向到登录页面,所以我必须再次登录或键入主页的url“记住我”功能?设置cookie,或将会话设置为更晚的过期日期。只需快速观察,您需要将
header()
放在任何html/输出之前,否则会出现“Headers all ready sent”错误,除此之外,您已经准备好了大部分逻辑,对吗?如果用户设置为空或不为空,请重定向到主页?@epodax能否请您详细说明使用代码…非常感谢。。!!在您自己提供的代码中,您已经准备好检查用户是否已登录,据我所知,您只有在未登录时才会被重定向?@epodax yes correct。但我想知道的是,当我们键入facebook.com时,facebook会做什么,我们会重定向到新闻提要。。。但在我的情况下,我会被重定向到登录页面,所以我必须再次登录或键入主页的url“记住我”功能?设置cookie,或将会话设置为更晚的过期日期。请添加$\u会话['user']=“user”;会话结束后,请启动,以确保此会话已设置。此方法在此处有效。引号中的用户是一个变量。?不,这将是值,因此您的输出将是:“欢迎用户”兄弟,你不明白我的问题,我不想要任何我知道如何得到的输出…这是我遇到的页面重定向问题…在facebook上,除非你注销,否则你永远无法登录页面…但在我的情况下,这是不应该发生的…你必须用SESSION_destroy()替换$_SESSION['user'];以确保取消设置会话。然后,您可以尝试转到页眉。对不起,我把你的问题搞错了。请添加$\u会话['user']=“user”;会话结束后,请启动,以确保此会话已设置。此方法在此处有效。引号中的用户是一个变量。?不,这将是值,因此您的输出将是:“欢迎用户”兄弟,你不明白我的问题,我不想要任何我知道如何得到的输出…这是我遇到的页面重定向问题…在facebook上,除非你注销,否则你永远无法登录页面…但在我的情况下,这是不应该发生的…你必须用SESSION_destroy()替换$_SESSION['user'];以确保取消设置会话。然后,您可以尝试转到页眉。对不起,我把你的问题搞错了。