2012-04-26 31 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