Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601

Значание из формы HTML не передается в переменную PHP

31.05.2020, 22:54. Показов 7761. Ответов 168
Метки php (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Есть форма:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!-- кнопка пополнения кошелька -->
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
 
<div class="payment-method">
    <p class="choose-payment"><?php _e('Пополнение кошелька BS'); ?></p>
</div>
 
    <div class="code-bank">
 
        <form class="et-form" method="post">
 
            <div class="input-group">
                        <label for="amount"><?php _e( 'Money amount', 'enginethemes' ); ?></label>
                        <input type="number" name="amount001" placeholder="<?php printf(__('Minimum: %s', 'enginethemes'), mje_format_price(MIN_WITHDRAW, "", true, false)); ?>">
            </div>
 
            <div class="form-group">
                <br><button class="btn-save waves-effect waves-light btn-diplomat js-my-form-submit"><?php _e('Пополнить'); ?></button>
            </div>
 
        </form>
 
</div>
<!-- кнопка пополнения кошелька -->
тут же в файле скрипт:
PHP
1
2
3
<?php
$summa_p = $_POST['amount001'];
//и т д...
Почему из формы amount001 не передается в переменную $summa_p число?
Отладка показывает null.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.05.2020, 22:54
Ответы с готовыми решениями:

Не передается текст формы в переменную php
Вроде всё просто, но не работает. Подскажите, куда смотреть &lt;! DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt; ...

Переменную из php в html
Доброго времени суток, пытаюсь передать переменную из php в php-файл, в котором кодм html. Файл index.php(здесь только html): ...

Передать переменную HTML ->JS->PHP
Всем привет! Я новичок и пытаюсь освоить AJAX. Есть задача: на странице в HTML есть форма, где выбирается год и месяц, а затем через...

168
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
10.06.2020, 21:16  [ТС]
Студворк — интернет-сервис помощи студентам
хотя нет проще вторую переимновать

Добавлено через 3 минуты
Аллилуя!!!
PHP
1
2
3
    <?php
}
?>
не поставил после скрипта

ЗАРАБОТАЛО!
Спасибо ВАМ БОЛЬШОЕ!
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
10.06.2020, 21:21
ничего сазу не отправляется. форма с невидимыми полями отправляется только после отправки формы с суммой платежа. я сам только что попал на страницу payeer merchant после отправки ее. все норм

Добавлено через 56 секунд
ох не заметил ваше сообщение.
ну вот и прекрасно. разобрались. желаю успехов
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
10.06.2020, 21:30  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
ничего сазу не отправляется. форма с невидимыми полями отправляется только после отправки формы с суммой платежа. я сам только что попал на страницу payeer merchant после отправки ее. все норм

Добавлено через 56 секунд
ох не заметил ваше сообщение.
ну вот и прекрасно. разобрались. желаю успехов
СПАСИБО!
Двигаюсь дальше, буду думать об обработке платежа после платежки, занесение суммы в БД.
Вопросов будет еще очень много))
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
30.06.2020, 23:15  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
ничего сазу не отправляется. форма с невидимыми полями отправляется только после отправки формы с суммой платежа. я сам только что попал на страницу payeer merchant после отправки ее. все норм

Добавлено через 56 секунд
ох не заметил ваше сообщение.
ну вот и прекрасно. разобрались. желаю успехов
Возвращаюсь к теме спустя время. В полученной форме возникла необходимость, помимо отправки формы в мерчант, отправлять данные формы и в БД, после нажатия кнопки.
Я так понимаю нужна функция if else но как быть с JS скриптом выполнения нажатия кнопки, что мы сделали ранее?
Подскажите как правильно реализовать?

Форма:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$today = date("m.d.y");
$today1 = date("H:i:s");
$user_data01 = $current_user->user_login;
 
