2017-03-23 45 views
-4

if(count($ _ POST)> 0){/ *表單必填字段驗證/ foreach($ _ POST爲$ key => $ value)if(empty($ _ POST [$ key])){ $ message = ucwords($ key)。 「必填字段」;打破; }} /密碼匹配驗證*/我如何驗證我的電子郵件是否已經存在?

if($ _ POST ['password']!= $ _POST ['confirm_password']){$ message ='密碼應該是相同的; }

/*電子郵件驗證*/if(!isset($ message)){if(!filter_var($ _ POST [「userEmail」],FILTER_VALIDATE_EMAIL)){$ message =「Invalid UserEmail」; }

}

/*驗證如果選擇性別檢查* /如果(!isset($消息)){如果(!isset($ _ POST [ 「性別」])){$消息=「性別領域是必需的「; }}

如果{require_once( 「dbcontroller.php」)(isset($消息)!); $ db_handle = new DBController();

$查詢= 「INSERT INTO的用戶(用戶名,名字,姓氏,性別,BirthMonth,生日,BirthYear,國家,電子郵件,密碼,電話)VALUES('」。$ _ POST [ 「username」 的。「' ' 「$ _ POST [ 」名稱「]。」' ' 「$ _ POST [ 」姓氏「。」' ' 「$ _ POST [ 」性別「。」'「 「$ _ POST [」 BirthMonth 「」 '' 「$ _ POST [ 」生日「。」 '' 「$ _ POST [ 」BirthYear「。」 '' 「$ _ POST [ 」國家「。」 ''」 。$ _ POST [ 「USEREMAIL」] 「 ''」 $ _ POST [ 「密碼」] 「 ''」 $ _ POST [ 「電話」] 「')」。。。 $ result = $ db_handle-> insertQuery($ query);

+1

請格式化你的代碼代碼 – MrDarkLynx

+0

對不起..我不停地說錯誤,當我把我的代碼..我第一次問一個問題在stackoverflow –

+0

@chanterrainey您可能需要添加更多的文字在您的文章比只有代碼,這就是爲什麼你從SO獲得錯誤。 – Jer

回答

0

要檢查你的電子郵件是退出數據庫,然後使用此代碼。在這一行之後添加此代碼。

/* Email Validation */ if(!isset($message)) { if(!filter_var($_POST["userEmail"], FILTER_VALIDATE_EMAIL)) 
{ $message = "Invalid UserEmail"; } 

    } 

你的數據庫的連接需要連接這個所以首先連接該

require_once("dbcontroller.php"); $db_handle = new DBController(); 

希望你的連接是好了,所以這段代碼將檢查

<?php 

$sql = "SELECT anyfiled FROM yourtable WHERE email = " .$_POST['userEmail']; 
$select = mysqli_query($con, $sql); 
$row = mysqli_fetch_assoc($select); 

if (mysqli_num_rows($select) > 0) { 
$message = "exist"; 
} 
?> 
+0

那麼我會把這個代碼放在哪裏?我應該爲此創建一個新的PHP文件嗎? –

+0

$ sql =「SELECT anyfiled FROM yourtable WHERE email =」。$ _ POST ['userEmail']; $ select = mysqli_query($ con,$ sql); $ row = mysqli_fetch_assoc($ select); if(mysqli_num_rows> 0){ message =「exist」; }我把這段代碼放在電子郵件驗證之後。現在說,在第35行 –

+0

的C:\ xampp \ htdocs \ final \ register.php中意外的'=',請立即檢查 –

0

電子郵件驗證: 除了檢查像「@」和字母數字,你還必須檢查空格在開始/標籤常見的符號,最重要的轉換使用htmlspecialchars()作爲入輸入:

function reduceInput($data) { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 

呼籲$_POST['userEmail']reduceInput()函數,然後用你的filter_var()功能可按來驗證它。

0

我明白你的意思是不是通過利用字符串數據庫?您不必爲此驗證這些值。有一個PHP函數可以將字符串安全地傳遞到數據庫。就是這樣:

mysqli_real_escape_string($mysqli_object, $_POST['userName']); 

但是,如果你想驗證您的電子郵件和用戶名,這樣做:

if (ctype_alnum($nick)==false) exit(0);// this makes your nick can only contain letters and numbers 
$emailB = filter_var($email, FILTER_SANITIZE_EMAIL);//this sanitizes your email 
if ((filter_var($emailB, FILTER_VALIDATE_EMAIL)==false) || ($emailB!=$email)) exit(0);//this validates your email 
+0

對不起錯誤的問題..什麼我的意思是,我如何添加一個條件,將告訴如果我輸入的電子郵件已經存在數據庫 –

+0

好吧。我現在發佈正確的答案... – Excalibur

相關問題