0

我使用 PHP 制作了一个注册表单和一个登录表单。注册表单将用户信息保存到数据库中。

但由于我对 PHP 还很陌生,所以我想实现这个想法。我还制作了一个电子商务网站的完整模板/主题,但我希望作为入口页面成为此注册表单,并且当我授予他们访问权限时,他们能够查看我的电子商务网站的全部内容。虽然我说当他们给我注册表单的字段时授予他们访问权限,在我向他们发送密码之前,他们将无法进入网站。所以我的问题是我怎样才能实现无法看到整个网站?我需要什么做保护吗?我的意思是我需要在注册表单上添加代码?在登录表单或模板/主题上?

谢谢!

4

4 回答 4

3

尝试使用 $_SESSION 变量。例如,创建一个初始为 false 的 $_SESSION['loggedIN'] 变量。该页面将始终验证该变量以允许或拒绝对内容的访问。

我猜还有一个登录表格,对吧?

因此,一旦登录表单操作允许,您将只允许访问 ($_SESSION['loggedIN']=TRUE)。当然有所有的验证和数据库访问过程,但这是解决您的问题的一个简单想法。

于 2012-07-24T16:11:50.230 回答
2

您需要在登录页面添加代码。代码应处理以下内容:

  1. 创建 $_SESSION[]
  2. 创建 $_COOKIE[]
  3. 创建一些秘密方式(数据库)来了解会话和 cookie 不是伪造的。

当时或页面访问仅限于已登录的人,

检查 $_SESSION, $_COOKIE 对秘密方式(数据库)

于 2012-07-24T16:15:54.270 回答
2

您需要跟踪注册过程,例如跟踪

  • 电子邮件是否已发送给用户?
  • 电子邮件何时发送给用户?
  • 用户确认注册了吗?

然后在主用户表中设置一个列值verified=(boolean)以通过查询检查用户是否已通过验证,然后在成功登录后使用会话存储数据,您需要在session_start()限制访问或禁用内容视图之后进行简单的 IF。

    if(USER_HAS_ROLE){
     // display_content 
    }else{
     // don't display content
    }
    //----------------
    if(USER_IS_LOGGED_IN){
     // access website
    }else{
     // redirect to login page
    }
于 2012-07-24T16:17:43.143 回答
0

似乎没有提到的一件事是,如果 session 登录变量为 false,则在 header() 重定向之后,脚本应该 die() 以防用户的浏览器忽略 Location: 标头。

于 2012-07-24T19:37:09.340 回答