PHP表单

目录

PHP表单处理

PHP表单验证

实例


PHP表单处理

将前端的表单数据在提交到PHP文件进行数据处理

<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
massage: <input type="text" name="massage"><br>
<input type="submit">
</form>

</body>
</html>

这段代码是一个基本的HTML表单。它有三个输入字段:Name、E-mail和massage。表单使用POST方法将数据提交到“welcome.php”页面中。当用户提交表单时,表单数据将被发送到服务器并被处理。在这个例子中,表单将用户的姓名、电子邮件地址和消息发送给服务器。

在PHP中,处理表单的大多数任务涉及以下三个步骤:

  1. 接收表单数据:使用$_POST$_GET超全局变量接收表单提交的数据。

  2. 验证表单数据:验证表单数据是否符合要求,例如必填项是否填写、输入的数据是否符合格式等。

  3. 处理表单数据:将验证后的表单数据存入数据库、发送电子邮件等。

下面是一个简单的实例代码,演示了如何接收和验证表单数据:

接收表单数据:

if($_SERVER['REQUEST_METHOD'] == 'POST'){
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
}

验证表单数据:

if(empty($name)){
    $error_message[] = '请输入姓名';
}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
    $error_message[] = '请输入有效的电子邮件地址';
}
if(empty($message)){
    $error_message[] = '请输入留言内容';
}

处理表单数据:

if(empty($error_message)){
    // 将表单数据存入数据库或发送电子邮件等
}

需要注意的是,表单数据需要经过严格的验证和过滤,以保证代码的安全性和可靠性。建议使用PHP内置的过滤器函数对表单数据进行处理,例如filter_var()filter_input()等。

PHP表单验证

PHP表单验证是Web开发中常用的技术,通过验证表单输入的内容,可以提高数据的准确性和安全性。

下面是一个简单的PHP表单验证的示例:

<?php
$errors = array();
$success = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  // 验证姓名
  if (empty($_POST["name"])) {
    $errors[] = "姓名是必填项";
  } else {
    $name = test_input($_POST["name"]);
    // 检查姓名是否包含字母和空格
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      $errors[] = "只允许字母和空格";
    }
  }

  // 验证电子邮件
  if (empty($_POST["email"])) {
    $errors[] = "电子邮件是必填项";
  } else {
    $email = test_input($_POST["email"]);
    // 检查电子邮件地址的格式
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $errors[] = "无效的电子邮件地址";
    }
  }

  // 验证电话号码
  if (empty($_POST["phone"])) {
    $errors[] = "电话号码是必填项";
  } else {
    $phone = test_input($_POST["phone"]);
    // 检查电话号码是否符合格式
    if (!preg_match("/^[0-9]{3}-[0-9]{4}-[0-9]{4}$/",$phone)) {
      $errors[] = "电话号码格式不正确,正确格式为:123-4567-8901";
    }
  }

  if (empty($errors)) {
    $success = "表单验证通过";
  }
}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
?>

上面的代码中,test_input() 函数用于过滤用户输入中的不需要的字符(比如空格、制表符、换行符等),避免恶意用户注入代码。preg_match() 函数用于对输入内容进行正则表达式匹配,以验证其是否符合预期的格式。filter_var() 函数用于验证电子邮件地址的格式是否正确。

在提交表单时,首先判断请求的方法是否为POST,如果是,则对表单中的姓名、电子邮件和电话号码进行验证,如果验证通过,则将 success 变量设为一个成功提示信息。否则,将所有错误信息加入 errors 数组中,以便在后续的代码中显示给用户。

最后,可以通过遍历 errors 数组,将其中的错误信息输出给用户。

<?php
if (!empty($errors)) {
  echo "<div>";
  echo "<h2>表单验证失败:</h2>";
  echo "<ul>";
  foreach ($errors as $error) {
    echo "<li>" . $error . "</li>";
  }
  echo "</ul>";
  echo "</div>";
}

if (!empty($success)) {
  echo "<div>";
  echo "<h2>表单验证通过:</h2>";
  echo "<p>" . $success . "</p>";
  echo "</div>";
}
?>

以上代码会在表单验证失败时输出错误信息,如果表单验证通过,则输出成功提示信息。

实例

以下是一个完整的PHP表单实例,包括输入和处理数据等功能:

<!DOCTYPE html>
<html>
<head>
	<title>PHP表单实例</title>
</head>
<body>
	<h2>注册</h2>
	<form method="post" action="login.php">
		<label>用户名:</label><br>
		<input type="text" name="username"><br>
		<label>密码:</label><br>
		<input type="password" name="password"><br>
		<label>邮箱:</label><br>
		<input type="email" name="email"><br><br>
		<input type="submit" value="提交">
	</form>

	
</body>
</html>

login.php

<?php
	//定义变量,用于存储表单提交过来的数据
	$username = $password = $email = "";

	if ($_SERVER["REQUEST_METHOD"] == "POST") {
	  $username = test_input($_POST["username"]);
	  $password = test_input($_POST["password"]);
	  $email = test_input($_POST["email"]);
	}

	function test_input($data) {
	  $data = trim($data);
	  $data = stripslashes($data);
	  $data = htmlspecialchars($data);
	  return $data;
	}

	//连接数据库
	$servername = "localhost";
	$username_db = "root";
	$password_db = "";
	$dbname = "myDB";

	$conn = mysqli_connect($servername, $username_db, $password_db, $dbname);

	if (!$conn) {
	  die("Connection failed: " . mysqli_connect_error());
	}

	//将数据插入数据库
	$sql = "INSERT INTO users (username, password, email)
	VALUES ('$username', '$password', '$email')";

	if (mysqli_query($conn, $sql)) {
	  echo "<p>注册成功!</p>";
	} else {
	  echo "Error: " . $sql . "<br>" . mysqli_error($conn);
	}

	mysqli_close($conn);
	?>

在这个示例中,首先展示了一个注册表单,包括用户名、密码、邮箱等输入框。在表单中,action属性设置为&lt;?php echo $_SERVER['PHP_SELF']; ?>,这样表单提交后会将数据发送到同一页面,即当前页面。

其次,通过$_SERVER["REQUEST_METHOD"]判断请求是否为POST,如果是,则将表单提交的数据保存到$username$password$email变量中,并通过test_input()函数对数据进行处理,避免出现安全问题。

然后,使用mysqli_connect()连接到数据库,将数据插入到users表中,并根据插入结果输出提示信息。最后,关闭数据库连接。

需要注意的是,这只是一个简单的示例,实际应用中还需要进行更多的数据验证和安全处理。

  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你去把阿里干掉!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值