2012-02-17 19 views
0

私は、CI_Form_validationを拡張するMY_Form_validation.phpの関数を呼び出すconfig内のform_validation.phpに私のルールを持っています。CodeIgniterの検証ルール

form_validation.phpルール:

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

MY_Form_validation.php方法:DEVと生産にis_valid_phoneとis_valid_postal_code作業罰金を呼び出すことはありませんform_validationで

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; 
    } 

他のルール。何らかの理由で、これらの2つのメソッドは開発環境で動作しますが、運用環境では動作しません。 PHPのバージョンは少し異なります。 5.2.8でdevおよび5.2.17でprod。すべてのファイルが同期されているので、確認できます。私は、is_valid_phoneメソッドにecho文を入れて、devに表示しますがprodには表示しません。

問題の内容がわかりません。何か案が?

ありがとうございます。

+0

あなたは 'ます$ this-> set_message( "is_valid_phone" でそれを試してみました、「%sは無効です電話フォーマットXXX-XXX-XXXX "); – Henesnarfel

+0

有効な電話のメッセージのlangファイルを設定しましたか? – Henesnarfel

+0

$ CI-> form_validation-> set_message( 'is_valid_phone'、 'error'); $ CI-> form_validation-> set_message( 'is_valid_postal_code'、 'error'); – Chris

答えて

0

おそらくエコーです。いくつかのヘッダーが表示される前に、何らかのキャッシュがあるか、エコーに問題が発生します。

文字列にエコー値を入れてみてください。これは確実に機能します。また、単にload-> viewメソッドを使用することもできます。ちょうどこの試してみてください。

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

をし、ビューjust_echo.phpは次のようになります。

<?php 
      echo $data; 
    ?> 
+0

私は以前にエコーが無かったので動作しませんでした。エコーは私のdevサーバーに表示され、検証ルールが機能します。おそらくset_messageを使用すれば – Chris

+0

が動作します。それは確かにエコーと何かのためです。 –

+0

エラーメッセージが既に設定されています。それはdevで動作します。 – Chris

関連する問題