PHP教程之php生成SessionID和图片校验码的思绪和...
完成一个功能齐全的动态站点session 做一个后台上岸需求用到校验码,前台的用户跟踪需求用到SessionID,固然,默许的PHP开启了Session今后就有了一个SessionID,然而我需求本人的,而且可以存储进数据库,那末我就测验考试了一下,机关了以下的函数。/****** 发生Session ID ******/
根基的思绪:是把以后微秒的工夫获得, 然后发生以个随机数字, 把随机数字和以后工夫相加后加密一下, 最初再截取需求的长度
/*
函数称号:create_sess_id()
函数感化:发生以个随机的会话ID
参 数:$len: 需求会话字符串的长度,默许为32位,不要低于16位
返 回 值:前往会话ID
函数作者:heiyeluren
*/
function create_sess_id($len=32)
{
// 校验提交的长度是不是正当
if( !is_numeric($len) || ($len>32) || ($len<16)) { return; }
// 获得以后工夫的微秒
list($u, $s) = explode(' ', microtime());
$time = (float)$u + (float)$s;
// 发生一个随机数
$rand_num = rand(100000, 999999);
$rand_num = rand($rand_num, $time);
mt_srand($rand_num);
$rand_num = mt_rand();
// 发生SessionID
$sess_id = md5( md5($time). md5($rand_num) );
// 截取指定需求长度的SessionID
$sess_id = substr($sess_id, 0, $len);
return $sess_id;
}
/****** 发生校验码 ******/
思绪: 这个思绪对照复杂,由于思索举世无双和随机性,咱们的校验码就Session ID外面截取一段字符串就能够了,由于咱们的SessionID是充实思索了举世无双的。
/*
函数称号:create_check_code()
函数感化:发生以个随机的校验码
参 数:$len: 需求校验码的长度, 请不要善于16位,缺省为4位
返 回 值:前往指定长度的校验码
函数作者:heiyeluren
*/
function create_check_code($len=4)
{
if ( !is_numeric($len) || ($len>6) || ($len<1)) { return; }
$check_code = substr(create_sess_id(), 16, $len );
return strtoupper($check_code);
}
/******生成校验码的图片 ******/
这个就是一些对照复杂的PHP图象编程的器材了,我作的图片和复杂。
/*
函数称号:create_check_image()
函数感化:发生一个校验码的图片
参 数:$check_code: 校验码字符串,普通由create_check_code()函数来取得
返 回 值:前往该图片
函数作者:heiyeluren
*/
function create_check_image( $check_code )
{
// 发生一个图片
$im = imagecreate(65,22);
$black = ImageColorAllocate($im, 0,0,0);// 后台色彩
$white = ImageColorAllocate($im, 255,255,255);// 远景色彩
$gray = ImageColorAllocate($im, 200,200,200);
imagefill($im,68,30,$gray);
// 将四位整数验证码绘入图片
imagestring($im, 5, 8, 3, $check_code, $white);
// 到场搅扰象素
for($i=0;$i<200;$i++)
{
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
}
// 输入图象
Header("Content-type: image/PNG");
ImagePNG($im);
ImageDestroy($im);
}
这里咱们要注重,援用create_check_image()函数的时分,必需在一个独自的文件里,由于输入文件头的时分输入的格局是图象格局,同化其他内容,会招致图片没法显示。别的,图片成生函数,你是可以更改的,好比你想改色彩,那末你就把远景色和后台色的生成地位换一下,那末色彩就纷歧样了,同时也要把校验码的色彩换了,否则后台和校验码都是黑色就显示不出来了。PHP的理解是新手最难迈过的一道门槛,不过你应该感到幸运的是PHP已经最大极限的为了新手而努力了,如果你学过其他的语言,也许会觉得PHP的确相当的简单,但是如果你之前什么都没学过,那么阿弥陀佛,硬着头皮琢磨吧。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。 如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了, 刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。 做为1门年轻的语言,php一直很努力。 实践是检验自己会不会的真理。 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 兴趣是最好的老师,百度是最好的词典。 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql 开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
页:
[1]
2