if (isset($_POST['m_amount'])) {
    $m_shop = '001';
    $m_orderid = $user_data01 . '|' . $today . '|' . $today1; 
    $m_amount = number_format($_POST['m_amount'], 2, ".", ""); 
    $m_curr = 'RUB';
    $m_desc = base64_encode($user_data01); 
    $m_key = '123';
 
    $arHash = array(
        $m_shop,
        $m_orderid,
        $m_amount,
        $m_curr,
        $m_desc
    );
 
    $arHash[] = $m_key;
 
    $sign = strtoupper(hash('sha256', implode(':', $arHash)));
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<form method="post" action="https://payeer.com/merchant/" id="payeer" hidden>
<input type="hidden" name="m_shop" value="<?= $m_shop ?>">
<input type="hidden" name="m_orderid" value="<?= $m_orderid ?>">
<input type="hidden" name="m_amount" value="<?= $m_amount ?>">
<input type="hidden" name="m_curr" value="<?= $m_curr ?>">
<input type="hidden" name="m_desc" value="<?= $m_desc ?>">
<input type="hidden" name="m_sign" value="<?= $sign ?>">
 
<input type="submit" value="pay" />
</form>
<script>
    document.getElementById('payeer').submit();
</script>
<?php
}
?>
 
<form name="et-form" class="et-form" method="post">
 
            <div class="plateg">
                <label for="amount"><?php _e( 'Money amount', 'enginethemes' ); ?></label>
                <input type="number" name="m_amount" placeholder="Минимум: 100.00Р" required></div>
                <br><button type= "submit" class="btn-save waves-effect waves-light btn-diplomat"><?php _e('Пополнить'); ?></button>
        </form>
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
01.07.2020, 12:25
зачем нужен if else? что мешает сохранять данные в таблицу бд в обработке $_POST? вот так, например:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if (isset($_POST['m_amount'])) {
   // здесь проверяем данные
   if (!$error) { // если проверка прошла успешно
 
        // сохраняем данные запроса в базу данных
 
        // тут форма с невидимыми полями 
        // тут js отправки формы
   }
}
// тут, если не было отправки формы с вводом платежа форма с невидимыми полями не выводится
?>
<form name="et-form" class="et-form" method="post">
    <div class="plateg">
        <label for="amount"><?php _e( 'Money amount', 'enginethemes' ); ?></label>
        <input type="number" name="m_amount" placeholder="Минимум: 100.00Р" required>
</div>
<br><button type= "submit" class="btn-save waves-effect waves-light btn-diplomat"><?php _e('Пополнить'); ?></button>
</form>
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
01.07.2020, 22:39  [ТС]
Действительно, if else не нужен. Все работает.
Столкнулся с проблемой.
Решил построить по такому принципу.
Форма записывается в БД и отправляется на мерчант, затем после оплаты обработчик (в случае если платеж прошел) берет из БД сумму, по определенным критериям:

PHP
1
2
3
4
5
6
$m_amount = $wpdb->get_results(
    "SELECT amount
    FROM `bs_amounts`
    WHERE orderid = '$amount_id'
    AND login = '$user_data01'"
);
где
amount - колонка где ищу цифру
bs_amounts - таблица

$amount_id это идентификатор платежа, взятый из массива обработчика (также и запостенного в форму):

PHP
1
2
3
4
5
6
7
8
9
10
11
12
    $arHash = array(
        $_POST['m_operation_id'],
        $_POST['m_operation_ps'],
        $_POST['m_operation_date'],
        $_POST['m_operation_pay_date'],
        $_POST['m_shop'],
        $_POST['m_orderid'],
        $_POST['m_amount'],
        $_POST['m_curr'],
        $_POST['m_desc'],
        $_POST['m_status']
    );
такими способами:
$amount_id = $arHash->$_POST['m_orderid'];
либо
$amount_id = $_POST['m_orderid'];

но они не работают, как правильно получить оттуда данные?

