2017-05-05 47 views
0

我想通過驗證註冊的電子郵件來檢查註冊用戶是否是學生。我有一個包含多個教育電子郵件域名的表格,例如@ mmu.edu.my,@ taylor.edu.uk等等。首先,控制器應該從數據庫獲取所有可用名稱並驗證用戶電子郵件。然後根據他們的大學分配不同的角色。但問題是如何使用數據庫中的每個可用域名來檢查電子郵件。檢查電子郵件是否屬於laravel中包含edu的學生電子郵件

在我的控制器我已經得到註冊用戶的電子郵件。

$user_email=$user_info->email; 

這是例如電子郵件

[email protected] 

是他們讓我學會如何驗證任何參考的?

回答

0

所以有多個域我猜?你需要檢查屬於它們中的一個的電子郵件域。

所以首先得到一個查詢,你會得到所有的域名。

然後

$user_email = explode('@',$entered_email); 
$user_email_domain = $user_email[1]; 
foreach($sql_returned as $sql) 
{ 
if($sql->email == $user_email_domain) 
{ 
    do what you want 
} 
else 
{ 
    do something else 
} 
} 
+0

正在工作。非常感謝。 – masterhunter

+0

不客氣 – Exprator

0

,我正通過爲陣列的有效域週期,就像這樣:

<?php 
$validDomains = array('mmu.edu.my', 'taylor.edu.uk'); 

function validEmail($email, $validDomains) { 
    if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) { 
     $email_parts = explode('@', $email); // [0] will be ben, [1] will be mmu.edu.my 

     // Valid email address. Does it match anything in our domain whitelist? 
     foreach($validDomains as $validDomain) { 
      if (strtolower($validDomain) == $email_parts[1]) { 
       return true; 
      } 
     } 
    } 
    return false; // No matches 
} 


var_dump(validEmail('[email protected]', $validDomains));  // TRUE 
var_dump(validEmail('[email protected]', $validDomains)); // FALSE 
var_dump(validEmail('clearlynotanemail', $validDomains));  // FALSE 
var_dump(validEmail('[email protected]', $validDomains));  // TRUE 
0

首先拆分使用「@」符號的電子郵件..

$user_email=$user_info->email; 
$splitted = explode('@',$user_email); 

if($splitted[1] == "mmu.edu.my") 
{ 
    // attach role here 
} 
elseif(....) 
{ 

} 
相關問題