0

我想创建一个函数来检查用户是否已登录。如果是,则应将用户导航到 userActive,否则应显示 loginForm。

我还想在 loginForm 页面上进行检查,以检查用户是否已登录。如果是,则应将它们带到 userActive,或保留在 loginForm 页面上。

为什么问题是以下代码不起作用的原因。我一直在循环。

$_COOKIE['user_id'] = "user_id: 1";

activeUser();

function activeUser()
{
    if($_COOKIE['user_id'] == "user_id: 1")
    {
        header('location: index.php?a=activeUser');
    }
    else
    {
        header('location: index.php?a=loginForm');
    }
}

switch($_GET['a'])
{
    case 'loginForm':
        include_once('loginForm.php');
    break;

    case 'activeUser':
        include_once('activeUser.php');
    break;
}
4

3 回答 3

0

这不是在 PHP 中设置 cookie 的正确方法。有关详细信息,请参阅文档

于 2012-11-11T00:25:09.707 回答
0

如果你把它放在你的索引页面上......你正在使用 GET 变量重定向到你的索引页面......所以......循环后循环到同一页面。

您也没有正确设置 cookie。

您可能想要研究 SESSION 变量,以及在实现登录系统时可能更容易掌握的变量。

于 2012-11-11T00:27:28.953 回答
0

这是大多数框架的做法:

将所有请求重定向到一个页面:index.php

在此文件中加载您需要的所有函数/类(引导程序),这可能是:

  • 用户是否已登录(访问受限)?

  • 他来自哪个国家(显示他附近的内容)?

  • 他说什么语言(英语或西班牙语网站...)?

  • ...

  • 最后:他想去哪里(页面),他可以去那里吗?如果不重定向。

从头开始构建所有这些可能很棘手,会话、cookie、重定向、布局、视图、404、500、数据库查询(安全的)......大多数人使用框架,这里是其中的一些列表:

  • CakePHP

  • 代码点火器

  • Symfony

  • Zend 框架

希望能帮助到你。

于 2012-11-11T00:57:24.093 回答