Перейти к содержанию
xoxma

Как вставить в статью код php?

Рекомендуемые сообщения

Как вставить в статью код php?

Есть страница, созданная в статьях, туда нужно вставить вот этот код робокассы:

<?
 // регистрационная информация (логин, пароль #1)
 // registration info (login, password #1) 
$mrh_login = "demo"; 
$mrh_pass1 = "password_1";

// номер заказа 
// number of order 
$inv_id = 0;

// описание заказа 
// order description 
$inv_desc = "Пополнение счета ROBOKASSA";

// сумма заказа 
// sum of order 
$def_sum = "10";

// тип товара
// code of goods 
$shp_item = 2;

// язык
// language 
$culture = "ru";

// кодировка 
// encoding 
$encoding = "utf-8";

// формирование подписи
// generate signature 
$crc = md5("$mrh_login::$inv_id:$mrh_pass1:shpItem=$shp_item");

// HTML-страница с кассой
// ROBOKASSA HTML-page
print "<html><script language=JavaScript ".
 "src='https://auth.robokassa.ru/Merchant/PaymentForm/FormFLS.js?".
 "MerchantLogin=$mrh_login&DefaultSum=$def_sum&InvoiceID=$inv_id".
 "&Description=$inv_desc&SignatureValue=$crc&shpItem=$shp_item".
 "&Culture=$culture&Encoding=$encoding'></script></html>";
?>

Но при вставке через редактор(исходный код), этот код не отображается корректно.

Как вставить его?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проще создать отдельный контроллер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проще создать отдельный контроллер.

Не подскажете, как это реализовать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вставляйте просто html код. В доках должен быть пример простого html. А если нету, то просто вставьте скрипт

<script language=JavaScript src='https://auth.robokassa.ru/Merchant/PaymentForm/FormFLS.js?MerchantLogin=$mrh_login&DefaultSum=$def_sum&InvoiceID=$inv_id&Description=$inv_desc&SignatureValue=$crc&shpItem=$shp_item&Culture=$culture&Encoding=$encoding'></script>
предварительно заменив переменные типа $mrh_login на ваши

 

естественно добавлять только в режиме Исходник (есть такая кнопка при редактировании текста)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут же нет "mrh_pass1" например.

На робокассе только пхп, перл и асп коды =(

Это же по идее тогда будет просто ссылка на оьработчик, а не на табличку, как у робокассы: http://www.robokassa.ru/ru/DemoShop/DemoFree.aspx#

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как нет, тут что ??

 

$crc = md5("$mrh_login::$inv_id:$mrh_pass1:shpItem=$shp_item");

только тут подстановкой просто не обойтись.. надо подумать..

 

Да и в доках все написано ))

http://www.robokassa.ru/ru/Doc/Ru/Interface.aspx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тогда, если по быстрому, проще сделать php файл с выше указанным кодом, а загрузить его в форму через функцию джиквери load.

 

В теории что то получится.. надо пробовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тёмный лес в общем для меня всё это =(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неужели никому не нужно было вставлять какой-либо код пхп в статью?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня то же интересует вставка исполняемого php кода в статью! Если кто знает как это сделать, пожалуйста откликнитесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашел решение такое:

Из админки в статью ставим такой код

<div id="idcod"></div>
<script type="text/javascript"><!--
$("#idcode").load("/code.php");
//--></script>

В корне сайта создаете файл code.php с нужным вам php кодом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И... чем отличается ваш решение от создания отдельного контроллера?

Тем более, что /code.php - это небезопасный путь к файлу.

 

фтопку такие советы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Напишите пожалуйста как создать отдельный контролер? Мне это интересно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

берет копию любого контроллера

и...

например

class ControllerCommonHeader extends Controller {

переименовываете файл и заголовок

 

class ControllerCommonMyCode extends Controller {

 

А теперь делайте в нем что хотите си сколько хотите и как хотите манипулируйте данными

 

ну да, а вызов  оставьте

<div id="idcod"></div>
<script type="text/javascript"><!--
$("#idcode").load("?route=common/mycode");
//--></script>
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое за разъяснения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

берет копию любого контроллера

и...

например

class ControllerCommonHeader extends Controller {

переименовываете файл и заголовок

 

class ControllerCommonMyCode extends Controller {

 

А теперь делайте в нем что хотите си сколько хотите и как хотите манипулируйте данными

 

ну да, а вызов  оставьте

<div id="idcod"></div>
<script type="text/javascript"><!--
$("#idcode").load("?route=common/mycode");
//--></script>

Что то браузер ругается: Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/. Как поправить и подружится.

 
Как исправить?
Изменено пользователем arvaal

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

прошло почти полгода, и вы до сих пор не сделали?

 

Я даже не понимаю, что за ошибка, которой не должно быть

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

полгода   :-D

Изменено пользователем ArtenPitov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

прошло почти полгода, и вы до сих пор не сделали?

 

Я даже не понимаю, что за ошибка, которой не должно быть

 

Сделать то я сделал давно, но ошибку заметил недавно в новом браузере.

Вот как я сделал:

<div id="idcode"></div>
<script defer type="text/javascript"><!--
$(window).load(function(){
$("#idcode").load("/index.php?route=include/phpinclude/sharfkodeks");
});
//--></script>

И вылазиет в консоле эта гребаная ошибка.

Изменено пользователем arvaal

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

странно, где он увидел синхронный запрос?

 

<script defer type="text/javascript"><!--
$(document).ready(function() {
$("#idcode").load("/index.php?route=include/phpinclude/sharfkodeks");
});
//--></script>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

странно, где он увидел синхронный запрос?

 

<script defer type="text/javascript"><!--

$(document).ready(function() {

$("#idcode").load("/index.php?route=include/phpinclude/sharfkodeks");

});

//--></script>

Вот что помогло на данный момент: 

$.ajaxPrefilter(function( options, originalOptions, jqXHR ) { options.async = true; });

Сообщение не появляется, но я не уверен что правильно сделал.

И еще перевод ошибки звучит так угражающе:

 

Синхронный XMLHttpRequest в основном потоке является устаревшим из-за его вредного воздействия на опыт конечного пользователя.

Изменено пользователем arvaal

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не .. на опыт..

 

Это типа предупреждение, что страница может грузиться долго

 

Вот что помогло на данный момент: 

$.ajaxPrefilter(function( options, originalOptions, jqXHR ) { options.async = true; });

Я бы такое не делал..

Это настройка для всего аякса, ктио его знает, где оно может выстрелить.

 

А мой код не рабочий?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не .. на опыт..

 

Это типа предупреждение, что страница может грузиться долго

Я бы такое не делал..

Это настройка для всего аякса, ктио его знает, где оно может выстрелить.

 

А мой код не рабочий?

Рабочий но с уже известным предупреждением. У меня из за этого предупреждения закраличь мысли что поисковики меня кинут в фильтр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А не проще вставить код через Источник находящийся в панели инструментов ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я извиняюсь, подскажите пожалуйста

 

версия opencart 2.3

я копирую файл catalog\controller\common\header.php

 

называю его test.php:

<?php
class ControllerCommonTest extends Controller {
	public function test() {
		print('test');
	}
}

как мне вызвать этот контроллер? Я так понимаю, что так:

<div id="idcod"></div>
<script type="text/javascript"><!--
$("#idcode").load("?route=common/test");
//--></script>

только не срабатывает :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.