我在我的项目中使用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
的俄语符号?我做错了什么?
答案 0 :(得分:1)
如果没有输入类型,则默认使用Word作为输入过滤器。你应该永远不要以$input->get()
的方式使用$input->getString()
或$input->getInt()
之类的东西。这将为您提供正确的输入过滤。有关更多详细信息,请阅读JInput类docblocks。
与此同时,不要硬编码你的私钥,它是不可维护的,如果你需要生成一个新密钥怎么办?