这篇文章主要介绍了PHP针对多用户实现更换头像功能的相关资料,本文分步骤介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
一个网站,其实说白了就是某几个特定功能的组合,而更换用户头像就在这些功能之中。今天就来做个测试,针对不同的用户,实现头像上传功能。
先给大家展示下成品效果图:
思路
针对不同的用户上传头像,我们要为每一个已登录的用户创建一个文件夹,文件夹的名称以当前用户的用户名为准。
用户上传成功后,跳转到用户登录成功后的页面,并刷新用户头像。
登陆页面
表单制作
<form role="form" action="./forindex.php"><p class="form-group"><label for="name">用户名</label><input type="text" class="form-control" id="username" name="username"placeholder="请输入名称"></p><p class="form-group"><label for="inputfile">文件输入</label><input type="password" id="inputfile" name="password"><p class="help-block">这里是块级帮助文本的实例。</p></p><p class="form-group"><label>请输入验证码</label><input type="text&qu<a style="color:transparent">、本文来源gao($daima.com搞@代@#码$网</a><big>搞gaodaima代码</big>ot; id="checkcode" name="checkcode" /><img id="imagecheckcode" src="./store.php?r=<?php echo rand();?>" /><a href="javascript:void(0);" onclick="change()" >看不清</a></p><script>function change(){document.getElementById("imagecheckcode").src = "./store.php?r="+ Math.random(); }</script><button type="submit" class="btn btn-default">提交</button></form>
验证码制作
<?phpsession_start();// 必须在php的最开始部分声明,来开启session// 使用gd的imagecreatetruecolor();创建一张背景图$image = imagecreatetruecolor(100,40);// 生成填充色$bgcolor = imagecolorallocate($image,255,255,255);// 将填充色填充到背景图上imagefill($image,0,0,$bgcolor);//////// 生成随机4位字母以及数字混合的验证码$checkcode='';for($i=0;$i<4;$i++){$fontsize = rand(6,8);$fontcolor = imagecolorallocate($image,rand(0,255),rand(0,255),rand(0,255));// 为了避免用户难于辨认,去掉了某些有歧义的字母和数字$rawstr = 'abcdefghjkmnopqrstuvwxyz23456789';$fontcontent = substr($rawstr,rand(0,strlen($rawstr)),1);// 拼接即将诞生的验证码$checkcode.=$fontcontent;// 避免生成的图片重叠$x += 20;$y = rand(10,20);imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor); }// 保存到session变量中$_SESSION['checkcode']=$checkcode;// 生成一些干扰的点,这里是200个for($i=0;$i<200;$i++){$pointcolor = imagecolorallocate($image,rand(50,255),rand(50,255),rand(50,255));imagesetpixel($image,rand(0,100),rand(0,30),$pointcolor);}// 生成一些干扰线 这里是4个for($i=0;$i<4;$i++){// 设置为浅色的线,防止喧宾夺主$linecolor = imagecolorallocate($image,rand(50,255),rand(50,255),rand(50,255));imageline($image,rand(0,99),rand(0,29),rand(0,99),rand(0,29),$linecolor);}header('content-type:image/png');imagepng($image);// 释放资源,销毁执行对象imagedestroy($image);