我創建了帶有全名(cele meno)、登錄名、密碼和確認密碼的注冊表單,但它有錯誤。我找不到任何錯誤。我是初學者程式員,我找不到任何錯誤或者是拼寫錯誤?我沒有任何想法來解決它。你能幫我嗎?非常感謝。
<?php
// Include config file
require_once "config.php";
// Define variables and initialize with empty values
$username = $celemeno = $password = $confirm_password = "";
$username_err = $celemeno_err = $password_err = $confirm_password_err = "";
// Processing form data when form is submitted
if($_SERVER["REQUEST_METHOD"] == "POST"){
// Validate username
if(empty(trim($_POST["username"]))){
$username_err = "Please enter a username.";
} else{
// Prepare a select statement
$sql = "SELECT id FROM tools_users WHERE username = ?";
if($stmt = mysqli_prepare($link, $sql)){
// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, "s", $param_username);
// Set parameters
$param_username = trim($_POST["username"]);
// Attempt to execute the prepared statement
if(mysqli_stmt_execute($stmt)){
/* store result */
mysqli_stmt_store_result($stmt);
if(mysqli_stmt_num_rows($stmt) == 1){
$username_err = "This username is already taken.";
} else{
$username = trim($_POST["username"]);
}
} else{
echo "Oops! Something went wrong. Please try again later.";
}
// Close statement
mysqli_stmt_close($stmt);
}
}
// Validate celemeno
if(empty(trim($_POST["celemeno"]))){
$celemeno_err = "Please enter a celemeno.";
} else{
// Prepare a select statement
$sql = "SELECT id FROM tools_users WHERE celemeno = ?";
if($stmt = mysqli_prepare($link, $sql)){
// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, "s", $param_celemeno);
// Set parameters
$param_celemeno = trim($_POST["celemeno"]);
// Attempt to execute the prepared statement
if(mysqli_stmt_execute($stmt)){
/* store result */
mysqli_stmt_store_result($stmt);
if(mysqli_stmt_num_rows($stmt) == 1){
$celemeno_err = "This celemeno is already taken.";
} else{
$celemeno = trim($_POST["celemeno"]);
}
} else{
echo "Oops! Something went wrong. Please try again later. - error in celemeno";
}
// Close statement
mysqli_stmt_close($stmt);
}
}
// Validate password
if(empty(trim($_POST["password"]))){
$password_err = "Please enter a password.";
} elseif(strlen(trim($_POST["password"])) < 6){
$password_err = "Password must have atleast 6 characters.";
} else{
$password = trim($_POST["password"]);
}
// Validate confirm password
if(empty(trim($_POST["confirm_password"]))){
$confirm_password_err = "Please confirm password.";
} else{
$confirm_password = trim($_POST["confirm_password"]);
if(empty($password_err) && ($password != $confirm_password)){
$confirm_password_err = "Password did not match.";
}
}
// Check input errors before inserting in database
if(empty($username_err) && empty($celemeno_err) && empty($password_err) && empty($confirm_password_err)){
// Prepare an insert statement
$sql = "INSERT INTO tools_users (username, password, celemeno) VALUES (?, ?, ?)";
if($stmt = mysqli_prepare($link, $sql)){
// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, "ss", $param_username, $param_password, $param_celemeno);
// Set parameters
$param_username = $username;
$param_celemeno = $celemeno;
$param_password = password_hash($password, PASSWORD_DEFAULT); // Creates a password hash
// Attempt to execute the prepared statement
if(mysqli_stmt_execute($stmt)){
// Redirect to login page
header("location: login.php");
} else{
echo "Oops! Something went wrong. Please try again later.";
}
// Close statement
mysqli_stmt_close($stmt);
}
}
// Close connection
mysqli_close($link);
}
?>
我希望此代碼將在此頁面上以形式作業
uj5u.com熱心網友回復:
就像評論部分提到的@brombeer 一樣。您的系結引數包含 3 個變數,這意味著您缺少一個 s。多加一個..
mysqli_stmt_bind_param($stmt, "sss", $param_username, $param_password, $param_celemeno);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/531954.html
