PHP+MYSQL+COOKIE自动登陆3

<?php


//先获取用户名是谁
$username=$_POST['username'];
//获取输入的密码
$password=$_POST['password'];
$autologin=(int)$_POST['autologin'];//为什么加int,因为是自动登录几天所以这样啊
//然后是知道了用户名与密码之后是链接
$link=mysqli_connect('localhost','root','','test44');
//然后是指定php链接数据库的字符集
mysqli_set_charset($link,'utf8');

//然后是
$username=mysqli_real_escape_string($link,$username);//为安全考虑
$sql="select id,username from user2 where username='{$username}' and password='{$password}'";
//然后运行
$result=mysqli_query($link,$sql);
//然后是如果有数据存在并且
if($result&&mysqli_affected_rows($link)==1)/*一个 > 0 的整数表示所影响的记录行数*/
{
	if($autologin)//点击了
	{
		$expTime=time()+7*24*60*60;
	}
	else//没有点击不启动它把
	{
		$expTime=0;
	}
	setcookie('autologin',1,$expTime);
	setcookie('username',$username,$expTime);
	setcookie('islogin',1,$expTime);
	exit("<script>
			alert('登录成功');
			location.href='dl.php';
		</script>");
}
else
{
	exit("<script>
			alert('登录失败');
			location.href='login.php';
		</script>");
}
?>

核心开始了,老弟:

$username=$_POST['username'];
//获取输入的密码
$password=$_POST['password'];
$autologin=(int)$_POST['autologin'];
作用:获取用户名+密码+一周内自动登陆7天看是否点击,为什么一周内自动登陆7天要加int因为是天啊
$username=mysqli_real_escape_string($link,$username);为安全🤔考虑啊(加密)
转义一些输入的特殊的字符把,转义成字符串

if($result&&mysqli_affected_rows($link)==1)
作用是:有数据,1:代表有,0代表没有,-1代表错误。
if($autologin)//点击了
	{
		$expTime=time()+7*24*60*60;
	}
	else//没有点击不启动它把
	{
		$expTime=0;
	}
	点击了就能点就能自动登陆7天啊,不需要在登陆了,但是注意一点7天后会自动退出,时间从你登陆后开始
	如果没有点击的话,会为0setcookie('islogin',1,$expTime);核心是用户名+点击一周内7+登录按钮都7天
问题:为什么不能用密码,因为销毁密码难道别的用户不能用这个密码了吗是吧
exit("<script>
			alert('登录成功');
			location.href='dl.php';
		</script>");
		登陆成功
		else
{
	exit("<script>
			alert('登录失败');
			location.href='login.php';
		</script>");
}
否则你懂的
posted @ 2020-04-17 23:52  贵哥的编程之路  阅读(9)  评论(0)    收藏  举报