2014-09-24 37 views
0

我對PHP相當陌生,現在我不得不用PHP編寫小程序,而我的公司找到合適的程序員。PHP驗證用戶輸入數據的步驟

我寫了一個程序,使用表格數據(姓名,電子郵件,手機號碼等),然後檢查輸入的數據是否有效。我的代碼工作得很好,但他們沒有遵循任何程序(即它檢查所有的驗證)。我希望它首先檢查一個條件(如電子郵件)是否有效,然後只檢查下一個條件(電話號碼)。如果其無效,則返回一些錯誤信息&停止執行其餘的代碼。

我試着一堆東西,但沒有工作過,這裏的示例代碼


          
  
<?php include("includes/functions.php"); ?> 
 
<?php include("includes/dbconnection.php"); ?> 
 
\t 
 
<?php 
 
\t //I've done this in main.php page but also had to do it in functions.php page too... 
 
\t $First_Name = $_POST['first_name']; 
 
\t $Last_Name = $_POST['last_name']; 
 
\t $Phone_Number = $_POST['phone_number']; 
 
\t $E_Mail = $_POST['email']; 
 
\t $User_ID = $_POST['user_id']; 
 
?> \t 
 
\t 
 
<?php $user_id_validation = validate_user_id($User_ID); ?> 
 
<?php $phone_number_validation = validate_phone_number(); ?> 
 
<?php $all_fields_validation = validate_all_fields(); ?> 
 

 
<?php 
 
\t //This is dbconnection.php page 
 
\t define("DB_SERVER", "localhost"); 
 
\t define("DB_USER", "root"); 
 
\t define("DB_PASS", "some_password"); 
 
\t define("DB_NAME", "some_db"); 
 

 
\t 
 
\t $connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME); //This $connection has been used as global in function.php 
 
\t 
 
\t if(mysqli_connect_errno()) { 
 
\t \t die("Database connection failed: " . 
 
\t \t \t mysqli_connect_error() . 
 
\t \t \t " (" . mysqli_connect_errno() . ")" 
 
\t \t); 
 
\t } 
 
?> 
 
<?php 
 
\t //This is functions.php 
 
\t function validate_user_id($User_ID) { 
 
\t \t global $connection; 
 
\t \t 
 
\t \t $sql = "SELECT * FROM users WHERE user_id = '$User_ID'"; 
 
\t \t $result = mysqli_query($connection,$sql); 
 
\t \t $num_row = mysqli_num_rows($result); 
 
\t \t if ($num_row == 1) { 
 
\t \t $User_ID = $num_row['user_id']; 
 
\t \t echo "user verification passed! "; 
 
\t \t } else { 
 
\t \t \t echo "You are not authorized to perform this action! "; 
 
\t \t } 
 
\t \t return false; 
 
\t } 
 
\t 
 
\t function validate_phone_number() { 
 
\t \t $Phone_Number = $_POST['phone_number']; 
 
\t \t $check_phone_number = substr($phone_number, 0, -7); //Take first 3 digits of phone number to validate if its standard phone number 
 
\t \t \t \t 
 
\t \t if (strlen($Phone_Number) != 10) { 
 
\t \t \t echo "Invalid Phone Number"; 
 
\t \t } elseif ($check_phone_number === "740") { 
 
\t \t \t echo "Phone Number is valid "; 
 
\t \t } else { 
 
\t \t \t echo "Invalid Phone Number, please check again! "; 
 
\t \t } 
 
\t } 
 
\t \t 
 
\t function validate_all_fields() { 
 
\t \t $First_Name = $_POST['first_name']; 
 
\t \t $Last_Name = $_POST['last_name']; 
 
\t \t $Phone_Number = $_POST['phone_number']; 
 
\t \t $E_Mail = $_POST['email']; 
 
\t \t $User_ID = $_POST['user_id']; 
 
\t \t 
 
\t \t if (!empty($E_Mail) 
 
\t \t && !empty($Phone_Number) 
 
\t \t && !empty($First_Name) 
 
\t \t && !empty($Last_Name)) 
 
\t \t 
 
\t \t) { 
 
\t \t \t echo "All fields entered, you can proceed. "; 
 
\t \t } else { \t 
 
\t \t \t echo "E_Mail, Phone Number, First Name and Last Name must be entered!"; 
 
\t \t } 
 
\t } 
 
\t // Database Insertion 
 
\t function Insert_Into_Table() { 
 
\t \t global $connection; 
 
\t \t $First_Name = $_POST['first_name']; 
 
\t \t $Last_Name = $_POST['last_name']; 
 
\t \t $Phone_Number = $_POST['phone_number']; 
 
\t \t $E_Mail = $_POST['email']; 
 
\t \t $User_ID = $_POST['user_id']; 
 
\t \t 
 
\t \t $sql = "INSERT INTO some_tbl(User_ID, First_Name, Last_Name, Phone_Number, E_Mail) 
 
\t \t \t \t VALUES ('$User_ID', '$First_Name', '$Last_Name', '$Phone_Number', '$E_Mail')"; 
 
\t \t 
 
\t \t $result = mysqli_query($connection, $sql); 
 
\t \t \t 
 
\t } 
 
\t 
 
?>
+1

使用if(){.....} elseif(){...} else {.. final ..}' – 2014-09-24 08:36:46

+0

「我試過一堆東西」我們不知道這些東西是什麼,因此它是不可能提供幫助。此外,恕我直言,你正在嘗試做的事情將導致一個相當不好的用戶體驗,因爲用戶只會知道1個字段未被正確填寫,並且onyl提交他發現其他字段無效。 – PeeHaa 2014-09-24 08:39:09

+0

您可以同時使用PHP和Javascript驗證。請檢查此,[PHP/JavaScript的電子郵件的形式和驗證] [1] [1]:http://stackoverflow.com/questions/19680406/php-javascript-email-form-and-validation – user1149244 2014-09-24 08:58:02

回答

0

試試這個。林不知道是否要這個或不..

if(!is_email($email)) 
{ 
    echo 'Invalid email!!'; 
    exit(); 
} 
elseif(!is_phone($phone)) 
{ 
    echo 'Invalid Phone!!'; 
    exit(); 
} 
else { 
    //success code 
} 

然後創建一個名爲is_email()功能和寫驗證代碼出現,並返回true如果是電子郵件格式否則返回false

is_email($email) 
{ 
    //validation code 
} 
+0

我正在研究它,到目前爲止沒有食物新聞... – Yugal1458 2014-09-24 09:42:15

+0

你是一個明星!它的工作,非常感謝,你不知道我明天可以享受我的假期多少! – Yugal1458 2014-09-24 09:49:09

+0

@ ys1458如果此答案對您的問題有幫助,請將其標記爲答案.. :-) – Salini 2014-09-24 10:03:43