任务6 网上购物系统用户管理模块开发 PHP网站开发实战项目式教程 【知识目标】掌握产生随机数函数和图像函数掌握Cookie和Sess ion的使用【技能目标】制作验证码功能掌握制作注册与登录页面的流程学习目标目录子任务一:制作图像验证码子任务二:用户注册页面制作子 任务三:用户登录页面制作子任务一:制作图像验证码在用户注册网站时, 为了防止通过恶意程序采用试探的方式破解用户密码,采用了验证码功 能,这样做可以提高网站的安全性,在实际应用中验证码通常是用字母和数字的组合,并且有一个干扰背景图像。mt_rand()函数主要用于 获取随机数值,语法格式: Int mt_rand([int min],[int max]);例如:输出一个4位数的随机数 $ str="abcdefghijklmnopqrstuvwxyz0123456789"; for($i=0;$i<4;$i++){ @$num.=substr($str,mt_rand(0,35),1); } echo $num;图像函数1、imagec reate()函数,创建一个空白图像,语法如下: resource imagecreate(int x_size,int y_si ze); 其中:x_size,y_size用于指定图像的宽度高度2、Imagecolorallocate()函数,为以上空白图像指 定背景颜色和内容颜色,语法如下: int Imagecolorallocate(resource image, int red, int green, int blue) 其中:第2、3、4个参数为0-255的数字范围图像函数3、imagechar ()函数,沿水平方向向图像中写入一个字符,语法如下: bool imagechar ( resource image, int f ont, int x, int y, string c, int color )4、Imagestring()函数,沿水平方向在图 像中写入一行字符串,语法如下: bool imagestring ( resource image, int font, int x, int y, string s, int color )图像函数5、header()函数,设置输出图像文件的MIME类型,语 法如下:header("content-type:image/gif"); header("content-type:image/ jpeg"); header("content-type:image/png"); 6、imagegif()函数,可以生成GIF 格式的图像并将图像输出到浏览器,函数语法格式如下:bool imagegif ( resource image [, string filename] )(1)应用mt_rand()函数产生随机数(2)应用imagecreate()函数创建图像(3)添加不同颜 色的号作为干扰背景(4)通过for循环将随机数显示在所创建的图片中(5)输出图片 实施与测试子任务二:用户注册页面制作 用户注册 过程就是将用户注册时填写的信息插入到数据库用户表中;相关流程图如下:注册模块算法1、收集上一个页面传过来的注册信息;2、验证码是否 正确3、用户名是否重复;4、把注册信息写入到数据库中;5、判断如果注册成功则进入对应页面,否则注册不成功则显示不成功的信息。Coo kie1、创建Cookie bool setcookie(string $name[,string $value[,int $expire=0[,string $path[,string $domain[,bool $secure]]]]])$name :Cookie的变量名$value:Cookie变量的值,该值保存客户端,不能用来保存敏感数据。$expire:Cookie的失效 时间,expire是标准的UNIX时间标记,可以用time()函数或mktime()函数获取,单位为秒。$path:Cookie在 服务端的有效路径。$domain:Cookie有效的域名。$secure:指明Cookie是否仅通过安全的HTTPS连接来传输,值 为0或1Cookie例如:在一个页面创建Cookie变量name,其值为username,并设置Cookie有效期为1小时,在服务 器的有效目录是/tmp/,有效域名为test.com及所有子域名,且只有在https连接上有效: setcookie(‘name ’,’username’,time()+3600,’/tmp/’,’test.com’,1);Cookie2、读取Cookie 要想获取Cookie中的信息,可以使用全局数组$_COOKIE[]来读取。 比如在另一个页面可以访问Cookie的值:$user name = $_COOKIE[‘name’];Cookie3、删除Cookie 把Cookie的值设为空或有效期设为小于当前时 间的值,即删除了Cookie,例如:setCookie(“name”,””,time()-1);SESSIONSession技术与 Cookie类似,都可以用来存储访问者的信息,但最大不同在于Cookie是将信息存放在客户端,而Session是将数据存放于服务器 中。Session可以称之为客户端与服务器的会话期,从客户端输入网站的网址开始访问到关闭浏览器结束访问,经过的这段时间就可以称之为 一个Session,它是一个特定的时间概念。SESSION我们把Cookie比喻成第一次去商场时为你提供的会员卡,并由用户自己保存 ,如果用户会员卡丢失了就不能以会员身份购物。如果我们在办理会员卡时,把会员卡保存在商场,我们只提供卡号,下次购物时只提供卡号就可以 了。Session就是这样,在服务器端保存Session变量的名和值,同时在客户端保存由服务器创建的一个Session标示符(Se ssionID)。当用户再次访问服务器时,就会把SessionID发送给服务器,根据SessionID就可以提取保存在服务器端的S ession变量的值。SESSIONSESSION提供了所有网页都共同使用的公共变量存贮机制 session_ start(); //启动会话,本句要放在php代码开头。必须启动了才可以在会话期间存储和访问任何数据。 .. . $_SESSION[''nowuser'']=$username; //保存验证过的用户名(已登录)到服务器内存的会话变量。 $_SESSION为全局变量,只需要在$_SESSION后的括号内提供会话变量名即可。注销session退出登录必须结束当前会话, 并且清空会话中的所有资源。1、清空释放session变量unset()函数(一个)$_SESSION=array()可一次销毁所有 会话变量2、注销会话变量session_destroy()函数mysqli_affected_rows()取得前一次mysql操作 影响的记录数mysqli_affected_rows(数据库连接信息)例如:$addsql="insert into tb_use r values('''',''$yhm'',''$dlmm'',''$xydz'',''$yhdz'' ,''$lxdh'',''$time'')";$addrs=mysqli_query($link,$addsql);if(mysqli_a ffected_rows($link)>0){ header("location:login.html");}else{ echo ''''; echo ''''; }子任务三:用户登录页面制作用户登录就是将用户登录填写的帐户信息和数据库中的信息相匹配,如果一致则登录成功。相关流程图如下:登录模块登录成功登录失败header()函数php如何跳转页面。利用header函数, header函数在PHP中有很多功能,最常见的是重定向功能 。跳转到另一页面 header("Location:网址");例 header("Location:index.php"); |
|