首先我们理一下思路,注册登录需要的模块数量:
第一 数据库连接
第二 登录界面
第三 登陆处理
第四 注册界面
第五 注册处理
第六 主界面
第七 注销处理
那么我们开始吧。(没有什么难度的我就直接上代码)
数据库连接
<?php
$sql_server_name='127.0.0.1';//服务器地址
$sql_user_name='root';//数据库用户名
$sql_user_pwd='123456';//数据库密码
$sql_database_name='mydb';//连接的数据库
$conn =mysqli_connect($sql_server_name,$sql_user_name,$sql_user_pwd,$sql_database_name) ;
if($conn->connect_error){
die("连接失败:".$conn->connect_error);
}
mysqli_set_charset($conn,'utf8');
?>
登陆界面
主界面包括登录的用户名,密码,登录按钮,注册跳转,自动登录复选框。
同时为了可以实现自动登录加入php语句判断cookie是否存在。
<?php
if(isset($_COOKIE['user'])){
echo "<script>
location.href='index.php';
</script>";
}
?>
<html>
<head>
<title>
登录
</title>
</head>
<body>
<a href="http://localhost/text1_Conversation/login.php" style="text-decoration:none">返回首页</a>
<a href="http://localhost/text1_Conversation/register.php" style="text-decoration:none">注册</a>
<form method="post" action="deallog.php">
<p> 用户: <input type="text" name="user"></p>
<p>密码:<input type="password" name="pwd"></p>
<p><input type="checkbox" name = "issave">是否保存七天账号密码</p>
<input type="submit" value="登录">
</form>
</body>
</html>
登录处理
需要判断用户名和密码数据库中是否存在,若存在则登陆成功,同时判断复选框是否选取,若选取则还需要将用户名加入cookie,若数据库中不存在该用户名密码,则提醒注册。
<?php
include 'sql_config.php';
$name = $_POST["user"];
$pwd = $_POST["pwd"];
$issave = $_POST["issave"];
$sql = "select username from customer where username='$name' and pwd='$pwd'";
$result=mysqli_query($conn, $sql);
if($result->num_rows==1){
if($issave){
setcookie("user", "$name", time()+60*60*24*7);
}
echo "<script> alert('登录成功')</script>";
header("Refresh:0.0001;url=index.php");
exit();
}else{
header("Refresh:0.0001;url=login.php");
echo "<script> alert('登录失败')</script>";
exit();
}
?>
注册界面
<html>
<head>
<title>注册</title>
</head>
<body>
<h1>注册</h1>
<a href='login.php' style="text-decoration:none">返回登录</a>
<a href='index.php' style="text-decoration:none">主界面</a>
<form method="post" action="dealrig.php">
<p>用户:<input type="text" name="user"></p>
<p>密码:<input type="password" name = "pwd"></p>
<p>e-mail:<input type="text" name="email"></p>
<input type="submit" value="注册" name ="zc">
</form>
</body>
</html>
判断注册
<?php
include_once 'sql_config.php';
if($_POST["user"]&&$_POST["pwd"]&&$_POST["email"]){
$user=$_POST['user'];
$pass=$_POST['pwd'];
$email=$_POST['email'];
$sqlsel1="select username from customer where username='$user'";
$sqlsel2=" select id from customer order by id desc ; ";
$result2 = mysqli_query($conn,$sqlsel2);
$row = mysqli_fetch_row($result2);
$id= $row[0]+1;
$result1=mysqli_query($conn, $sqlsel1);
//如果用户名没有重复
if($result1->num_rows==0){
$sqlinsert="INSERT into student (id,username,pwd,email)
VALUES ('$id','$user','$pass',$email)";
header("Refresh:0.0001;url=login.php");
echo "<script> alert('注册成功')</script>";
exit();
}//如果用户名已经存在
else{
echo "<script> alert('该用户已存在')</script>";
header("Location: register.php"); //刷新当前页面
exit();
}}
?>
主界面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<?php
if (isset($_COOKIE["user"]))
echo "欢迎 " . $_COOKIE["user"] . ",访问本网站,由于您保存过密码,所以在七天内的登录不需要重新输入密码!<br>";
else
echo "欢迎您,访问本网站由于您未保存密码,所以在下次登录时仍然需要输入账号密码!<br>";
?>
<br>
<a href="exec.php" style="text-decoration:none">注销用户</a>
</body>
</html>
注销处理
也就是删除cookie
<?php
setcookie('user','',time()-1);
echo "<script> alert('注销成功')</script>";
header("Refresh:0.0001;url=login.php");
exit();
?>