【问题标题】:Access to a website only when I grant them access仅当我授予他们访问权限时才能访问网站
【发布时间】:2012-07-24 16:04:27
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: php forms login e-commerce registration


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,有一个登录表单。在我将密码发送给他们之前,表单是无用的。不知何故,我需要将所有网站放在首页后面并保护它!我会试试的!跨度>
    • 同意,我只想在您希望通过基本验证if($_SESSION['loggedIN'] === false){ header('location:login_page.php')} 保护的每个页面的顶部添加一个页面/功能@
    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      然后将列值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
          }
      

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-16
          相关资源
          最近更新 更多