私は、呼び出しようとしているメソッドを使用してモジュール開発に使用している Joomla ヘルパー クラスを持っています。
class modCamcloudReferralHelper
{
/*
* Sanitize email form
*/
public function isInjected($str) {
$inject = "/(\r|\t|%0A|%0D|%08|%09)+/i";
return (preg_match($inject, $str) > 0);
}
public static function sendEmail() {
$jinput = JFactory::getApplication()->input;
$email = $jinput->post->get('email', '', 'STRING');
//check email is fine
if (isInjected($email)){ //never get into this code and it causes some sort of failure
echo "blah";
}
}
}
シンプルですね。しかし、このコードでは空白のページが表示されるだけで、エラーは表示されません...どこにもありません。代わりに、このコードを関数に直接入れるsendEmail
だけで、問題なく動作します。
$inject = "/(\r|\t|%0A|%0D|%08|%09)+/i";
if (preg_match($inject, $email) > 0){
echo "This works";
}
以前に作成した Joomla コンポーネントでこの問題が発生しました。何らかの理由で、同じクラス内からこの関数を呼び出しても機能しません。それは Joomla のことである必要があります... または私は気が狂います。何か案は?