第一部分:考点与作答区
考点:
- 表单数据的基本概念
- POST和POST和_GET 全局变量
- 表单验证
作答区: 编写一个PHP程序,完成以下要求:
- 创建一个表单,包含一个文本输入框和一个提交按钮。
- 处理表单数据,获取用户输入的文本,并验证其长度是否在 5 到 15 个字符之间。
- 如果验证通过,将文本保存到一个名为
user_input.txt
的文件中。 - 打印出验证结果和保存的文本内容。
请在下方空白处编写代码:
// 在此处编写代码
第二部分:解题思路与答案
解题思路:
- 创建一个HTML表单,其中包含一个文本输入框和一个提交按钮。
- 使用
$_POST
全局变量获取用户输入的文本。 - 验证文本的长度是否在 5 到 15 个字符之间。
- 如果验证通过,使用
file_put_contents()
函数将文本保存到一个名为user_input.txt
的文件中。 - 打印出验证结果和保存的文本内容。
答案:
<?php
// 创建HTML表单
echo <<<_END
<!DOCTYPE html>
<html>
<head>
<title>Form Data Handling</title>
</head>
<body>
<form action="{$_SERVER['PHP_SELF']}" method="post">
<label for="input">Enter Text:</label>
<input type="text" name="input" id="input">
<input type="submit" value="Submit">
</form>
</body>
</html>
_END;
// 处理表单数据
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$input =$_POST['input'];
$length = strlen($input);
// 验证文本长度
if ($length >= 5 &&$length <= 15) {
// 保存文本到文件
file_put_contents('user_input.txt', $input);
echo "Text has been saved to file successfully.";
} else {
echo "Invalid text length. It should be between 5 and 15 characters.";
}
}
?>
在这段代码中,我们首先创建了一个HTML表单,其中包含一个文本输入框和一个提交按钮。然后,我们使用 $_POST
全局变量获取用户输入的文本,并验证其长度是否在 5 到 15 个字符之间。如果验证通过,我们使用 file_put_contents()
函数将文本保存到一个名为 user_input.txt
的文件中。最后,我们打印出验证结果和保存的文本内容。通过这种方式,我们展示了表单数据的获取和处理的基本用法。
第三部分:扩展考点与扩展作答区
扩展考点:
- 表单数据的加密
- 表单数据的存储与检索
扩展作答区: 在原有程序的基础上,增加以下功能:
- 使用
password_hash()
函数对用户输入的文本进行加密,并将其保存到文件中。 - 使用
password_verify()
函数验证加密后的文本,并确保其与文件中的加密文本匹配。
请在下方空白处编写代码:
// 在此处编写代码
第四部分:扩展解答思路与答案
扩展解答思路:
- 使用
password_hash()
函数对用户输入的文本进行加密。这个函数会将文本转换为哈希值,并返回加密后的文本。 - 将加密后的文本保存到文件中。
- 使用
password_verify()
函数验证加密后的文本。这个函数会接受加密后的文本和原始文本作为参数,并返回一个布尔值,表示两者是否匹配。
答案:
<?php
// 创建HTML表单
echo <<<_END
<!DOCTYPE html>
<html>
<head>
<title>Form Data Handling</title>
</head>
<body>
<form action="{$_SERVER['PHP_SELF']}" method="post">
<label for="input">Enter Text:</label>
<input type="text" name="input" id="input">
<input type="submit" value="Submit">
</form>
</body>
</html>
_END;
// 处理表单数据
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$input =$_POST['input'];
$hashedInput = password_hash($input, PASSWORD_DEFAULT);
// 保存加密后的文本到文件
file_put_contents('user_input.txt', $hashedInput);
echo "Text has been saved to file successfully.";
// 验证加密后的文本
if (password_verify($input,$hashedInput)) {
echo "The text matches the encrypted value.";
} else {
echo "The text does not match the encrypted value.";
}
}
?>
www.ndfarcw.com
www.ndfdrcw.com
www.qzqgrcw.com
www.qznarcw.com
www.smqlrc.com
在这段代码中,我们首先创建了一个HTML表单,其中包含一个文本输入框和一个提交按钮。然后,我们使用 password_hash()
函数对用户输入的文本进行加密,并将其保存到文件中。接着,我们使用 password_verify()
函数验证加密后的文本,并确保其与文件中的加密文本匹配。最后,我们打印出验证结果和保存的文本内容。通过这种方式,我们展示了表单数据的加密和存储与检索的基本用法。