因此,我試圖為我的注冊網站制作一個功能,以檢查一個用戶名、電子郵件或IP是否存在。并希望將它們分開來檢查。這樣我就可以向用戶輸出存在的資訊。但不知何故,這并不奏效。
所以,現在它檢查好了,但對其他的名字卻沒有通過。
這是該函式。
function.php檔案
function checkExists($con, $username, $email, $ip) {
//check for existing stuff。
$userCheck = "SELECT * FROM users WHERE username = ? 或電子郵件=?或ip = ?"。
$check = mysqli_stmt_init($con)。
if(!mysqli_stmt_prepare($check, $userCheck) {
$errors = "sql not working!"/span>;
}
mysqli_stmt_bind_param($check, "ssi", $username, $email, $ip)。)
mysqli_stmt_execute($check)。
$resultData= mysqli_stmt_get_result($check)。
if($row = mysqli_fetch_assoc($resultData) {
$username = $row['username'/span>]。
return $username;
$email = $row['email']。
return $email;
$ip = $row['ip'/span>]。
return $ip。
}
mysqli_stmt_close($check)。
}
register.php檔案
這里是我喜歡的檢查方式:
注冊.php檔案
elseif(checkExists($con, $username, $email, $ip) === $username) {
$errors = "用戶名已經存在!"。
}
uj5u.com熱心網友回復:
你的函式沒有回傳任何東西,所以elseif將總是失敗到false。
uj5u.com熱心網友回復:
正如Barmar所提到的,該函式沒有回傳任何東西
修改你的函式以回傳一個有意義的值,更新你的函式,可以試試function checkExists($con, $username, $email, $ip) {
//check for existing stuff。
$userCheck = "SELECT * FROM users WHERE username = ? 或電子郵件=?或ip = ?"。
$check = mysqli_stmt_init($con)。
if(!mysqli_stmt_prepare($check, $userCheck) {
$errors = "sql not working!"/span>;
}
mysqli_stmt_bind_param($check, "ssi", $username, $email, $ip)。)
mysqli_stmt_execute($check)。
$resultData= mysqli_stmt_get_result($check)。
$checkedUser = ""/span>;
$checkedEmail = ";
$checkedIp = ";
if($row = mysqli_fetch_assoc($resultData) ) {
$checkedUser = $row['username'/span>]。
$checkedEmail = $row['email'] 。
$checkedIp = $row['ip'] 。
}
mysqli_stmt_close($check)。
if($checkedUser == $username)
return $username;
else if($checkedEmail ==$email)
return $email;
else if($checkedIp == $ip)
return $ip;
return ""。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/321596.html
標籤:
上一篇:在PHP中記錄POST資料
