PHP单页表单验证HTML-表单未验证
PHP部分,其中变量被初始化并设置为空。以及post方法和isset函数 函数似乎是正确的,运行代码时没有错误。但是,当用户提交所有内容时,不会处理任何内容。这只是代码的一小部分PHP单页表单验证HTML-表单未验证,php,html,Php,Html,PHP部分,其中变量被初始化并设置为空。以及post方法和isset函数 函数似乎是正确的,运行代码时没有错误。但是,当用户提交所有内容时,不会处理任何内容。这只是代码的一小部分 <?php //define variables and set them to empty values $fname_error= $phone_error= $address1_error= $address2_error= $city_error= $state_error= $zipcod
<?php
//define variables and set them to empty values
$fname_error= $phone_error= $address1_error= $address2_error= $city_error= $state_error= $zipcode_error= "";
$fname= $phone= $address1= $address2= $city= $state= $zipcode= "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["fname"])) {
$fname_error = "Missing";
}
else {
$fname = test_input($_POST["fname"]);
//now we check to see that the name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$fname)) {
$fname_error = "Please use letters and white space only";
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
Html部分:
<div class="userinput">
<label for="fname"><b>First Name</b></label>
<input type="text" name="fname" value="<?php
echo $fname ?>">
<span class="error">
<?php echo $fname_error;?></span>
</div>
名字
关闭条件请求\u方法。
您的代码应该如下所示:
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
//define variables and set them to empty values
$fname_error = $phone_error = $address1_error = $address2_error = $city_error = $state_error = $zipcode_error = "";
$fname = $phone = $address1 = $address2 = $city = $state = $zipcode = "";
//flag to validate and allow SQL insert if true
$valid=true;
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["fname"])) {
$fname_error = "Missing";
$valid=false;
} else {
$fname = test_input($_POST["fname"]);
//now we check to see that the name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/", $fname)) {
$valid=false;
$fname_error = "Please use letters and white space only";
}
}
}
//filter your input for security reason
function test_input($data) {
$data1 = trim($data);
$data2 = stripslashes($data1);
$data3 = htmlspecialchars($data2);
return $data3;
}
if($valid){
//Add you insert SQL
}
?>
<h2>PHP Form Validation Example</h2>
<p><span class="error">* required field</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<label for="fname"><b>First Name</b></label>
<input type="text" name="fname" value="<?php echo $fname ?>">
<span class="error">
<?php echo $fname_error; ?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
<?php
//For testing porpuses:
echo "<h2>Your Input:</h2>";
echo $fname;
?>
</body>
.错误{color:#FF0000;}
PHP表单验证示例
*必填字段
函数测试输入前缺少}当用户单击页面底部的提交按钮时,不会保存和提交任何输入或运行函数(如果语句、测试输入等)。单击提交时不会发生任何事情。然而,当用户没有输入任何内容或使用此if(strtoupper($\u SERVER['REQUEST\u METHOD'])===='POST')的语法无效时,应该会弹出一条错误消息,这可能是因为您的PHP抛出了一些您在屏幕上看不到的ERORR。临时激活错误报告:错误报告(E_ALL);ini设置(“显示错误”,1)代码>。此外,您还应该处理preg\u match(..)
调用成功时发生的情况。尝试了所有这些建议后,什么也没发生。这就好像它甚至没有注册php部分一样。也许我忘了什么或者我的动作不对。