2012-04-26 2 views
-3

Я бегу Magento ver. 1.6.2.0 на экземпляре Ubuntu EC2, но мои формы возвращаются как файлы php с кодировкой base64, которые не декодируются. Любые идеи о включении base64-декодирования для Magento или PHP вообще?Почему base64 закодированный PHP не декодируется?

У нас есть контактная форма, которую вы можете заполнить и нажать кнопку «Отправить». Эта форма появилась с темой Magento, которую мы установили (CrispAndClean by Themeforest). Однако, когда вы нажимаете «Отправить», вместо отправляемой формы вы возвращаетесь на пустую страницу. Если вы нажмете источник просмотра, вы увидите PHP с кодировкой base64.

Вы можете расшифровать его с помощью этого сайта: http://www.tareeinternet.com/scripts/decrypt.php

Вот результат:

> http://www.facebook.com/rebimol * * * @author Владимир Попов * @copyright Copyright (c) 2011 Владимир Попов * @license http://opensource.org/licenses/osl-3.0.php Открытая лицензия на программное обеспечение (OSL 3.0) */класс VladimirPopov_WebForms_Block_Webforms extends Mage_Core_Block_Template {protected function _toHtml() {if ((float) substr (Mage :: getVersion(), 0,3) < = 1.3) {if ($ this-> getTemplate() == 'webforms/default.phtml' & & $ this-> getData ('nolegacy')! = '0') {$ this-> setTemplate ('webforms/legacy.phtml'); }} $ note = "Работает на основе WebForms

"; return 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']); if (! 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(); if ($ count> 0) {$ show_success = true; }} if (Mage :: getSingleton ('core/session') -> getWebformsSuccess() == $ data ['webform_id'] || $ show_success) {Mage :: register ('show_success', true); Mage :: getSingleton ('ядро/сессия') -> setWebformsSuccess(); } if ($ webform-> getRegisteredOnly() & & Mage :: helper ('customer') -> isLoggedIn()) {Mage :: getSingleton ('customer/session') -> setBeforeAuthUrl ($ this-> getRequest () -> getRequestUri()); Mage :: приложение() -> getFrontController() -> GetResponse() -> setRedirect (Mage :: помощник ('клиент') -> 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'); if ($ this-> captchaAvailable()) Mage :: register ('use_captcha', true); } // proccess result 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'), $ this-> GetRequest() -> GetParam ('recaptcha_response_field')); if ($ verify-> isValid()) {$ success = $ this-> saveResult(); } else {Mage :: getSingleton ('core/session') -> addError ($ this -> __ («Код подтверждения неверен. Повторите попытку.»)); Mage :: регистр ('captcha_invalid', правда); }} else {Mage :: getSingleton ('core/session') -> addError ($ this -> __ ('Код подтверждения неверен. Повторите попытку.«)); Mage :: регистр ('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(); $ This-> getLayout() -> getBlock ('голова') -> SETTITLE (Mage :: реестра ('Webform') -> GetName()); } Общественная функция captchaAvailable() {если (class_exists ('Zend_Service_ReCaptcha') & & Mage :: getStoreConfig ('WebForms/CAPTCHA,/public_key') & & Mage :: getStoreConfig ('WebForms/CAPTCHA,/private_key')) возвращает истину; return false; } public function getCaptcha() {$ pubKey = Mage :: getStoreConfig ('webforms/captcha/public_key'); $ privKey = Mage :: getStoreConfig ('webforms/captcha/private_key'); if ($ pubKey & & $ privKey) $ recaptcha = новый Zend_Service_ReCaptcha ($ pubKey, $ privKey); return $ recaptcha; } public function saveResult() {if (! Mage :: registry ('webform')) return false; try {$ 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()); } $ result-> setData ($ postData) -> setWebformId (Mage :: registry ('webform') -> getId()) -> setStoreId (Mage :: app() -> getStore() -> getId()) -> setCustomerId (Mage :: getSingleton ('customer/session') -> getCustomerId()) -> setCustomerIp ($ iplong) -> save(); Mage :: dispatchEvent ('webforms_result_submit', массив ('результат' => $ результат, 'Webform' => Mage :: реестра ('веб-форма'))); $ emailSettings = Mage :: registry ('webform') -> getEmailSettings(); if ($ emailSettings ['email_enable']) {$ result = Mage :: getModel ('webforms/results') -> load ($ result-> getId()); $ Result-> SendEmail(); if (Mage :: registry ('webform') -> getDuplicateEmail()) {$ result-> sendEmail ('customer'); }} return true; } catch (Exception $ e) {Mage :: getSingleton ('core/session') -> addError ($ e-> getMessage()); return 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']); if ($ ip) {array_unshift ($ ips, $ ip); $ ip = false; } for ($ i = 0; $ i < count ($ ips); $ i ++) {if (! preg_match ("/^(10 | 172 \ .16 | 192 \ .168) \ ./ i", $ ips [$ i])) {if (version_compare (phpversion(), "5.0.0", "> =")) {if (ip2long ($ ips [$ i])! = false) {$ ip = $ ips [ $ я]; ломать; }} 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; $ results = Mage :: getModel ('webforms/results') -> getCollection() -> addFilter ('webform_id', $ webform-> getId()) -> addFilter ('approved', 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); } Mage :: register ('prev_url', $ prev_url); Mage :: регистр ('next_url', $ next_url); Mage :: регистр ('current_page', $ CURRENT_PAGE); Mage :: регистр ('результат', $ результатов); } protected function _afterToHtml ($ html) {Mage :: unregister ('webform'); Mage :: незарегистрированный ('fields_to_fieldsets'); Mage :: незарегистрированный ('prev_url'); Mage :: незарегистрированный ('next_url'); Mage :: незарегистрированный ('current_page'); Mage :: незарегистрированный ('Результаты'); Mage :: незарегистрированный ('REDIRECT_URL'); Mage :: незарегистрированный ('use_captcha'); Mage :: незарегистрированный ('captcha_invalid'); return parent :: _ afterToHtml ($ html); }}?>
+2

Я очень опытный разработчик PHP и Magento, но я не знаю, следую ли вы тому, о чем вы говорите. Примеры могут помочь. –

+0

примеры всегда помогают –

+0

Спасибо за то, что посмотрели, обновлены с конкретными Пример – EricFromChina

ответ

0

Часть ответа, кажется, что Eval команда в первой части страницы, которая возвращается не выполняется:

Eval (gzinflate (str_rot13 (base64_decode ('HZrHkoNLtlJ/pXRdFQwA4aNaBd57z6QDYoX3X/9HLwc5yQiBuOfsvZZFf/3333/9ozzT4Y

Смежные вопросы