簡體   English   中英

如何使我的電子郵件代碼可以使用PHP?

[英]How can I make my email code work PHP?

嘿,此代碼假定在電子郵件表單上未鍵入輸入時添加錯誤消息,並且當您最終輸入代碼時假定刪除錯誤消息。 我有兩個使用以下代碼:

//Generate a unique code
function getUniqueCode($length = "")
{   
$code = md5(uniqid(rand(), true));
if ($length != "") return substr($code, 0, $length);
else return $code;
} 

//Generate an activation key
function generateActivationToken($gen = null)
{
do
{
    $gen = md5(uniqid(mt_rand(), false));
}
while(validateActivationToken($gen));
return $gen;
}

和此代碼:

//Checks if an email is valid
function isValidEmail($email)
{
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    return true;
}
else {
    return false;
}
}

我已經編寫了自己的代碼,當電子郵件表單上沒有輸入時,將錯誤消息放入其中,但是當我在電子郵件表單上輸入正確的內容時,它不會將錯誤消息從錯誤消息框中移出。 這是代碼:

//Checks if a name is valid
function isValidName($name)
{
if (filter_var($name, MAIL_NAME_ERROR)) {
    return true;
}
else {
    return false;
}
}

所以總結一下,當沒有這樣的輸入時,所有5個都在工作:

  • 請輸入您的全名
  • 請輸入有效的電子郵件地址
  • 請輸入您的電話號碼
  • 請輸入您的密碼
  • 安全問題失敗

但是,當我輸入如下電子郵件地址和安全代碼時,只有我的安全性和電子郵件有效:

  • 請輸入您的全名
  • 請輸入您的電話號碼
  • 請輸入您的密碼

名稱,電話和密碼不正確,它們只能通過顯示代碼來起作用,但是當我輸入正確的信息時,它們不會刪除代碼。

我該如何修正我的代碼,使所有3個代碼都被1個一掉?

要進行自己的回調,您不能僅傳遞常量MAIL_NAME_ERROR 如果要傳遞自己的函數,則必須執行以下操作:

function mail_name_error(){
  //do your thing here
}
function isValidName($name){
  if(filter_var($name, FILTER_CALLBACK, array('options' => 'mail_name_error'))){
    return true;
  }
  else {
    return false;
  }
}

請參閱http://php.net/manual/zh/function.filter-var.php中options部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM