信游平台登陆

注册 | 登录 | 网址 接待拜候八百站长

PHP进修条记12(登录及注册考证模块3)

2015/7/28 23:08:20 作者:站长日志 来历:八百站长 浏览:3765次

一、防SQL注入手艺

可操纵addslashes()函数对此中的特别字符停止主动本义,即在特别字符前加上反斜杠,包含单引号、双引号、NULL,可是不包含%和_。

二、Ajax手艺完成无革新考证

Ajax,即异步Javascript和XML。Ajax的核心手艺是xmlHttpRequest。经由过程xmlHttpRequest中的open()体例和send()体例,可以或许在不革新今后页面的环境下向处置页的发送数据,经由过程xmlHttpRequest()中的responseText属性和responseXML属性,可以或许获得处置页的输出成果。

三、考证码手艺

为了避免用户名和暗码被暴力破解,在登录页面上天生一组随机数,每次革新页面时,随机数城市转变。普通考证码是4位,也有更位的。

1.获得考证码

可经由过程rand()函数天生随机数的体例获得。rand()可以或许获得指定规模内的随机数,语法以下:int rand([int min, int max])。若是省略两个参数,那末将前往0到RAND_MAX之间的随机数。Windows体系中RAND_MAX的值是32768。本例要获得4位16进制的整数,代码以下:

<?php
  for($i=0;$i<4;$i++){
    $num .=dechex(rand(0,15));
  }
?>

2.显现随机数图片

PHP中操纵GD函数来完成随机数图片,首要有以下函数:

(1)imagecreate()函数

用来建立一个基于调色板的空缺图象源,这是天生图象的第一步。

resource imagecreate(int width, int height)

(2)imagecolorallocate()函数

为建立的图象分派色彩。此中参数image即为上面建立的图象源,而red、green、blue表现红、绿、蓝三色的分派值。每种色彩的取值规模在1-255之间。

resource imagecolorallocate(resource image, int red, int green, int blue)

(3)imagestring()函数

为图象增加笔墨。参数image为图象源,font可以或许设置字体,也可以或许设置字号,字号为1-5的数字,参数x、y表现笔墨绝对图象源的坐标值,s表现要显现的笔墨,color表现笔墨色彩。

bool imagestring(resource image, int font, int x, int y, string s, int color)

(4)imagesetpixel()函数

这个函数的感化是画一个像素点。凡是操纵这个函数经由过程轮回向图象中增加搅扰点。

bool imagesetpixel(resource image, int x, int y, int color)

(5)imagepng()函数

将建立完成的图象以png格局输出。参数image是要保管的图象源,参数filename是要保管的图象名,若是省略,则间接输出到浏览器。

bool imagepng(resource image [, string filename])

图象间接输出到浏览器时,还需增加以下语句。若是是在<img>语句中引入,则可以或许省略该语句。

head("Content-type: image/png");

(6)imagedestroy()函数

图象保管终了后,操纵imagedestroy()函数来开释内存。

bool imagedestroy(resource image)

四、E-mail激活手艺

为避免歹意注册,良多网站接纳E-mail激活手艺。当用户注册胜利后,不是顿时就可以或许操纵,须要登录邮箱,经由过程体系收回的E-mail中的链接停止激活,只需激活后,账号能力操纵。对找回暗码的用户,体系会将新暗码发送到邮箱中,这在必然水平上进步了宁静性。

本模块操纵imap函数库中的imap_mail_compose()和imap_mail()函数来发送邮件。要操纵imap函数库,必须要先加载imap,不然在PHP中不撑持imap函数库。加载imap的体例是:找到PHP的设置装备摆设文件php.ini,找到该上面语句,将后面的分号“;”去掉,从头启动Apache办事器便可。

;extension=php_imap.dll

五、利用键盘呼应事务考证信息是不是正当

新用户注册时,跟着信息输出,体系及时显现信息的准确性;用户登录时,无需操纵鼠标来挑选文本框,只需按下回车键,核心就主动下移……这些功效,都是经由过程Javascript剧本中的键盘呼应事务来完成的,同时还可以或许借助Ajax手艺完成更庞杂的功效。

用户经由过程onkeydown和onkeyup事务来触发呼应事务,感化体例和onclick事务近似。onkeydown表现当键盘上的键被按下时触发,onkeyup则表现当键盘上的键被按下又抬起时触发。

在页面中加载事务的体例有多种,最经常利用的有以下两种:

(1)将事务间接增加到页面元素中

<script type="text/javascript">
  ...
  function refer(){
    ...
  }
</script>
<input type="text" onkeydown="refer()">

(2)经由过程window.onload加载

<script>
  window.onload=function(){
    document.getElementByID('lgname').onkeydown=funtcion(){
      ...
    }
  }
</script>
...
<input type="text" id="lgname">

六、利用Cookie手艺完成主动登录

Cookie的感化是当用户第一次拜候某办事器时,办事器将一些信息保管一用户端计较机内,在今后再次拜候这个办事器时,办事器经由过程Cookie信息,可以或许辨认该用户。Cookie操纵起来确切很便利,主动登录、网站统计等都要比其余的完成体例要简略、快速很多。