嘿,所以我有一个网站要求用户输入他们的用户名和密码,然后它会检查我的 MySQL 数据库以查看凭据是否正确。现在,如果是这样,我想要它以便用户可以访问网站的其他部分,但不需要他们有内容地重新输入他们的信息。基本上让他们登录网站。
我以前从未做过这样的事情,我正在努力超越课堂项目的要求。我将如何实现这一目标?
有两种方法可以做到
如果您使用的是会话,则用户每次关闭浏览器后都必须登录。如果您使用 Cookie,它会在用户计算机上本地保存登录信息(因为您一定在各个网站上看到过“记住我”),用户将自动登录。您可以同时使用这两个选项,并根据用户的判断提供“记住我”选项
现在,存在与 Cookie 相关的安全问题(因为您永远无法在银行网站等上看到“记住我”,您可能会看到它用于记住用户名)。
此外,在这种设置中,您必须检查每个页面上的用户凭据,这些页面只能由授权用户访问。
如果没有正确编码,编写 SQL 注入预防性代码非常容易,而且它不是火箭科学。
要开始这种设置,您可以遵循一些 youtube 教程。有很多这样的。这是一个教程链接http://www.developphp.com/list_php_video.php#How_to_Build_a_Social_Network_Website 这是一个很好的初学者教程。教程 1-9 将解决您的目的。一旦您成为专家,您就可以编写自己的自定义和干净的代码。这些教程将帮助您了解您想要设计的一种系统的基础知识,然后是您的学习和感知。然后天空是极限:)
有两种可能的解决方案,但行为不同:
第一:是使用PHP 会话。$_SESSION
会话支持允许您在超全局数组中的请求之间存储数据。当访问者访问您的站点时,PHP 将自动检查(如果 session.auto_start 设置为 1)或根据您的请求(显式通过 session_start() 或隐式通过 session_register())检查是否已随请求发送了特定会话 ID。如果是这种情况,则重新创建先前保存的环境。例如,您可以存储用户是否使用以下内容登录:
session_start();
$_SESSION['loged_in']="yes";
并使用以下方法检索值:
session_start();
if($_SESSION['loged_in']=="yes"){ echo "logged in!"; }
第二:是PHP Cookies。PHP 透明地支持 HTTP cookie。Cookie 是一种在远程浏览器中存储数据并因此跟踪或识别返回用户的机制。您可以使用 setcookie() 或 setrawcookie() 函数设置 cookie。Cookie 是 HTTP 标头的一部分,因此必须在将任何输出发送到浏览器之前调用 setcookie()。这与 header() 具有相同的限制。您可以使用输出缓冲功能来延迟脚本输出,直到您决定是否设置任何 cookie 或发送任何标头。
Cookie 将凭据存储在本地,并在用户再次访问同一网页时使其再次可用。当您选中“保持登录”复选框时,您可以在其中存储登录详细信息。它与会话的不同之处在于,即使关闭浏览器并关闭计算机,cookie 也可以再次访问。
您应该使用 cookie。如何在这里: http: //php.net/manual/fr/features.cookies.php
使用会话变量,您可以验证用户是否已连接。