PHP¥MYSQL注册登陆数据的一些处理

来源:互联网 发布:java面试简历 编辑:程序博客网 时间:2024/06/05 17:16

首先是用户的注册登陆:

用户登陆通常设计俩部分信息,一个用户名和一个密码。一般我们都还会加一个ID用于更方便的查询数据。往数据库中添加的密码是需要加密的,MySQL提供了一个SHA()函数,它会对文本串应用一个加密算法,其结果是一个加密串,长度固定为40个十六进制字符,而不论原始口令的长度是多少。所以这个函数实际上会生成一个唯一的表示口令的40个字符编码。

由于SHA()是一个MySQL函数而不是PHP函数,所以调用这个函数时,要作为在表中插入口令的查询的一部分。例如:

INSERT INTO mismatch_user(username, password, join_date)VALUES('jnettles',SHA('tatlover'),NOW());

在登陆过程中的另一端,同样要用SHA()函数,它会查看用户输入的口令是否与数据库中存储的加密口令匹配。SHA()函数是一种单向加密,无法还原。例如:

SELECT * FROM mismatch_user WHERE password = SHA('tatlover');

其他的加密函数MD5()也是MySQL的,php的有sha1()和md5();


ALTER TABLE mismatch_user CHANGE password password VARCHAR(40) NOT NULL;



cookie的一些介绍:

HTTP不支持注销,cookie是浏览器存储在用户计算机上的小段数据。cookie与PHP变量非常类似,只不过关闭浏览器或者关闭计算机之后cookie还存在。更重要的是cookie可以删除。cookie有俩个必须有的一个是名,一个是值。cookie可以有一个到期日期,打到这个日期时,这个cookie就会被销毁。可以创建一个没有到期日期的cookie,这种情况下,它就类似一个php变量,会在浏览器关闭时被销毁。

在php中使用cookie:

PHP通过一个名为setcookie()的函数和一个名为$_COOKIE的超级全局变量提供对cookie的访问。setcookie()函数用于设置一个cookie的值以及一个可选的到期日期,$_COOKIE超级全局变量用户获取一个cookie的值。删除cookie只需要设置一个过去的时间作为第三个参数即可。



会话:

cookie有一定的局限性,比如说依赖与浏览器。而绘画可以直接存储在服务器上,这样就不存在cookie所受到的浏览器限制。会话将数据存储在会话变量中,这在逻辑上等价于服务器上的cookie。使用PHP代码将数据放在一个会话变量中时,它会存储在服务器上。然后可以从PHP代码访问会话变量中的数据,这些数据会跨多个页面持久存储。类似与cookie,可以在任何时刻删除一个会话变量。不同于cookie,会话无法对一个会话变量将数据存储多久做太多的控制。会话一结束就会自动销毁会话变量,而会话往往在用户关闭浏览器时结束。所以尽管会话变量并非存储在浏览器上,它们也会收到浏览器间接影响,因为浏览器会话结束时它们就会被删除。

会话之所以称为会话有一个原因,它们有非常明确的开始和结束。与一个会话关联的数据会随该会话的生命期生存和毁灭,对此可以通过PHP代码控制。只在一种情况下无法控制会话的生命期,就是用户关闭浏览器时,这会导致会话结束,而不论你是否乐意。

session_start();//会话开始;浏览器关闭或者调用了session_destroy()会话就会结束

$_SESSION['username']='sidneyk';//赋值。使用直接用$_SESSION['username'];

通过session_destroy()销毁一个会话时,实际上并不会销毁会话变量,所以如果希望情况会话变量,必须手动的删除你的会话变量,销毁一个会话的所有变量有一种快速有效的方法,$_sesson超级全局变量设置为一个空数组。$_SESSION=array();

我个人写的一个小网站www.caozhicong.com

原创粉丝点击