我已经创建了一个表单,并将其连接到mysql,我还添加了验证表单的代码,但它不起作用



我已经创建了一个注册表单,并将其连接到mysql,数据已成功输入数据库中的表中。现在我想在表单上添加验证。我有一个文件index.html,其中有表单主体的代码,第二个文件是connect.php,其中有数据库连接代码和验证代码。现在当我运行程序时,我可以在表单中添加数据并将其保存在数据库,但验证代码不起作用

这是我的代码

<?php
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$mail = $_POST['mail'];
$password = $_POST['password'];
$age = $_POST['age'];
$gender = $_POST['gender'];
//database Connection

$conn = new mysqli('localhost', 'root', '', 'codetodesign');
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
$stmt = $conn->prepare("insert into registration(firstName, lastName, mail, password, age, gender) 
values(?, ?, ?, ?, ?, ?)");
$stmt->bind_param("sssssi",$firstname, $lastname, $mail, $password, $age, $gender);
$stmt->execute();
echo "Registration successfully";
$stmt->close();
$conn->close();
}
//Validation data
$firstnameErr = $lastnameErr = $mailErr = $passwordErr = $ageErr = $genderErr = "";
$firstname = $lastname = $mail = $password = $age = $gender = "";
if ($_SERVER["REQUEST_METHOD"] == "POST"){
if (empty($_POST["firstname"])){
$firstnameErr = "Firstname is required";
} else {
$firstname = test_input($_POST["firstname"]);
}
if (empty($_POST["lastname"])){
$lastnameErr = "lastname is required";
} else {
$lastname = test_input($_POST["lastname"]);
}
if (empty($_POST["mail"])){
$mailErr = "Mail is required";
} else {
$mail = test_input($_POST["mail"]);
}
if (empty($_POST["password"])){
$passwordErr = "Password is required";
} else {
$password = test_input($_POST["password"]);
}
if (empty($_POST["age"])){
$ageErr = "Age is required";
} else {
$age = test_input($_POST["age"]);
}
if (empty($_POST["gender"])){
$genderErr = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>

希望您享受您的编码之旅。在这里,我对你的要求和方法做了一些修改。

修改:

  • 我们获取一个名为errors的数组变量,在其中存储错误
  • 如果我们发现任何错误,我们将把它们存储在错误变量中
  • 然后,在将错误数组是否为空的数据插入数据库之前,我们将检查验证
  • 如果errors为空,我们只需将数据存储到数据库中
  • 如果没有,我们将捕获errors变量中的所有错误,并在表单(index.php(文件中显示这些错误
  • 遵循以下两个文件的代码,希望其他人能轻松理解

祝你好运。

process.php

<?php

//database Connection
$conn = new mysqli('localhost', 'root', '', 'codetodesign');

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

//error array
$errors = array();
$success = null;

if ($_SERVER["REQUEST_METHOD"] == "POST"){

$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$mail = $_POST['mail'];
$password = $_POST['password'];
$age = $_POST['age'];
$gender = $_POST['gender'];


if (empty($firstname)){
$errors['f_name'] = "Firstname is required";
} else {
$firstname = test_input($_POST["firstname"]);
}

if (empty($lastname)){
$errors['l_name'] = "lastname is required";
} else {
$lastname = test_input($_POST["lastname"]); 
}

if (empty($mail)){
$errors['mail'] = "Mail is required";
} else {
$mail = test_input($_POST["mail"]);
}

if (empty($password)){
$errors['password'] = "Password is required";
} else {
$password = test_input($_POST["password"]);
}

if (empty($age)){
$errors['age'] = "Age is required";
} else {
$age = test_input($_POST["age"]);
}

if (empty($gender)){
$errors['gender'] = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}

if(!empty($errors)) {
$errors['msg'] = "Please fillup the below required fileds";
} else {
$stmt = $conn->prepare("insert into registration(firstName, lastName, mail, password, age, gender) 
values(?, ?, ?, ?, ?, ?)");
$stmt->bind_param("sssssi",$firstname, $lastname, $mail, $password, $age, $gender);
//$stmt->execute();
if($stmt->execute()) {
$success = "Registration successfully";
}
$stmt->close();
$conn->close();
}
}

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

index.php

<?php include('process.php') ?>
<!DOCTYPE html>
<html>
<head>
<title>Test From</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
</head>
<body>
<div class="container col-md-6">
<h1>Simple Form Registrarion</h1>
<h5 class="text-success"><?php if($success != null) echo $success; ?>
<h5 class="text-danger"><?php if(!empty($errors) && !empty($errors['msg'])) echo $errors['msg']; ?></h5>
<form action="index.php" method="POST">
<div class="form-group">
<label for="exampleInputfname">First Name</label>
<input type="text" name="firstname" class="form-control" id="exampleInputfname" aria-describedby="fnameHelp" placeholder="Enter First Name">
<small id="fnameHelp" class="form-text text-danger"><?php if(!empty($errors) && !empty($errors['f_name'])) echo $errors['f_name']; ?></small>
</div>
<div class="form-group">
<label for="exampleInputlname">Last Name address</label>
<input type="text" name="lastname" class="form-control" id="exampleInputlname" aria-describedby="lnameHelp" placeholder="Enter Last Name">
<small id="lnameHelp" class="form-text text-danger"><?php if(!empty($errors) && !empty($errors['l_name'])) echo $errors['l_name']; ?></small>
</div>
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" name="mail" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email">
<small id="emailHelp" class="form-text text-danger"><?php if(!empty($errors) && !empty($errors['mail'])) echo $errors['mail']; ?></small>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" name="password" class="form-control" id="exampleInputPassword1" placeholder="Password" aria-describedby="passHelp">
<small id="passHelp" class="form-text text-danger"><?php if(!empty($errors) && !empty($errors['password'])) echo $errors['password']; ?></small>
</div>
<div class="form-group">
<label for="exampleInputgender">Gender</label>
<div class="form-check">
<input class="form-check-input" name="gender" value="1" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
<label class="form-check-label" for="exampleRadios1">
Male
</label>
</div>
<div class="form-check">
<input class="form-check-input" name="gender" value="2" type="radio" name="exampleRadios" id="exampleRadios2" value="option2">
<label class="form-check-label" for="exampleRadios2">
Female
</label>
</div>
<div class="form-check">
<input class="form-check-input" name="gender" value="3" type="radio" name="exampleRadios" id="exampleRadios2" value="option2">
<label class="form-check-label" for="exampleRadios2">
Other
</label>
</div>
</div>
<div class="form-group">
<label for="exampleInputage">Age</label>
<input type="number" name="age" class="form-control" id="exampleInputage" aria-describedby="emailHelp" placeholder="Enter age">
<small id="emailHelp" class="form-text text-danger"><?php if(!empty($errors) && !empty($errors['age'])) echo $errors['age']; ?></small>
</div>
<button type="submit" name="register" class="btn btn-primary">Register</button>
</form>
</div>
</body>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
</html>

最新更新