2012-04-26 100 views
-3

我正在运行Magento ver。 1.6.2.0在Ubuntu EC2实例上,但我的表单返回为base64编码的php文件,这些文件未被解码。关于一般为Magento或PHP开启base64解码的任何想法?为什么base64编码的PHP没有被解码?

我们有一个联系我们的表格,你可以填写并点击提交。这个表单附带了我们安装的Magento主题(Themeforest的CrispAndClean)。但是,当您单击提交时,而不是提交的表单时,您将返回到空白页面。如果你点击查看源代码,你可以看到base64编码的PHP。

您可以使用本网站对其进行解码: http://www.tareeinternet.com/scripts/decrypt.php

下面是结果:

> http://www.facebook.com/rebimol * * * @author弗拉基米尔·波波夫* @copyright版权所有(c)2011弗拉基米尔波波夫*许可http://opensource.org/licenses/osl-3.0.php开放软件许可证(OSL 3.0)* /类VladimirPopov_WebForms_Block_Webforms扩展Mage_Core_Block_Template {保护功能_toHtml(){如果((浮动)substr(法师:: getVersion(),0.3)< = 1.3){if($ this-> getTemplate()=='webforms/default.phtml'& & $ this-> getData('nolegacy')! ='0'){$ this-> setTemplate('webforms/legacy.phtml'); }} $ note =“Powered by WebForms

