php实现用户登录?用php写一个登录与注册
各位老铁们,大家好,今天由我来为大家分享php实现用户登录,以及用php写一个登录与注册的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
php如何实现登录验证码
php实现登录验证码的方法:首先产生4到6位数的随机验证码;然后把产生的每个字符保存到session或数据库;接着将验证码发送到用户的手机;最后将和输入的验证码进行对比验证即可。
推荐:《PHP视频教程》
PHP实现简单的验证码功能机制
网站的安全性是开发者不可忽视的一个问题,目前使用最多的一种可以提高网站安全性的方法就是使用验证码功能机制,有的仅仅使用一个几位数字字母混乱的验证码,有的进行手机发送短信进行验证,有的使用邮箱发送邮件进行验证,但是这个验证码功能机制是如何实现的呢?下面就为大家详细解释验证码功能机制的实现思路以及简单的实现方法。
1、验证码功能机制实现思路
①常规的验证码实现:
a、产生一张png的图片
b、为图片设置背景色
c、设置字体颜色和样式
d、产生4位数的随机的验证码
e、把产生的每个字符调整旋转角度和位置画到png图片上
f、加入噪点和干扰线防止注册机器分析原图片来恶意注册
g、输出图片
h、释放图片所占内存
i、将验证码保存到session或是数据库
j、将和输入的验证码进行对比
②短信(邮箱)验证码机制:
a、产生4-6位数的随机的验证码
b、把产生的每个字符保存到session或是数据库
c、将验证码发送到用户的手机(邮箱)
d、用户在规定时间内进行输入
e、将验证码从session或是数据库中取出
f、将和输入的验证码进行对比验证
2、简单的实现验证码功能机制
①新建captcha.php,写入以下代码
<?php
/**
*=======================================
* Created by WeiBang Technology.
* User: Wei ZhiHua
* Date: 2016/10/12 0020
* Time:下午 4:14
* Power:实现验证码功能
*=======================================
*/
//开启session
session_start();
//创建一个大小为 100*30的验证码
$image= imagecreatetruecolor(100, 30);
$bgcolor= imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0,$bgcolor);
$captch_code='';
for($i= 0;$i< 4;$i++){
$fontsize= 6;
$fontcolor= imagecolorallocate($image, rand(0, 120), rand(0, 120), rand(0, 120));
$data='abcdefghijkmnpqrstuvwxy3456789';
$fontcontent= substr($data, rand(0, strlen($data)- 1), 1);
$captch_code.=$fontcontent;
$x=($i* 100/ 4)+ rand(5, 10);
$y= rand(5, 10);
imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
}
//就生成的验证码保存到session
$_SESSION['authcode']=$captch_code;
//在图片上增加点干扰元素
for($i= 0;$i< 200;$i++){
$pointcolor= imagecolorallocate($image, rand(50, 200), rand(50, 200), rand(50, 200));
imagesetpixel($image, rand(1, 99), rand(1, 29),$pointcolor);
}
//在图片上增加线干扰元素
for($i= 0;$i< 3;$i++){
$linecolor= imagecolorallocate($image, rand(80, 220), rand(80, 220), rand(80, 220));
imageline($image, rand(1, 99), rand(1, 29), rand(1, 99), rand(1, 29),$linecolor);
}
//设置头
header('content-type:image/png');
imagepng($image);
imagedestroy($image);
?>②新建form.php,写入以下代码
php网站验证登录后怎么跳向用户管理页面
PHP登陆后跳转到用户管理页面,利用$_SERVER全局变量可以实现这个功能。
具体实现方法为:在提示用户登录的同时,在session或者cookie中记录下请求页面的URL;登录验证成功后在跳转回该URL。
1、checklogin.php代码:
session_start();
if(!isset($_SESSION['login_ok']))
{
echo"<script language=javascript>alert('要访问的页面需要先登录。');</script>";
$_SESSION['userurl']=$_SERVER['REQUEST_URI'];
echo'<script language=javascript>window.location.rel="external nofollow" href="login.php"</script>';
}
2、login.php代码
session_start();
//此处省略了账号密码验证代码,验证OK再执行下面代码
if(isset($_SESSION['userurl']))
{
//会话中有要跳转的页面
$url=$_SESSION['userurl'];
}
else
{
//没有要跳转的页面,则转到首页
$url="userManager.php";
}
//0.5s后跳转
echo"<meta http-equiv=\"refresh\" content=\"0.5;url=$url\">";
php登录验证问题session
你可以在数据库中创建一个session表,里面存放已登录用户的
用户名、登陆IP、随机码
重要提示:用户每成功登陆一次,那么就更新IP和随机码,随机码会存在$_SESSION['code']里
假设A在机器01上登陆过,那么seesion表存 A、127.0.0.1、123456
情况(1):
1、当A在另外一个机器02从登陆页面登陆,那么按“重要提示”的操作方法,session的数据会被更新成 A、127.0.0.2、456789.
2、然后A在第一台机器01上刷新网页,程序发现数据库中A最新的登陆IP有变动,那么在机器01上将A踢下线。
情况(2):
1、A在同一机器上的另外一个浏览器从登陆页面登陆,那么按“重要提示”的操作方法,session的数据会被更新成 A、127.0.0.1、987545.
2、然后A在第一台机器01上的第一个浏览器刷新网页,程序发现该浏览器与服务器的SESSION中保存的$_SESSION['code']与数据库中A最新的登陆随机码不同,那么在第一个浏览器上将A踢下线。
补充一点:同一台机器上所有利用IE内核的浏览器,其实session是通用的,不管你用纯正的IE、还是各大浏览器的兼容模式,或者是IETester的各个浏览器版本
关于php实现用户登录,用php写一个登录与注册的介绍到此结束,希望对大家有所帮助。