2012-02-17 242 views
0

我在配置中的form_validation.php中有我的規則,它調用了擴展CI_Form_validation的MY_Form_validation.php中的函數。CodeIgniter驗證規則

form_validation.php規則:

array(
     'field' => 'phone', 
     'label' => 'Phone', 
     'rules' => 'is_valid_phone' 
    ), 

MY_Form_validation.php方法:

public function is_valid_phone($phone) 
    { 
     echo 'phone validation: '.$phone; 
     return preg_match("/\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x", $phone) ? true : false; 
    } 

的其他規則form_validation不呼籲開發和生產is_valid_phone和is_valid_postal_code做工精細。由於某種原因,這兩種方法適用於開發,但不適用於生產。 PHP版本略有不同。 5.2.8關於dev和5.2.17關於產品。所有文件都是同步的,我可以證實這一點。我在is_valid_phone方法中放了一個echo語句,它在dev上顯示,但不在prod上顯示。

我不知道問題可能是什麼。任何想法?

謝謝你們。

+0

有你'$這個 - > set_message( 「is_valid_phone」 試了一下說:「%s是一個無效的電話格式XXX-XXX-XXXX「);' – Henesnarfel 2012-02-17 00:31:27

+0

你有沒有爲有效的手機消息設置lang文件? – Henesnarfel 2012-02-17 00:41:00

+0

$ CI-> form_validation-> set_message('is_valid_phone','error'); $ CI-> form_validation-> set_message('is_valid_postal_code','error'); – Chris 2012-02-17 02:46:48

回答

0

這可能是回聲。在顯示某些標題之前,您有某種緩存或回顯錯誤。

試着把echo值放在一個字符串上,並且肯定會有效。你也可以簡單地嘗試使用load-> view方法。剛剛嘗試這一點:

$ci = &get_instance(); 
    $ci->load->view('just_echo',array('data' => 'phone validation: '.$phone)); 

和視圖just_echo.php將是:

<?php 
      echo $data; 
    ?> 
+0

我之前沒有迴音,它沒有工作。 echo顯示在我的開發服務器上,驗證規則起作用。 – Chris 2012-02-17 00:33:39

+0

也許如果你使用set_message會起作用。肯定是有回聲的東西。 – 2012-02-17 00:45:35

+0

我的錯誤信息已經設置。它適用於開發。 – Chris 2012-02-17 02:45:31