Добавлено через 27 секунд
foreach?
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
02.07.2020, 11:10
$amount_id = $_POST['m_orderid']; должно работать
или если $arHash массив, то значение $_POST['m_orderid'] можно получить так
PHP
1
$amount_id = $arHash[5];
если таким способом не сработает, то у вас какой-то другой все-таки формат данных. чтобы его узнать, используйте, например, print_r или var_dump
PHP
1
2
3
echo '<pre>';
print_r($arHash);
echo '</pre>';
тогда надо использовать тот формат, который будет получен.
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
02.07.2020, 22:13  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
$amount_id = $_POST['m_orderid']; должно работать
или если $arHash массив, то значение $_POST['m_orderid'] можно получить так
PHP
1
$amount_id = $arHash[5];
если таким способом не сработает, то у вас какой-то другой все-таки формат данных. чтобы его узнать, используйте, например, print_r или var_dump
PHP
1
2
3
echo '<pre>';
print_r($arHash);
echo '</pre>';
тогда надо использовать тот формат, который будет получен.
Даа, все четко отличный вариант:
PHP
1
$amount_id = $arHash[5];
но дело в том что ранее в форме массив с этой переменной передается так:
PHP
1
2
3
4
5
6
7
8
9
10
11
$arHash = array(
        $m_shop,
        $m_orderid,
        $m_amount,
        $m_curr,
        $m_desc
    );
 
    $arHash[] = $m_key;
 
    $sign = strtoupper(hash('sha256', implode(':', $arHash)));
получается шифруется при помощи ключа, далее в обработчике тоже вот так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
if (!in_array($_SERVER['REMOTE_ADDR'], array('185.71.65.92', '185.71.65.189', '149.202.17.210'))) return;
 
