0

我想问一下我是否提供了登录用户的链接,然后我没有登录就转到该链接,那么我该如何保护数据。我的意思是他的私人信息可能会被未注册的用户看到。所以我正在制作一个网站,我想保护未注册用户的数据。任何人都可以帮忙吗?还有谁能告诉我,当未注册用户尝试打开上述链接时,如何将链接重定向到登录页面?

4

1 回答 1

0

通常您可以使用$_SESSION变量来识别用户是否已登录。现在,个人资料页面将包含许多元素,例如他的私人消息、链接、他的电子邮件地址、编辑个人资料链接等。您希望保护这些元素免受未经授权的用户的侵害。所以首先检查用户是否登录:

 if (isset($_SESSION['loggedIn'])) { // $_SESSION['loggedIn'] is the variable I set to //TRUE when user filled the registration/login form. Otherwise it is set to FALSE.
  echo 'user is logged in';
  //rest of code goes here
}

方法 1 -

现在检查用户是否是网站用户。使用 MySql 查询进行检查。好吧,你可以为它创建一个函数。

function userisregistered(){ //检查 sql 数据库中当前登录用户的代码 //如果用户已注册,则返回 TURE,否则返回 FALSE }

您说过的一件事是,如果用户未注册,您希望将其重定向到另一个页面。你可以这样做——

 if(!isset($_SESSION['loggedIn'])){ //USER IS UNAUTHENTICATED --NO ACCESS
     header('Location: URL_of_page_you_want_user_to_redirect');
}

方法 2 -

现在我在这里假设如果用户通过了网站的身份验证,他可以访问 userX 的所有配置文件功能,否则不能。因此,对于这一部分,我可以提出 ajax 的优势,它可以获取详细信息并创建 DOM 元素。代码是这样的-

 if(isset($_SESSION['loggedIn']) and userisregistered()){ //USER IS AUTHENTICATED --ALL FEATURES
     echo '<ul>\n<li>item1</li>\n<li>item2</li>\n<li>item3</li></ul>';

}
else if(isset($_SESSION['loggedIn'])){  //USER IS AUTHENTICATED  --LIMITED FEATURES
     echo '<ul>\n<li>item1</li>\n<li>item2</li>\n</ul>';
}
else   //NO ACCESS
           header('Location: URL_of_page_you_want_user_to_redirect');
于 2012-08-19T21:14:51.853 回答