joomla - JFactory :: getApplication() - >输入麻烦

时间:2014-05-03 20:11:48

标签: joomla http-post

我在我的项目中使用joomla 3.0。在那里我尝试开发自己的模块......

在模块主代码中我有这样的部分:

`<?php
defined('_JEXEC') or die('Direct Access to this location is not allowed.');

require_once('helper.php');

JHTML::stylesheet('styles.css','modules/mod_get_call/css/');

//require_once('recaptchalib.php');
$privatekey = "6Ldc2_ISAAAAAABrb****Gr9c_";
$resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field2"] );

$input = JFactory::getApplication()->input; // only once on each method
$form_send = $input->get('form_send', 'notsend');

    switch($form_send){
        case 'send':
            $organization = $input->get('organization', 'No organization entered');
            $phone = $input->get('phone', 'No phone entered');
            $e_mail = $input->get('e_mail', 'No e_mail entered');
            $skype = $input->get('skype', 'No skype entered');
            $comment = $input->get('comment', 'No comment entered');
            //JFactory::getApplication()->enqueueMessage(JText::_($organization), 'error');
            if ($resp->is_valid == true)
                $send = ModGetCallHelper::SendMail($organization, $phone, $e_mail, $skype, $comment);
            else{
                require(JModuleHelper::getLayoutPath('mod_get_call', 'wrong_input_tmplc'));
                break; 
            }****`

并且一切正常,就在我提交$ e_mail时它没有@符号,当我输入俄语字母时 - 我看到空变量。当我尝试写$_POST["e_mail"]时 - 一切都好。但如何使用JFactory::getApplication()->input的俄语符号?我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果没有输入类型,则默认使用Word作为输入过滤器。你应该永远不要以$input->get()的方式使用$input->getString()$input->getInt()之类的东西。这将为您提供正确的输入过滤。有关更多详细信息,请阅读JInput类docblocks。

与此同时,不要硬编码你的私钥,它是不可维护的,如果你需要生成一个新密钥怎么办?