”;返回parent :: _ toHtml()。$ note; } public function getFormData(){$ data = $ this-> getRequest() - > getParams(); if(isset($ data ['id'])){$ data ['webform_id'] = $ data ['id']; } if($ this-> getData('webform_id')){$ data ['webform_id'] = $ this-> getData('webform_id'); } return $ data; } protected function _prepareLayout(){if((float)substr(Mage :: getVersion(),0,3)< = 1.4)error_reporting(E_ERROR); $ show_success = false; $ data = $ this-> getFormData(); //获取表单数据$ webform = Mage :: getModel('webforms/webforms') - > load($ data ['webform_id']);如果(!Mage :: registry('webform'))Mage :: register('webform',$ webform); if(intval($ this-> getData('results'))== 1)$ this-> getResults(); if($ webform-> getSurvey()){$ collection = Mage :: getModel('webforms/results') - > getCollection(); if(Mage :: helper('customer') - > isLoggedIn())$ collection-> addFilter('webform_id',$ data ['webform_id']) - > addFilter('customer_id',Mage :: getSingleton('customer /会话') - > getCustomerId()); else {$ session_validator = Mage :: getSingleton('customer/session') - > getData('_ session_validator_data'); $收藏 - > addFilter( 'customer_ip',ip2long($ session_validator [ 'REMOTE_ADDR'])); } $ count = $ collection-> count();如果($ count> 0){$ show_success = true; }} if(Mage :: getSingleton('core/session') - > getWebformsSuccess()== $ data ['webform_id'] || $ show_success){Mage :: register('show_success',true);}法师:: getSingleton( '芯/会话') - > setWebformsSuccess();如果($ webform-> getRegisteredOnly()& &!Mage :: helper('customer') - > isLoggedIn()){Mage :: getSingleton('customer/session') - > setBeforeAuthUrl($ this-> getRequest ) - > getRequestUri());法师::应用程序() - > getFrontController() - > GETRESPONSE() - > setRedirect(法师::助手( '客户') - > getLoginUrl(),301); } Mage :: register('fields_to_fieldsets',$ webform-> getFieldsToFieldsets()); //使用captcha if(!Mage :: helper('customer') - > isLoggedIn()){$ pubKey = Mage :: getStoreConfig('webforms/captcha/public_key'); $ privKey = Mage :: getStoreConfig('webforms/captcha/private_key');如果($ this-> captchaAvailable())Mage :: register('use_captcha',true); }} //处理结果if($ this-> getRequest() - > getParam('submitWebform _'。$ data ['webform_id'])){//验证captcha if(Mage :: registry('use_captcha')){ if($ this-> getRequest() - > getParam('recaptcha_response_field')){$ verify = $ this-> getCaptcha() - > verify($ this-> getRequest() - > getParam('recaptcha_challenge_field'),$这 - > Request()方法 - > getParam( 'recaptcha_response_field')); if($ verify-> isValid()){$ success = $ this-> saveResult(); } else {Mage :: getSingleton('core/session') - > addError($ this - > __('验证码不正确,请重试。'));法师::注册( 'captcha_invalid',真); }} else {Mage :: getSingleton('core/session') - > addError($ this - > __('验证码不正确,请重试。“));法师::注册( 'captcha_invalid',真); }} else {$ success = $ this-> saveResult(); } if($ success){Mage :: getSingleton('core/session') - > setWebformsSuccess($ data ['webform_id']); } //成功提交后重定向$ url = Mage :: helper('core/url') - > getCurrentUrl(); if($ webform-> getRedirectUrl()){if(strstr($ webform-> getRedirectUrl(),'://'))$ url = $ webform-> getRedirectUrl(); else $ url = $ this-> getUrl($ webform-> getRedirectUrl()); } if($ success)Mage :: app() - > getFrontController() - > getResponse() - > setRedirect($ url); } parent :: _ prepareLayout(); $这个 - > getLayout() - > getBlock( '头') - >的setTitle(法师::注册表( 'Web窗体') - >的getName()); }公共函数captchaAvailable(){如果(class_exists( 'Zend_Service_ReCaptcha')& &法师:: getStoreConfig( 'web表单/验证码/ PUBLIC_KEY')& &法师:: getStoreConfig( 'web表单/验证码/ PRIVATE_KEY'))返回true;返回false; } public function getCaptcha(){$ pubKey = Mage :: getStoreConfig('webforms/captcha/public_key'); $ privKey = Mage :: getStoreConfig('webforms/captcha/private_key');如果($ PUBKEY & & $的privKey)$验证码=新Zend_Service_ReCaptcha($ PUBKEY,$的privKey);返回$ recaptcha; } public function saveResult(){if(!Mage :: registry('webform'))return false;尝试{$ postData = $ this-> getRequest() - > getPost(); $ result = Mage :: getModel('webforms/results'); $ session_validator = Mage :: getSingleton('customer/session') - > getData('_ session_validator_data'); $ iplong = ip2long($ session_validator ['remote_addr']); if((float)substr(Mage :: getVersion(),0,3)< = 1){$ iplong = ip2long($ this-> getRealIp()); () - > getId()) - > setStoreId(Mage :: app() - > getStore() - > getId())$ result-> setData($ postData) - > setWebformId(Mage :: registry('webform') - > getId - > setCustomerId(Mage :: getSingleton('customer/session') - > getCustomerId()) - > setCustomerIp($ iplong) - > save();法师:: dispatchEvent( 'webforms_result_submit',阵列( '结果'=> $结果, '网络表单'=>法师::注册表( '网络表单'))); $ emailSettings = Mage :: registry('webform') - > getEmailSettings();如果($ emailSettings ['email_enable']){$ result = Mage :: getModel('webforms/results') - > load($ result-> getId()); $ result-> sendEmail(); (Mage :: registry('webform') - > getDuplicateEmail()){$ result-> sendEmail('customer'); }}返回true; } {catch(Exception $ e){Mage :: getSingleton('core/session') - > addError($ e-> getMessage());返回false; }} public function getRealIp(){$ ip = false; if(!empty($ _ SERVER ['HTTP_CLIENT_IP'])){$ ip = $ _SERVER ['HTTP_CLIENT_IP']; } if(!empty($ _ SERVER ['HTTP_X_FORWARDED_FOR'])){$ ips = explode(“,”,$ _SERVER ['HTTP_X_FORWARDED_FOR']);如果($ ip){array_unshift($ ips,$ ip); $ ip = false; }为($ I = 0; $ I <计数($ IPS); $ I ++)!{如果(的preg_match( “/ ^(10 | 172 \ 0.16 | 192 \ .168)\ ./我”,$ IPS [$ i])){if(version_compare(phpversion(),“5.0.0”,“> =”)){if(ip2long($ ips [$ i])!= false){$ ip = $ ips [ $ i];打破; }} else {if(ip2long($ ips [$ i])!= - 1){$ ip = $ ips [$ i];打破; }}}}} return($ ip?$ ip:$ _SERVER ['REMOTE_ADDR']); } public function getResults(){$ data = $ this-> getData(); $ webform = Mage :: registry('webform'); //获得结果$ page_size = $ data [“page_size”]; $ current_page =(int)$ this-> getRequest() - > getParam('p'); if(!$ current_page)$ current_page = 1; $ from = $ current_page * $ page_size; $结果=法师:: getModel( 'web表单/结果') - > getCollection() - > addFilter( 'webform_id',$ webform->的getId()) - > addFilter( '已批准',1) - > setPageSize($ page_size) - > setCurPage($ current_page); $ results-> getSelect() - > order('created_time desc'); $ last_page = $ results-> getLastPageNumber(); $ page_url = $ this-> getUrl(Mage :: getSingleton('cms/page') - > getData('identifier')); echo get_class($ page_url); if($ current_page1){$ next_url = $ page_url。“?p =”。($ current_page-1); }法师::寄存器('prev_url',$ prev_url);法师::注册( 'next_url',$ next_url);法师::注册( 'CURRENT_PAGE',$ CURRENT_PAGE);法师::注册( '结果',$结果); } protected function _afterToHtml($ html){Mage :: unregister('webform');法师::注销( 'fields_to_fieldsets');法师::注销( 'prev_url');法师::注销( 'next_url');法师::注销( 'CURRENT_PAGE');法师::注销( '结果');法师::注销( 'REDIRECT_URL');法师::注销( 'use_captcha');法师::注销( 'captcha_invalid');返回parent :: _ afterToHtml($ html); }}?>
+2

我是一个非常漂亮的PHP和Magento开发人员,但是我不知道我是否按照你所说的去做,例如 – 2012-04-26 22:21:17

+0

例子总是有帮助 – 2012-04-27 04:00:58

+0

感谢您看看;更新了特定的例如: – EricFromChina 2012-04-27 14:17:41

回答

0
答案

部分似乎是在没有被执行时返回的页面的第一部分的eval命令:

的eval(gzinflate(str_rot13(BASE64_DECODE('HZrHkoNLtlJ/pXRdFQwA4aNaBd57z6QDYoX3X/9HLwc5yQiBuOfsvZZFf/3333/9ozzT4Y