[英]else part is not working whereas condition is false in php
為什么其他部分不起作用? 條件為假。 這是代碼。 請建議:
function SignUp() {
if(isset($_POST['email'])){
$query = mysql_query("SELECT * FROM register WHERE email = '$_POST[email]' AND password = '$_POST[password]'") or die(mysql_error());
if(!$row = mysql_fetch_array($query) or die(mysql_error())) {
NewUser();}
else{
echo "SORRY...YOU ARE ALREADY REGISTERED USER...";}
}
}
我認為您寫了一些錯誤的語法。 請用以下代碼替換代碼。
function SignUp() {
if(isset($_POST['email'])){
$query = mysql_query("SELECT * FROM register WHERE email = '".$_POST['email']."' AND password = '".$_POST['password']."'") or die(mysql_error());
if(!$row = mysql_fetch_array($query) or die(mysql_error())) {
NewUser();
}
else{
echo "SORRY...YOU ARE ALREADY REGISTERED USER...";
}
}
}
注意 :-在開發模式下,您應該打開錯誤報告 。
此外,較新版本的PHP不推薦使用mysql_*
函數。 因此,請使用mysqli
或PDO
。
在php文件的頂部寫以下行,以查看所有錯誤,警告和注意事項。
error_reporting(E_ALL);
ini_set("display_errors", 1);
重寫您的函數,如下所示:
function SignUp() {
if(isset($_POST['email'])){
$query = mysql_query("SELECT * FROM register WHERE email = '$_POST[email]' AND password = '$_POST[password]'") or die(mysql_error());
// $query returns true or false
if($query) {
NewUser();
}
else{
echo "SORRY...YOU ARE ALREADY REGISTERED USER...";
}
}
}
希望它能對您有所幫助:)
更改條件並使用mysql_num_rows()
作為:
function SignUp() {
if(isset($_POST['email']))
{
$query = mysql_query("
SELECT * FROM register WHERE
email = '$_POST[email]'
AND password = '$_POST[password]'
") or die(mysql_error());
// if record exist
if(mysql_num_rows($query) > 0){
echo "SORRY...YOU ARE ALREADY REGISTERED USER...";
}
else{
NewUser(); // register new user
}
}
}
根據您的評論:
>使用mysql_num_rows()顯示空白屏幕。 – Anks
在文件的頂部添加error_reporting()
並檢查您遇到了什么錯誤。
ini_set("display_errors", 1);
error_reporting(E_ALL);
邊注:
請使用mysqli_
*或PDO
擴展名,因為mysql_*
在PHP 7中已棄用並關閉。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.