if (isset($_POST['m_operation_id']) && isset($_POST['m_sign']))
{
    $m_key = '123';
 
    $arHash = array(
        $_POST['m_operation_id'],
        $_POST['m_operation_ps'],
        $_POST['m_operation_date'],
        $_POST['m_operation_pay_date'],
        $_POST['m_shop'],
        $_POST['m_orderid'],
        $_POST['m_amount'],
        $_POST['m_curr'],
        $_POST['m_desc'],
        $_POST['m_status']
    );
 
    if (isset($_POST['m_params']))
    {
        $arHash[] = $_POST['m_params'];
    }
 
    $arHash[] = $m_key;
 
    $sign_hash = strtoupper(hash('sha256', implode(':', $arHash)));
 
    if ($_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success')
    {
        //ob_end_clean();
        include 'amount-balance.php';
        exit($_POST['m_orderid'].'|success');
    }
 
    ob_end_clean(); exit($_POST['m_orderid'].'|error');
}
как вытащить раскодированный $_POST['m_orderid']?
как вариант было заглобалить в обработчике $amount_id и в обработчике под массивом вставить эту переменную:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$arHash = array(
        $_POST['m_operation_id'],
        $_POST['m_operation_ps'],
        $_POST['m_operation_date'],
        $_POST['m_operation_pay_date'],
        $_POST['m_shop'],
        $_POST['m_orderid'],
        $_POST['m_amount'],
        $_POST['m_curr'],
        $_POST['m_desc'],
        $_POST['m_status']
    );
$amount_id = $arHash[5];
но это нерабочий вариант(
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
03.07.2020, 11:26
я не знаю настройки мерчанта, в описании у них надо смотреть точнее, но из тех скриптов, которые здесь, $_POST['m_orderid'] доступен в любой точке кода (это же суперглобальный массив)
если у вас правильный код (стр. 29-34)
PHP
1
2
3
4
5
6
if ($_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success')
{
    //ob_end_clean();
    include 'amount-balance.php';
    exit($_POST['m_orderid'].'|success');
}
то обработчик успешной оплаты в файле amount-balance.php, и в нем должен быть доступен $_POST['m_orderid']. другими словами, никаких данных вытаскивать не надо, они и так все должны быть в готовом виде.
и еще - можно и не подключать 'amount-balance.php', а вместо него сразу вставить нужные скрипты оплаты.
впрочем, я с документацией payeer не знаком. попробуйте в нужном месте скрипта вставьте для отладки:
PHP
1
2
3
echo '<pre>';
print_r($_POST);
echo '</pre>';
затем поищите нужный параметр в $_SESSION (то есть вместо $_POST сделайте print_r($_SESSION); )
может, в адресной строке передается этот параметр, если вас с мерчанта перебрасывает на страницу соответствующую.
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
03.07.2020, 21:42  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
я не знаю настройки мерчанта, в описании у них надо смотреть точнее, но из тех скриптов, которые здесь, $_POST['m_orderid'] доступен в любой точке кода (это же суперглобальный массив)
если у вас правильный код (стр. 29-34)
PHP
1
2
3
4
5
6
if ($_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success')
{
    //ob_end_clean();
    include 'amount-balance.php';
    exit($_POST['m_orderid'].'|success');
}
то обработчик успешной оплаты в файле amount-balance.php, и в нем должен быть доступен $_POST['m_orderid']. другими словами, никаких данных вытаскивать не надо, они и так все должны быть в готовом виде.
и еще - можно и не подключать 'amount-balance.php', а вместо него сразу вставить нужные скрипты оплаты.
впрочем, я с документацией payeer не знаком. попробуйте в нужном месте скрипта вставьте для отладки:
PHP
1
2
3
echo '<pre>';
print_r($_POST);
echo '</pre>';
затем поищите нужный параметр в $_SESSION (то есть вместо $_POST сделайте print_r($_SESSION); )
может, в адресной строке передается этот параметр, если вас с мерчанта перебрасывает на страницу соответствующую.
может, в адресной строке передается этот параметр, если вас с мерчанта перебрасывает на страницу соответствующую.
так и было передает в адресной строке, чтобы потом не было казусов я сразу после успешной оплаты перенаправляю на страницу успешной оплаты через header('Location.

У меня одна проблема осталась, не могу получить данные из $_POST['m_orderid']
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
03.07.2020, 22:08
1. что у вас в адресной строке?
2. что выводит
PHP
1
2
3
echo '<pre>';
print_r($_POST);
echo '</pre>';
3. что выводит
PHP
1
2
3
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
03.07.2020, 22:58  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
1. что у вас в адресной строке?
2. что выводит
PHP
1
2
3
echo '<pre>';
print_r($_POST);
echo '</pre>';
3. что выводит
PHP
1
2
3
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
1. В адресной строке перечислены все параметры массива (все данные формы)
2.
PHP
1
2
3
echo '<pre>';
print_r($_POST);
echo '</pre>';
ничего, на сервере выполняется ведь, а запускается по API, пытаюсь вот отлогировать, пока никак

3.
PHP
1
2
3
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
ничего нет
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
04.07.2020, 09:09
Цитата Сообщение от rsl89 Посмотреть сообщение
на сервере выполняется ведь
вообще-то все php скрипты выполняются на сервере. на клиенте - javascript
Цитата Сообщение от rsl89 Посмотреть сообщение
запускается по API
тогда вам надо разобраться с документацией этой платежной системы. я с ней не знаком.
Цитата Сообщение от rsl89 Посмотреть сообщение
В адресной строке перечислены все параметры массива
может, и нужный вам параметр надо взять из адресной строки, например
PHP
1
$amount_id = $_GET['m_orderid'];
или как-то иначе, в зависимости от формата данных
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
05.07.2020, 19:50  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
вообще-то все php скрипты выполняются на сервере. на клиенте - javascript

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

может, и нужный вам параметр надо взять из адресной строки, например
PHP
1
$amount_id = $_GET['m_orderid'];
или как-то иначе, в зависимости от формата данных
тогда вам надо разобраться с документацией этой платежной системы. я с ней не знаком.
так все, больше нет документации только обработчик.
Обработчик пришлось закачать на сервер (хостинг) и что в обработчике происходит посмотреть невозможно, на хостинге нет отладчика, только профилирование.
задал вопросы в поддержку платежной системы, может они с ориентируют что происходит в массиве

Добавлено через 15 секунд


$amount_id = $_GET['m_orderid'];
не сработало(

Добавлено через 12 минут
на худой край проверил что там в $_POST['m_orderid'] при помощи file_put_contents
все четко, попадают нужные данные
но почему не получается взять данные из $_POST['m_orderid'] и использовать их в файле amount-balance.php?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
if (!in_array($_SERVER['REMOTE_ADDR'], array('185.71.65.92', '185.71.65.189', '149.202.17.210'))) return;
 
if (isset($_POST['m_operation_id']) && isset($_POST['m_sign']))
{
    $m_key = '123';
 
    $arHash = array(
        $_POST['m_operation_id'],
        $_POST['m_operation_ps'],
        $_POST['m_operation_date'],
        $_POST['m_operation_pay_date'],
        $_POST['m_shop'],
        $_POST['m_orderid'],
        $_POST['m_amount'],
        $_POST['m_curr'],
        $_POST['m_desc'],
        $_POST['m_status']
    );
 
    $amount_id = $_POST['m_orderid'];
 
    if (isset($_POST['m_params']))
    {
        $arHash[] = $_POST['m_params'];
    }
 
    $arHash[] = $m_key;
 
    $sign_hash = strtoupper(hash('sha256', implode(':', $arHash)));
 
    if ($_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success')
    {
        //ob_end_clean();
        include 'amount-balance.php';
        exit($_POST['m_orderid'].'|success');
    }
 
    ob_end_clean(); exit($_POST['m_orderid'].'|error');
}
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
05.07.2020, 19:57
1)
Цитата Сообщение от rsl89 Посмотреть сообщение
В адресной строке перечислены все параметры массива (все данные формы)
кликните по адресной строке и скопируйте ее и сюда выложите.
2) код amount-balance.php покажите
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
05.07.2020, 21:45  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
1)
кликните по адресной строке и скопируйте ее и сюда выложите.
2) код amount-balance.php покажите
1) строка имеет такой вид:
site/success/?m_operation_id=1067843166&m_operation_p s=88004700&m_operati on_date=27.06.2020 22:55:24&m_operation_pay_date=27.06.2020 22:55:47&m_shop=001&m_orderid=admin06.27 .2022:55:02&m_amount =10.00&m_curr=RUB&m_desc=YWRtaW5fYnM%3D& m_status=success&m_s ign=A5D706AC59D6F9B05CE6FA08C77EC46AFBED B506A0C386176FF6324D 04C37E0C&lang=ru

2) в этом файле операции по посту данный в БД:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
global $wpdb;
include($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
$user_data01 = $current_user->user_login;
 
$amount_id = $_POST['m_orderid'];
 
$m_amount = $wpdb->get_results(
    "SELECT amount
    FROM `bs_amounts`
    WHERE orderid = '$amount_id'
    AND login = '$user_data01'"
);
// и еще несколько операций по работе с БД, которые завязаны на $m_amount и на $amount_id
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
06.07.2020, 12:48
откуда получаете значение $m_key = '123';?
что у вас делает ob_end_clean();?
return; используют в функциях и методах классов. здесь, наверное, надо exit; например:
PHP
1
if (!in_array($_SERVER['REMOTE_ADDR'], array('185.71.65.92', '185.71.65.189', '149.202.17.210'))) exit('Illegal IP');
какие значения у $_POST['m_operation_id']) и $_POST['m_sign']?
Цитата Сообщение от rsl89 Посмотреть сообщение
сразу после успешной оплаты перенаправляю на страницу успешной оплаты
может, надо было сначала эти скрипты ваши здесь выполнить, а потом перенаправлять?
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
06.07.2020, 21:59  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
откуда получаете значение $m_key = '123';?
что у вас делает ob_end_clean();?
return; используют в функциях и методах классов. здесь, наверное, надо exit; например:
PHP
1
if (!in_array($_SERVER['REMOTE_ADDR'], array('185.71.65.92', '185.71.65.189', '149.202.17.210'))) exit('Illegal IP');
какие значения у $_POST['m_operation_id']) и $_POST['m_sign']?

