当前位置: 编程技术>php
本页文章导读:
▪PHP中MD5函数使用实例代码
一般来说,一个提供会员注册的网站必定需要采集用户的密码,如何保存用户密码就是个问题。我们当然不能将密码以明文的方式储存在数据库中,因为这样的话,一般的管理员就可.........
▪PHP时间戳使用实例代码
我们一定会碰到这样的情况:银行A与银行B几乎同时打开你的账户并看到你的账户上原有1000元存款,然后两家银行都想在你的账户上加上500元存款。那么,银行A便将1000元改成1500元.........
▪PHP-MySQL教程归纳总结
WindowsXP中快速配置Apache+PHP5+Mysql PHP读取MySQL数据 PHP组合查询多条件查询 PHP添加MySQL数据记录 用PHP进行MySQL删除记录操作 用PHP实现MySQL更新记录 这些都是PHP简单系统中最最基础的.........
[1]PHP中MD5函数使用实例代码
来源: 互联网 发布时间: 2013-11-30
一般来说,一个提供会员注册的网站必定需要采集用户的密码,如何保存用户密码就是个问题。我们当然不能将密码以明文的方式储存在数据库中,因为这样的话,一般的管理员就可以查看到用户密码,显然对用户来说是件相当危险的事情。
那如何解决这个问题呢,我们可以采取这样的策略。
首先介绍一下PHP中MD5函数的使用方法:
<?php
$pswd1=md5("cenusdesign");
echo $pswd1; //运行结果为:fc60ec37d1c08d5b0fb67a8cd934d5ba
$pswd2=md5("Cenusdesign");
echo $pswd2; //运行结果为:067577d9fc109c80538c81d6f02bd293
?>
显然,经过md5加密后,原本“cenusdesign”转变成了一组32位的字符串,而且,即使是一个字母的大小写变化,这组字符串就会发生巨大的变化。
Cenus Design建议把用户注册时,将密码首先经过MD5转换,然后将转换加密后的数据库。在用户登陆时,也将密码先进行MD5转化,再和数据库中那组经过MD5加密的字符串进行比较。这样,就可以做到在不知道用户确切密码的情况下完成密码的比对操作。
作者:Sunec
原载:Cenus Blog
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
那如何解决这个问题呢,我们可以采取这样的策略。
首先介绍一下PHP中MD5函数的使用方法:
代码如下:
<?php
$pswd1=md5("cenusdesign");
echo $pswd1; //运行结果为:fc60ec37d1c08d5b0fb67a8cd934d5ba
$pswd2=md5("Cenusdesign");
echo $pswd2; //运行结果为:067577d9fc109c80538c81d6f02bd293
?>
显然,经过md5加密后,原本“cenusdesign”转变成了一组32位的字符串,而且,即使是一个字母的大小写变化,这组字符串就会发生巨大的变化。
Cenus Design建议把用户注册时,将密码首先经过MD5转换,然后将转换加密后的数据库。在用户登陆时,也将密码先进行MD5转化,再和数据库中那组经过MD5加密的字符串进行比较。这样,就可以做到在不知道用户确切密码的情况下完成密码的比对操作。
作者:Sunec
原载:Cenus Blog
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
[2]PHP时间戳使用实例代码
来源: 互联网 发布时间: 2013-11-30
我们一定会碰到这样的情况:银行A与银行B几乎同时打开你的账户并看到你的账户上原有1000元存款,然后两家银行都想在你的账户上加上500元存款。那么,银行A便将1000元改成1500元,同时,银行B也将1000元改成了1500元。这样就糟糕了!最后,你的银行账户上最后只有1500元而不是理应的2000元,等于白白损失了500元!这就是在没有锁定数据的情况下修改造成的严重问题。然而,我们可以通过时间戳来巧妙解决这个问题。
我们来看思路:
在银行account表中建立时间戳字段timestamp,设定为文本类型varchar。
当银行A读取account表中的存款字段时,同时也读取时间戳字段,比如123456。
当银行A修改完存款数值后,进行存盘操作时,将先前读取的时间戳123456与当时表中的时间戳进行一次对比,如果一致,那么允许存盘,然后生成一个新的时间戳比如456789替换表中原有的时间戳123456。
这样做会带来什么好处呢。
我们再来看一开始的那个情况:银行A与银行B几乎同时打开你的账户并看到你的账户上原有1000元存款,与此同时两个银行业同时读取了时间戳123456,接下来就有区别了,当银行A把1000元改成1500元后,存盘,系统将对比先前的时间戳123456是否与存盘时表中的时间戳一致,显然,现在应该是一致的,那么允许存盘,并生成新的时间戳456789替换了旧的时间戳123456。接下去,B银行也将1000元修改成了1500元,存盘,系统对比先前的时间戳123456是否与存盘时表中的时间戳一致,发现先前的时间戳123456已经与现在的时间戳456789相异,系统拒绝存盘,要求刷新数据,那么数据刷新之后1000元已经因为之前A银行存入了500元而成为了1500元,那么B银行就会在1500元的基础上改为2000元,再次存盘,系统允许。这样,我们就避免了重复修改数据所带来的错误!
有些像绕口令,希望大家已经明白我的意思~
最后,让我们看看PHP中对时间戳的一些操作代码。
获得时间戳
<?php
$timestamp=time();
echo $timestamp;
?>
更新timestamp的SQL的语句:
update 表名 set 字段名=$timestamp where 条件=值;
作者:Sunec
原载:Cenus Blog
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
我们来看思路:
在银行account表中建立时间戳字段timestamp,设定为文本类型varchar。
当银行A读取account表中的存款字段时,同时也读取时间戳字段,比如123456。
当银行A修改完存款数值后,进行存盘操作时,将先前读取的时间戳123456与当时表中的时间戳进行一次对比,如果一致,那么允许存盘,然后生成一个新的时间戳比如456789替换表中原有的时间戳123456。
这样做会带来什么好处呢。
我们再来看一开始的那个情况:银行A与银行B几乎同时打开你的账户并看到你的账户上原有1000元存款,与此同时两个银行业同时读取了时间戳123456,接下来就有区别了,当银行A把1000元改成1500元后,存盘,系统将对比先前的时间戳123456是否与存盘时表中的时间戳一致,显然,现在应该是一致的,那么允许存盘,并生成新的时间戳456789替换了旧的时间戳123456。接下去,B银行也将1000元修改成了1500元,存盘,系统对比先前的时间戳123456是否与存盘时表中的时间戳一致,发现先前的时间戳123456已经与现在的时间戳456789相异,系统拒绝存盘,要求刷新数据,那么数据刷新之后1000元已经因为之前A银行存入了500元而成为了1500元,那么B银行就会在1500元的基础上改为2000元,再次存盘,系统允许。这样,我们就避免了重复修改数据所带来的错误!
有些像绕口令,希望大家已经明白我的意思~
最后,让我们看看PHP中对时间戳的一些操作代码。
获得时间戳
<?php
$timestamp=time();
echo $timestamp;
?>
更新timestamp的SQL的语句:
update 表名 set 字段名=$timestamp where 条件=值;
作者:Sunec
原载:Cenus Blog
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
[3]PHP-MySQL教程归纳总结
来源: 互联网 发布时间: 2013-11-30
WindowsXP中快速配置Apache+PHP5+Mysql
PHP读取MySQL数据
PHP组合查询多条件查询
PHP添加MySQL数据记录
用PHP进行MySQL删除记录操作
用PHP实现MySQL更新记录
这些都是PHP简单系统中最最基础的一些操作,任何复杂的系统都是由这些简单的操作衍生而来的。所以,彻底掌握理解这些操作是极其重要的。希望大家可以从中得到一些启发~
从下次专题开始,我将与大家一起深一步研究PHP简单系统的制作。从每一细小的环节着手,解决一些大家可能碰到的问题。希望大家可以喜欢。
如果大家在实践中遇到任何问题,都可以通过留言或者邮件的方式联系Cenus Design。我会尽力与大家分享经验!
PHP读取MySQL数据
PHP组合查询多条件查询
PHP添加MySQL数据记录
用PHP进行MySQL删除记录操作
用PHP实现MySQL更新记录
这些都是PHP简单系统中最最基础的一些操作,任何复杂的系统都是由这些简单的操作衍生而来的。所以,彻底掌握理解这些操作是极其重要的。希望大家可以从中得到一些启发~
从下次专题开始,我将与大家一起深一步研究PHP简单系统的制作。从每一细小的环节着手,解决一些大家可能碰到的问题。希望大家可以喜欢。
如果大家在实践中遇到任何问题,都可以通过留言或者邮件的方式联系Cenus Design。我会尽力与大家分享经验!
最新技术文章: