大家觉得好的话,请大家关注点赞转发一波,谢谢!
1.制作一个测试主页
A.思维导图:
B.源码:
<?php
session_start();//启动新会话或者重用现有会话说明
?>
<html>
<head>
<meta charset=”utf-8″ />
<title>测试主页</title> <!–标题–>
</head>
<body>
<?php
if (isset($_SESSION[‘userName’])) //isset() 检测变量是否设置 如果登录成功
{
$userName = $_SESSION[‘userName’];//$_SESSION[‘username’]的值赋值给变量$userName
echo “欢迎您:” . $userName; //欢迎您:登录的名称
echo ‘<a href = “logout.php”><input type = “button” value = “注销” /></a>’; //注销按钮
}
else {//登录失败
echo ‘<a href = “login.php”><input type = “button” value = “登录” /></a>’;//登录按钮
echo ‘<a href = “register.php”><input type = “button” value = “注册” /></a>’;//注册按钮
}
?>
</body>
</html>
C.结果:
2. 登录页面
A. 思维导图:
B.源码:
<html>
<head>
<meta charset=”utf-8″ />
<title>登录</title><!–标题–>
<style>
.error{color:red;}<!–CSS样式–>
</style>
</head>
<body>
<?php
$isInfoCanUse = false;//信息是否可用被显示
$userName = $password= “”;//初始化,防止出现未定义就使用的错误
$userNameErr = $passwordErr = “”;
function dealInfo($data){ //表单信息安全处理 防止被黑客攻击
$data = trim($data);// 移除字符串两侧的空白字符或其他预定义字符
$data = htmlspecialchars($data);//把一些预定义的字符转换为 HTML 实体
$data = stripslashes($data);//删除反斜杠
return $data;
}
if ($_SERVER[‘REQUEST_METHOD’] == “POST”) { //判断信息是否完整
$isInfoCanUse = true;
if (empty($_POST[‘userName’])) { //判断用户名称是否为空
$isInfoCanUse = false;
$userNameErr = “用户名称不能为空”;//打印用户名称不能为空
} else {
$userName = dealInfo($_POST[‘userName’]); //调用表单信息安全处理函数
}
if (empty($_POST[‘password’])) {//判断密码是否为空
$isInfoCanUse = false;
$passwordErr = “密码不能为空”;//打印密码不能为空
} else {
$password = dealInfo($_POST[‘password’]); //调用表单信息安全处理函数
}
}
if ($_SERVER[‘REQUEST_METHOD’] == “POST” && $isInfoCanUse == true) { //判断表单是不是POST请求 及其信息是否可用被显示
$dbhost = ‘127.0.0.1’;//数据库主机
$dbuser = ‘root’;//数据库用户名
$dbpass = ”;//数据库密码
$dbname = ‘users’;//数据库名
$link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);//连接数据
if (!$link) {
die(‘连接数据库失败<br/>’);//失败 打印连接数据库失败
}
else {
//echo “连接数据库成功<br/>”;//成功 打印连接数据库成功
}
if ($isInfoCanUse){ //信息是否可用被显示
$sql = “SELECT userName FROM account WHERE userName=’$userName'”;//sql 查询语句 查询用户名
$result = mysqli_query($link, $sql);//不论成功与否,都返回结果集
$test = mysqli_fetch_assoc($result);//false 查找失败
if($test == false) {
$userNameErr = “用户名称不存在”;
}
else {//sql 查询语句 查询用户名和密码
$sql = “SELECT userName,password FROM account
WHERE userName=’$userName’ and password = ‘$password'”;
$result = mysqli_query($link, $sql);//不论成功与否,都返回结果集
$test = mysqli_fetch_assoc($result);//false 查找失败
if($test == false) {
$passwordErr = “密码错误”;
} else {
//存入session
session_start();//启动新会话或者重用现有会话说明
$_SESSION[‘userName’] = $userName;//把用户名称存入$_SESSION[‘userName’]
echo “登录成功!”; //打印登录成功!
//页面跳转
echo ‘<a href = “homepage.php”><input type = “button” value = “返回主页” /></a>’;
}
}
}
}
?>
<form method=”post” action=”<?php echo htmlspecialchars($_SERVER[‘PHP_SELF’]);?>” >
用户名称:<input type=”text” name=”userName” />
<?php echo “<span class=error>*” .$userNameErr.”</span>”;?><br/>
登录密码:<input type=”password” name=”password” />
<?php echo “<span class=error>*” .$passwordErr.”</span>”;?><br/>
<input type=”submit” value=”登录” />
</form>
</body>
</html>
C.结果:
3.注册
A.思维导图:
B.源码:
<html>
<head>
<meta charset=”utf-8″ />
<title>注册</title><!–标题–>
<style>
.error{color:red;}<!–CSS样式–>
</style>
</head>
<body>
<?php
$isInfoCanUse = false;//信息是否可用被显示
$userName = $password = $email = “”;
$userNameErr = $passwordErr = $emailErr = “必填项目”;
function dealInfo($data){ //表单信息安全处理
$data = trim($data);// 移除字符串两侧的空白字符或其他预定义字符
$data = htmlspecialchars($data);//把一些预定义的字符转换为 HTML 实体
$data = stripslashes($data);//删除反斜杠
return $data;
}
if ($_SERVER[‘REQUEST_METHOD’] == “POST”) { //判断信息是否完整
$isInfoCanUse = true;
if (empty($_POST[‘userName’])) {//判断用户名称是否为空
$isInfoCanUse = false;
$userNameErr = “用户名称不能为空”;//打印用户名称不能为空
} else {
if (!preg_match(“/^[w]*$/”,$_POST[‘userName’])) {//用正则表达式判断是否符合字母和数字
$userNameErr = “只允许字母和数字”; //打印只允许字母和数字
$isInfoCanUse = false;
}
else {
$userName = dealInfo($_POST[‘userName’]); //调用表单信息安全处理函数
}
}
if (empty($_POST[‘password’])) {//判断密码是否为空
$isInfoCanUse = false;
$passwordErr = “注册密码不能为空”;//打印注册密码不能为空
} else {
if (!preg_match(“/(w{6,14})/”,$_POST[‘password’])) {//用正则表达式判断是否符合6到14位
$passwordErr = “密码长度 6~14位”; //打印密码长度 6~14位
$isInfoCanUse = false;
}
else{
$password = dealInfo($_POST[‘password’]);//调用表单信息安全处理函数
}
}
if (empty($_POST[’email’])) {////判断邮箱是否为空
$isInfoCanUse = false;
$emailErr = “注册邮箱不能为空”;//打印注册邮箱不能为空
} else {
if (!preg_match(“/([w-]+@[w-]+.[w-]+)/”,$_POST[’email’])) {//用正则表达式判断是否符合邮箱格式
$emailErr = “非法邮箱格式”; //打印非法邮箱格式
$isInfoCanUse = false;
}
else {
$email = dealInfo($_POST[’email’]);//调用表单信息安全处理函数
}
}
}
if ($_SERVER[‘REQUEST_METHOD’] == “POST” && $isInfoCanUse == true) {
$dbhost = ‘127.0.0.1’;//数据库主机
$dbuser = ‘root’;//数据库用户名
$dbpass = ”;//数据库密码
$dbname = ‘users’;//数据库名
$link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);//连接数据库
if (!$link) {
die(‘连接数据库失败<br/>’);//失败 打印连接数据库失败
}
else {
//echo “连接数据库成功<br/>”;//成功 打印连接数据库成功
}
$sql = “SELECT userName FROM account WHERE userName=’$userName'”;//sql 查询语句 查询用户名
$result = mysqli_query($link, $sql);//不论成功与否,都返回结果集
$test = mysqli_fetch_assoc($result);//false 查找失败
if($test != false) {
$userNameErr = “用户名称已经存在”;//打印用户名称已经存在
}
else {//sql 添加语句 添加用户名 密码 邮箱
$sql = “INSERT INTO account(userName, password, email)
VALUES(‘$userName’, ‘$password’, ‘$email’)”;
if (mysqli_query($link, $sql)) {
echo “注册成功<br/>”; //打印注册成功
}
else {
echo “注册失败<br/>”;//打印注册失败
}
//页面跳转
echo ‘<a href = “homepage.php”><input type = “button” value = “返回主页” /></a>’;
}
}
?>
<form method=”post” action=”<?php echo htmlspecialchars($_SERVER[‘PHP_SELF’]);?>” >
用户名称:<input type=”text” name=”userName” />
<?php echo “<span class=error>*” .$userNameErr.”</span>”;?><br/>
注册密码:<input type=”password” name=”password” />
<?php echo “<span class=error>*” .$passwordErr.”</span>”;?><br/>
注册邮箱:<input type=”text” name=”email” />
<?php echo “<span class=error>*”.$emailErr.”</span>”;?><br/>
<input type=”submit” value=”注册” />
</form>
</body>
</html>
C.结果:
4.注销页面
A.思维导图:
B.源码:
<?php
session_start();//启动新会话或者重用现有会话说明
if (isset($_SESSION[‘userName’])) //isset() 检测变量是否设置 如果登录成功
{
session_unset();//会释放当前会话注册的所有会话变量。
session_destroy();//销毁一个会话中的全部数据
}
?>
<html>
<head>
<meta charset=”utf-8″ />
<title>注销页面</title><!–标题–>
</head>
<body>
<a href = “homepage.php”><input type = “button” value = “返回主页” /></a>
</body>
</html>
C.结果:
原创文章,作者:创业小助手,如若转载,请注明出处:https://www.china789.com/news/9951.html