может, надо было сначала эти скрипты ваши здесь выполнить, а потом перенаправлять?
откуда получаете значение $m_key = '123';?
это ключ который задается в личном кабинете и также прописывается как в форме, которая отправляется на мерчант так и в обработчик, при помощи этого ключа шифруется:

форма:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$m_key = '123';
 
    $arHash = array(
        $m_shop,
        $m_orderid,
        $m_amount,
        $m_curr,
        $m_desc
    );
 
    $arHash[] = $m_key;
 
    $sign = strtoupper(hash('sha256', implode(':', $arHash)));
обработчик:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$m_key = '123';
 
    $arHash = array(
        $_POST['m_operation_id'],
        $_POST['m_operation_ps'],
        $_POST['m_operation_date'],
        $_POST['m_operation_pay_date'],
        $_POST['m_shop'],
        $_POST['m_orderid'],
        $_POST['m_amount'],
        $_POST['m_curr'],
        $_POST['m_desc'],
        $_POST['m_status']
    );
 
    $amount_id = $_POST['m_orderid'];
 
    if (isset($_POST['m_params']))
    {
        $arHash[] = $_POST['m_params'];
    }
 
    $arHash[] = $m_key;
 
    $sign_hash = strtoupper(hash('sha256', implode(':', $arHash)));
