<?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天后会自动退出,时间从你登陆后开始
如果没有点击的话,会为0,
setcookie('islogin',1,$expTime);核心是用户名+点击一周内7天+登录按钮都7天
问题:为什么不能用密码,因为销毁密码难道别的用户不能用这个密码了吗是吧
exit("<script>
alert('登录成功');
location.href='dl.php';
</script>");
登陆成功
else
{
exit("<script>
alert('登录失败');
location.href='login.php';
</script>");
}
否则你懂的