このコードでエラーを指摘するのに助けてくれる人は誰ですか? フォームは正常にデータベースに送信され、同時に 検証エラーが表示されます。 をmysql dbに送信する前に検証をパスすると仮定します。たとえば、フィールドが空の場合は、 というエラーが表示され、そのフィールドが空であり、同時に がデータベースに挿入されていると表示されます。フィールドが空白であってもこのPHPフォームの検証に合格します
<?php
require_once("validation_function.php");
$errors=array();
$message = "";
$username= "";
$password= "";
if(isset($_POST["submit"])){
// open a connection to the database
include("db_connect.php");
// initialize variables with form data.
$username =trim($_POST["username"]);
$password =trim($_POST["password"]);
//validations
$field_required= array("username", "password");
foreach($field_required as $field){
$value= trim($_POST[$field]);
if(!has_presence($value)){
$errors[$field]= ucfirst($field) . " can not be blank";
}
}
$field_required_max = array("username"=>30,"password"=>8);
foreach($field_required_max as $field=> $max){
$value=trim($_POST[$field]);
if(!has_max_lenght($value,$max)){
$errors[$field]= ucfirst($field) . " is too long";
}
}
$query = "INSERT INTO test (";
$query .= " username, password";
$query .= ") VALUES (";
$query .= " '{$username}', '{$password}' ";
$query .= ")";
$result= mysqli_query($connection, $query);
if($result==1){
echo "records inserted successfully";
}else{
die("data base query failed " . mysqli_error($connection));
}
if(isset($connection)){ mysqli_close($connection); }
}
?>
<html lang="en">
<head>
<title>single page form with validations</title>
</head>
<body>
<?php echo form_errors($errors);?>
<form action="form_with_validation.php" method="post">
<p>username <input type="text" name="username" value ="" />
</p>
<p>password <input type="password" name="password" value=""></p>
<input type="submit" name="submit" value="submit"/>
</form>
</body>
</html>
ありがとうございます。それは完璧に働いた。あなたとあなたの家族と、溢れるスタックに貢献したすべてのことを神が祝福します。 – Abdulrahaman