что у вас делает ob_end_clean();?
return;
так в стандартном коде, который предоставляет система, все работает, баланс на мерчанте пополняется, просто я не могу получить данные из $_POST['m_orderid'], чтобы записать в БД пополнение.

какие значения у $_POST['m_operation_id']) и $_POST['m_sign']?
PHP
1
$_POST['m_operation_id'] = nick|07.02.20|21:30:59 //записывается в таком виде, ник и время
$_POST['m_sign'] формируется на сервере мерчанта, я так понял это некий массив наших данных из формы

Добавлено через 10 минут
может, надо было сначала эти скрипты ваши здесь выполнить, а потом перенаправлять?
это делает мерчант автоматом
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
06.07.2020, 22:39
пытался сообразить, что еще может быть причиной. вот еще что проверьте
PHP
1
2
3
4
5
6
if ($_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success')
    {
        //ob_end_clean();
        include 'amount-balance.php';
        exit($_POST['m_orderid'].'|success');
    }
в этих строках подключается amount-balance.php, но только если $_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success'. иными словами, надо узнать значения $_POST['m_sign'], $sign_hash, $_POST['m_status'] и проверить выполнение этих условий.

и еще. по-моему причиной может быть закомментированная строка //ob_end_clean();
попробуйте ее раскомментировать и посмотрите результат
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
06.07.2020, 22:51  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
пытался сообразить, что еще может быть причиной. вот еще что проверьте
PHP
1
2
3
4
5
6
if ($_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success')
    {
        //ob_end_clean();
        include 'amount-balance.php';
        exit($_POST['m_orderid'].'|success');
    }
в этих строках подключается amount-balance.php, но только если $_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success'. иными словами, надо узнать значения $_POST['m_sign'], $sign_hash, $_POST['m_status'] и проверить выполнение этих условий.

и еще. по-моему причиной может быть закомментированная строка //ob_end_clean();
попробуйте ее раскомментировать и посмотрите результат
в этих строках подключается amount-balance.php, но только если $_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success'. иными словами, надо узнать значения $_POST['m_sign'], $sign_hash, $_POST['m_status'] и проверить выполнение этих условий.
мне так и нужно и они выполняются, платеж проходит

и еще. по-моему причиной может быть закомментированная строка //ob_end_clean();
попробуйте ее раскомментировать и посмотрите результат
тогда скрипт amount-balance.php не выполняется

Добавлено через 5 минут
тогда скрипт amount-balance.php не выполняется
на всякий случай протестил еще раз, не помогло

Добавлено через 2 минуты
Главное ведь так показывает, записывает в файл что надо:
PHP
1
2
на худой край проверил что там в $_POST['m_orderid'] при помощи file_put_contents
все четко, попадают нужные данные
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.07.2020, 22:51

Записать html код в переменную php
как стилизировать отправляемый текст на пошту. в переменную записую текст и отправляю на пошту, как можно стилизировать список заказа? ...

передать переменную из html файла в php
почему не работает? Так то вроде все правильно. не пойму где ошибка index.html: &lt;html&gt; &lt;head&gt; &lt;title&gt;What is...

Как передать в HTML переменную из php
Как передать в HTML переменную из php? Причем HTML код содержится в .php файле.

Как поместить в переменную код html и php?
Здравствуйте, Подскажите пожалуйста как поместить вот этот код: &lt;p align=&quot;left&quot; class='post_comment'&gt;Add comment:...

Php не видит переменную при инициадизации из html
Php не видит переменную при инициализации из шаблона сайта &lt;div class=&quot;short-description-content&quot;&gt; &lt;p...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Опции темы

Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru