PHP实现一个简陋的注册登录页面
PHP实现一个简陋的注册登录页面
今天来水一篇没有**用的 /滑稽脸,代码简陋臃肿考虑不全,各位大佬轻喷,还望不吝赐教。
首先考虑了一下需要至少四个页面:register.html
、register.php
、login.html
、login.php
。
register.html
是这么写的:
<!DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <head> <title>注册界面</title> </head> <body> <form action="register.php" method="post"> 用户名:<input type="text" name="name"></input> <br /> 密码:<input type="password" name="password"></input> <br /> <input type="submit" value="注册"></input> </form> </body> </html>
register.php
是这么写的:
<?php header("Content-type:text/html;charset=utf-8"); $conn=new mysqli('localhost','wy','000000','test'); if ($conn->connect_error){ die("服务器连接失败!"); } $name=$_POST["name"]; $password=$_POST["password"]; $sql="insert into new_info values('$name',$password)"; $res=$conn->query($sql); if(!$res){ echo "注册失败!"; }else{ if($conn->affected_rows>0){ sleep(2); header("Location:login.html"); exit; }else{ echo "注册失败"; } } $conn->close(); ?>
login.html
是这么写的:
<!DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <head> <title>登录界面</title> </head> <body> <p>注册成功,请登录!</p> <form action="login.php" method="post"> 用户名:<input type="text" name="name"></input> <br /> 密码:<input type="password" name="password"></input> <br /> <input type="submit" value="登录"></input> </form> </body> </html>
login.php
是这么写的:
<?php header("Content-type:text/html;charset=utf-8"); $conn=new mysqli('localhost','wy','000000','test'); if ($conn->connect_error){ die("服务器连接失败!"); } $name=$_POST["name"]; $password=$_POST["password"]; $sql_name="select name from new_info where name='$name'"; $res_sql=$conn->query($sql_name); if($conn->affected_rows==0){ die("账号或密码有误"); }else{ $sql_pass="select password from new_info where name='$name'"; $res_pass=$conn->query($sql_pass); $row_pass=$res_pass->fetch_row(); if($row_pass[0]==$password){ echo "登录成功!"; }else{ echo "账号或密码有误"; } } $conn->close(); ?>
然后来看一下效果:
看一下数据库:
可以看到已经将数据写入数据库。
接着来登录试一下:
换个错误密码试一下:
2018-09-04 问题修正:
1.用户密码加密
2.数据库编码问题
1.用户密码加密
register.php
页面:
<?php header("Content-type:text/html;charset=utf-8"); $conn=new mysqli('192.168.134.128','root','123456','test'); if ($conn->connect_error){ die("服务器连接失败!"); } $name=$_POST["name"]; $password=$_POST["password"]; $password=md5($password); //将用户输入的密码进行md5加密 $sql="insert into test values('$name','$password')"; $res=$conn->query($sql); if(!$res){ echo "注册失败!"; }else{ if($conn->affected_rows>0){ sleep(2); header("Location:login.html"); }else{ echo "注册失败"; } } $conn->close(); ?>
login.php
页面:
<?php header("Content-type:text/html;charset=utf-8"); $conn=new mysqli('192.168.134.128','root','123456','test'); if ($conn->connect_error){ die("服务器连接失败!"); } $name=$_POST["name"]; $password=$_POST["password"]; $password=md5($password); //对用户输入的密码进行md5加密 $sql_name="select name from test where name='$name'"; $res_sql=$conn->query($sql_name); if($conn->affected_rows==0){ die("账号或密码有误!"); }else{ $sql_pass="select password from test where name='$name'"; $res_pass=$conn->query($sql_pass); $row_pass=$res_pass->fetch_row(); if($row_pass[0]==$password){ //将用户输入的加密密码与数据库密码进行对比 echo "登录成功!"; }else{ echo "账号或密码有误"; } } $conn->close(); ?>
2.数据库编码问题
在数据库执行set names utf8
命令,将数据库编码改为utf8
。
这样就可以使用中文名注册登录。
2018-09-06 问题修正:
用户注册或者登录时输入为空的问题
register.php
页面:
<?php header("Content-type:text/html;charset=utf-8"); $conn=new mysqli('192.168.134.128','root','123456','test'); if ($conn->connect_error){ die("服务器连接失败!"); } $name=$_POST["name"]; $password=$_POST["password"]; if(empty($name) || empty($password)){ //判断注册时账号或密码是否为空 die('账号或密码不能为空!'); }else{ $password=md5($password); $sql="insert into test values('$name','$password')"; $res=$conn->query($sql); if(!$res){ echo "注册失败!"; }else{ if($conn->affected_rows>0){ sleep(2); header("Location:login.html"); }else{ echo "注册失败"; } } $conn->close(); } ?>
login.php
页面:
<?php header("Content-type:text/html;charset=utf-8"); $conn=new mysqli('192.168.134.128','root','123456','test'); if ($conn->connect_error){ die("服务器连接失败!"); } $name=$_POST["name"]; $password=$_POST["password"]; if(empty($name) || empty($password)){ //判断登陆时账号或密码是否为空 die('账号或密码不能为空!'); }else{ $password=md5($password); //var_dump($password); $sql_name="select name from test where name='$name'"; $res_sql=$conn->query($sql_name); if($conn->affected_rows==0){ die("账号或密码有误!"); }else{ $sql_pass="select password from test where name='$name'"; $res_pass=$conn->query($sql_pass); $row_pass=$res_pass->fetch_row(); if($row_pass[0]==$password){ echo "登录成功!"; }else{ echo "账号或密码有误"; } } $conn->close(); } ?>
代码臃肿,还望见谅。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App