【PHP】基于表单前后端交互
一、基于HTTP的交互过程
基于HTTP的前后端交互过程通常包括以下几个步骤:
-
客户端(通常是浏览器)发送一个HTTP请求到服务器。这个请求包含了请求的方法(如GET、POST等)、请求的URL、请求头(包含一些元数据,如用户代理、接受的内容类型等)以及可选的请求体(通常在POST或PUT请求中使用)。
-
服务器接收到请求后,根据请求的方法和URL,调用相应的后端代码来处理请求。这个过程可能涉及到读取数据库、执行业务逻辑、调用其他服务等操作。
-
后端代码处理完请求后,会生成一个HTTP响应。这个响应包含了响应的状态码(如200表示成功,404表示未找到等)、响应头(包含一些元数据,如内容类型、缓存控制等)以及响应体(即返回给客户端的数据)。
-
服务器将HTTP响应发送回客户端。
-
客户端接收到响应后,会根据响应的状态码和内容进行相应的处理。例如,如果状态码是200,客户端可能会解析响应体中的数据并显示在页面上;如果状态码是404,客户端可能会显示一个错误页面。
-
三种前后端交互模式(1)资源获取型:GET请求+URL地址 (2)数据提交型:POST请求+URL地址+请求正文 (3)AJAX提交:利用异步提交的方式,在不刷新当前页面的情况下,提交数据给后台
二、使用HTML标签创建登录界面
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8"> <!-- 设置字符编码为UTF-8 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- 设置视口宽度等于设备宽度,初始缩放比例为1 -->
<title>登录页面</title> <!-- 设置网页标题 -->
<style>
body {
font-family: Arial, sans-serif; <!-- 设置字体样式 -->
background-color: #f0f0f0; <!-- 设置背景颜色 -->
}
.container {
width: 300px; <!-- 设置容器宽度 -->
padding: 16px; <!-- 设置内边距 -->
background-color: white; <!-- 设置背景颜色 -->
border: 1px solid #ccc; <!-- 设置边框样式 -->
margin: 100px auto; <!-- 设置外边距,上下边距为100px,左右自动居中 -->
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1); <!-- 设置阴影效果 -->
}
input[type=text], input[type=password] {
width: 100%; <!-- 设置输入框宽度为100% -->
padding: 12px 20px; <!-- 设置内边距 -->
margin: 8px 0; <!-- 设置外边距,上下边距为8px,左右为0 -->
display: inline-block; <!-- 设置为行内块元素 -->
border: 1px solid #ccc; <!-- 设置边框样式 -->
box-sizing: border-box; <!-- 设置盒模型为border-box -->
}
button {
background-color: #4CAF50; <!-- 设置按钮背景颜色 -->
color: white; <!-- 设置按钮文字颜色 -->
padding: 14px 20px; <!-- 设置内边距 -->
margin: 8px 0; <!-- 设置外边距,上下边距为8px,左右为0 -->
border: none; <!-- 设置边框为无 -->
cursor: pointer; <!-- 设置鼠标指针样式为手形 -->
width: 100%; <!-- 设置按钮宽度为100% -->
}
button:hover {
opacity: 0.8; <!-- 设置鼠标悬停时按钮透明度为0.8 -->
}
</style>
</head>
<body>
<div class="container"> <!-- 创建一个容器 -->
<label for="uname"><b>用户名</b></label> <!-- 创建用户名标签 -->
<input type="text" placeholder="输入用户名" name="uname" required> <!-- 创建用户名输入框 -->
<label for="psw"><b>密码</b></label> <!-- 创建密码标签 -->
<input type="password" placeholder="输入密码" name="psw" required> <!-- 创建密码输入框 -->
<button type="submit">登录</button> <!-- 创建登录按钮 -->
</div>
</body>
</html>
三、 后端PHP获取请求代码
1.GET的方式请求
<?php
$username = $_GET['username'];
$password = $_GET['password'];
echo $username.'<br>';
echo $password;
?>
2.POST方式请求
<?php
$username = $_POST['username'];
$password = $_POST['password'];
echo $username.'<br>';
echo $password;
?>
3.直接通过AJAX实现异步请求
- 1.首先需要安装jQuery库,下载地址:Download jQuery | jQuery
- 2.引入 jQuery库<script type="text/javascript" src="./jquery-3.7.1.min.js"></script>
- 3.无需通过form表单进行提交,只需通过元素发起任意JS事件,让JS代码进行处理
- 4.前端HTML标签代码
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>登录页面</title>
<script type="text/javascript" src="./jquery-3.7.1.min.js"></script>
<script>
function do_post(){
var username = $("#username").val();
var password = $("#password").val();
var param = "username=" + username +"&password=" + password;
$.post('login.php',param,function(data){
window.alert(data)
});
}
</script>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f0f2f5;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
.login-container {
background-color: #fff;
border-radius: 5px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
width: 400px;
padding: 30px;
}
.login-container h1 {
text-align: center;
margin-bottom: 30px;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
margin-bottom: 5px;
}
.form-group input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 3px;
}
.submit-btn {
width: 100%;
padding: 10px;
background-color: #007bff;
color: #fff;
border: none;
border-radius: 3px;
cursor: pointer;
}
</style>
</head>
<body>
<div class="login-container">
<h1>登录</h1>
<div class="form-group">
<label for="username">用户名</label>
<input type="text" id="username" placeholder="请输入用户名" name="username">
</div>
<div class="form-group">
<label for="password">密码</label>
<input type="password" id="password" placeholder="请输入密码" name="password">
</div>
<input type="submit" value="登录" class="submit-btn" onclick="do_post()">
</div>
</body>
</html>
- 5.后端PHP代码
<?php
$username = $_POST['username'];
$password = $_POST['password'];
echo $username.'---'.$password;
?>
每篇一言:万物初发清净明,可知此芽成何草。
原文地址:https://blog.csdn.net/weixin_54799594/article/details/140621395
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!