我的表單仍然給我一個「註冊成功!」並將數據存儲在mysql中,即使它不是有效數據並且爲空。然後顯示「註冊成功」後顯示錯誤。即使數據無效,表單仍然會接受數據
它應該運行的方式是,當輸入無效或爲空時,它將不會存儲在數據庫中,並且不會提示「註冊成功!」。 我把php代碼放在與html相同的文件中,具體位於html代碼的頂部。
PHP
<?php
mysql_connect("localhost","root","");
mysql_select_db("registration");
if (isset($_POST['register'])){
$fname = $_POST['first_name'];
$lname = $_POST['last_name'];
$email = $_POST['email'];
$pword = $_POST['password_verify'];
if($_POST){
$errors = array();
if(empty($_POST['first_name'])){
$errors['first_name1'] = "This field cannot be empty";
}
if (empty($_POST['last_name'])){
$errors['last_name1'] = "Please enter your name last name.";
}
if (empty($_POST['email'])){
$errors['email1'] = "Please enter email address.";
}
if (empty($_POST['password'])){
$errors['password1'] = "Please enter password.";
}
if (empty($_POST['password_verify'])){
$errors['password_verify1'] = "Please enter password.";
}
if (strlen($_POST['password']) < 6){
$errors['password2'] = 'Your password must be at least 6 characters';
}
if ($_POST['password'] != $_POST['password_verify']){
$errors['password_verify2'] = 'Your passwords do not match.';
}
$check_email = "select * from customer_info where Email='$email'";
$run = mysql_query($check_email);
if (mysql_num_rows($run) >0){
$errors['email2'] = 'Email already exists.';
}
$query = "insert into customer_info (First_Name,Last_Name,Email, Password) values ('$fname', '$lname', '$email', '$pword')";
if(mysql_query($query)){
echo "<script>alert('Registration Successful!')</script>";
}
}
}
?>
你在哪顯示/作用$ errors數組? – jeff
**使用deprcated'mysql_ *'API停止**。使用'mysqli_ *'或'PDO'準備好語句。 – Jens