Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/27: Рейтинг темы: голосов - 27, средняя оценка - 4.56
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601

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

31.05.2020, 22:54. Показов 7468. Ответов 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
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru