2016-05-01 96 views
-2

我有這樣的功能:爲什麼要功能PHP?

function errorWindow($field, $toFix) 
{ 
    echo "<script language='javascript'>"; 
    echo "alert('We are sorry but your request could not be logged because " . $field . 
     " is not a valid response. Please ". $toFix ." and resubmit your request')</script> <br />"; 

} 

我試圖從正在驗證用戶輸入另一個函數調用它。我試圖從該函數中調用它:

if (!$email || mb_strlen($email = trim($email)) == 0) 
    $this->setError('email', 'required field'); 
else { 
    if (!is_email($email)) 
     $this->setError('email', 'invalid email'); 
     $this->errorWindow('[email protected]', 'please enter valid e-mail address'); 
    else 
     if (mb_strlen($email) > 120) 
      $this->setError('email', 'too long! 120 characters'); 
} 

繼續收到預期的其他錯誤。無論我將呼叫置於該函數的哪個位置,它都會調用呼叫下方的線路。

我可以把這個確切的功能,並通過自己調用它自己的文件,它可以正常工作。我在這個問題上大概有2天,所以開始看到我的屏幕上運行代碼。

感謝您提供任何幫助。

+0

沒有調用任何東西正在搞亂PHP。 – PeeHaa

+1

另外:這就是爲什麼你應該總是使用大括號... – PeeHaa

+1

像@PeeHaa說,如果沒有***大括號***,你不能有代碼生存的'2行',除了它是'1行'在IDE中被分成兩個***(不建議,繼續使用大括號)*** –

回答

1

像@PeeHaa說這與陳述和缺乏花括號的安排if/else有關。如果is_email($email)返回false,以下代碼將添加一些大括號以確保執行電子郵件錯誤和錯誤窗口語句。

if (!is_email($email)) { 
    $this->setError('email', 'invalid email'); 
    $this->errorWindow('[email protected]', 'please enter valid e-mail address'); 
} 
else { 
    if (mb_strlen($email) > 120) 
     $this->setError('email', 'too long! 120 characters'); 
}