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

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

31.05.2020, 22:54. Показов 7451. Ответов 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
08.07.2020, 00:23  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от vinikon Посмотреть сообщение
$m_amount - это МАССИВ. как вы его прибавляете?

Добавлено через 2 минуты
поэтому и работает, когда вы ей присваиваете число. а при запросе из бд значение нужное еще надо получить из результата
ну теперь-то мы это выяснили, да сейчас это массив исходя из:
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'"
);
Я же говорю все работает если для теста задать вместо вышеуказанного кода просто $m_amount = 138;
Я что-то совсем не учел что из бд получаем массив. Это исправимо если бы массив был наполнен, тут возникла проблема с
$amount_id = $_POST['m_orderid'], что он не корректно отрабатывается, написал в поддержку на что мне ответили обращайтесь к программисту(

Добавлено через 1 минуту
Цитата Сообщение от vinikon Посмотреть сообщение
$m_amount - это МАССИВ. как вы его прибавляете?

Добавлено через 2 минуты
поэтому и работает, когда вы ей присваиваете число. а при запросе из бд значение нужное еще надо получить из результата
поэтому и работает, когда вы ей присваиваете число. а при запросе из бд значение нужное еще надо получить из результата
да да Вы совершенно правы
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
08.07.2020, 00:36
вот вы перед отправкой на payeer форму и все данные сохраняете в таблицу бд. таким образом, все отправленные формы и с ними данные должны быть в этой таблице. там они все есть? я не понимаю, что у вас там не стыкуется? настройте нормально получение $amount_id из бд. а затем почистите кеш в браузере. и попробуйте еще раз.
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
08.07.2020, 07:57  [ТС]
вот вы перед отправкой на payeer форму и все данные сохраняете в таблицу бд. таким образом, все отправленные формы и с ними данные должны быть в этой таблице. там они все есть? я не понимаю, что у вас там не стыкуется? настройте нормально получение $amount_id из бд. а затем почистите кеш в браузере. и попробуйте еще раз.

1. Я записываю из формы в бд логин, логин+время ($amount_id= логин+дмг+чмс - это и есть мой идентификатор) и сумму

2. После оплаты (во время работы обработчика платежа) я записываю в БД юзера его новый баланс (старый баланс + новый), при этом я беру данные идентификатора из $amount_id и сортирую по нему таблицу в БД, чтобы найти нужную сумму:
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'"
);
то есть та сумма Х, у которого идентификатор У.

3. Не работает. Начали разбираться. Оказалось что в $amount_id каким -то образом попадают устаревшие данные, предыдущего и пред предыдущего платежа, это мы проверили при помощи file_put_contents($filed, print_r($_POST, true));.
В чем причина понять не могу, может ли это быть кэш браузера. В бд из формы записалось верно, в строке браузера данные передаются верно, в истории платежа на мерчанте показывает верно.

4. $m_amount - это массив, получаемый из БД. Решил сделать тест, задал $amount_id='равным некоторому значению из имеющихся в бд транзакций' и var dump $m_amount показал число - смог вывести мне сумму пополнения без всяких массивов.
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
08.07.2020, 11:45
проверьте все запросы к бд в ваших скриптах и перепишите их правильно
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
08.07.2020, 16:32  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
проверьте все запросы к бд в ваших скриптах и перепишите их правильно
Так ведь остальное все правильно, у меня всего-то:
1. Форма отправки
2. Запись ее параметров (3 параметра) в БД
3. Обработчик платежа

Все остальное работает как часы.

единственная проблема с $m_amount и $amount_id
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
08.07.2020, 16:52
что-то все-таки неправильно. а покажите код записи параметров формы в бд
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
08.07.2020, 17:06  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
что-то все-таки неправильно. а покажите код записи параметров формы в бд
PHP
1
2
3
4
5
6
7
8
9
10
 $new_amount = array(
        'ID'=> '',
        'login' => $user_data01,
        'amount' => $m_amount,
        'orderid' => $m_orderid,
        'm_desc' => $m_desc,
        'success' => '0'
    );
 
    $wpdb->insert ('bs_amounts', $new_amount);
так все что записывается из формы в бд совпадает историей мерчанта, там все чтеко

не четко только то, что $amount_id не постоянен и ве-таки где-то тут косяк:

протестил так:

PHP
1
2
3
4
5
6
7
8
9
10
amount_id = 'nick|07.02.20|21:30:59';
 
$m_amount = $wpdb->get_results(
    "SELECT amount
    FROM `bs_amounts`
    WHERE orderid = '$amount_id'
    AND login = '$user_data01'"
);
var_dump($m_amount);
die;
на что мне выдало:
array (size=1)
0 =>
object(stdClass)[9516]
public 'amount' => string '10' (length=2)

Добавлено через 7 минут
на что мне выдало:
array (size=1)
0 =>
object(stdClass)[9516]
public 'amount' => string '10' (length=2)
причем, если задать так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
amount_id = 'nick|07.02.20|21:30:59';
 
$amount = $wpdb->get_results(
    "SELECT amount
    FROM `bs_amounts`
    WHERE orderid = '$amount_id'
    AND login = '$user_data01'"
);
 
$m_amount = $amount->amount;
 
var_dump($m_amount);
die;
выдает null
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
08.07.2020, 17:10
так и должно работать . поэтому правильный код для этого запроса будет такой:
PHP
1
2
3
4
5
6
7
$amount = $wpdb->get_results(
    "SELECT amount
    FROM `bs_amounts`
    WHERE orderid = '$amount_id'
    AND login = '$user_data01'"
);
$m_amount = $amount[0]->amount;
Добавлено через 1 минуту
посмотрите логи ошибок - что там
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
08.07.2020, 18:11  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
так и должно работать . поэтому правильный код для этого запроса будет такой:
PHP
1
2
3
4
5
6
7
$amount = $wpdb->get_results(
    "SELECT amount
    FROM `bs_amounts`
    WHERE orderid = '$amount_id'
    AND login = '$user_data01'"
);
$m_amount = $amount[0]->amount;
Добавлено через 1 минуту
посмотрите логи ошибок - что там
Так ну с $m_amount мы определились как оно должно работать.

Сейчас протестил оплату, не отработало это:
PHP
1
2
3
4
5
6
7
8
$amount_id = $_POST['m_orderid'];
 
$amount = $wpdb->get_results(
    "SELECT amount
    FROM `bs_amounts`
    WHERE orderid = '$amount_id'
    AND login = '$user_data01'"
);
хотя $amount_id = $_POST['m_orderid']; результат получил верный, все должно было отработать.

$filed = "save.txt";
file_put_contents($filed, '['.print_r($amount, true).']');
$filed1 = "savez.txt";
file_put_contents($filed1, '['.$wpdb->last_error.']');

показали только []

скорее всего поиск по $amount_id не удался, может как-то данные в ней надо перевести в строку к примеру?

Добавлено через 45 минут
Цитата Сообщение от vinikon Посмотреть сообщение
так и должно работать . поэтому правильный код для этого запроса будет такой:
PHP
1
2
3
4
5
6
7
$amount = $wpdb->get_results(
    "SELECT amount
    FROM `bs_amounts`
    WHERE orderid = '$amount_id'
    AND login = '$user_data01'"
);
$m_amount = $amount[0]->amount;
Добавлено через 1 минуту
посмотрите логи ошибок - что там
кажется я что-то нащупал

на openserver такая схема, когда я сам подставляю значение в amount_id для теста работет:

PHP
1
2
3
4
5
6
7
8
amount_id = 'nick|07.02.20|21:30:59';
$amount = $wpdb->get_results(
    "SELECT amount
    FROM `bs_amounts`
    WHERE orderid = '$amount_id'
    AND login = '$user_data01'"
);
$m_amount = $amount[0]->amount;
а вот уже на сервере хостинга нет, $m_amount - там по прежнему пустота
значит существует проблема взаимодействия этого запроса с БД в целом и поиска по таблице НА ХОСТИНГЕ.

откинув пока ту проблему, когда amount_id подставлялся неправильный и рассмотрев этот кейс, когда не находит нужный amount даже с подставным значением amount_id, думаю проблема будет решена

Добавлено через 1 минуту
может быть проблема в кодировках? я поставил как и все таблицы utf8mb4_unicode_520_ci
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
08.07.2020, 22:11
Цитата Сообщение от rsl89 Посмотреть сообщение
utf8mb4_unicode_520_ci
вы серьезно. а из каких соображений? уж если ставить, то utf8mb4_general_ci, но можно было и обычную utf8.
что в логах ошибок?

Добавлено через 3 минуты
PHP
1
$m_amount = $amount[0]->amount;
что в $m_amount.
Цитата Сообщение от rsl89 Посмотреть сообщение
на сервере хостинга нет
а вы там настройки сменили на хостингские?
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
08.07.2020, 23:25  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
вы серьезно. а из каких соображений? уж если ставить, то utf8mb4_general_ci, но можно было и обычную utf8.
что в логах ошибок?

Добавлено через 3 минуты
PHP
1
$m_amount = $amount[0]->amount;
что в $m_amount.

а вы там настройки сменили на хостингские?
вы серьезно. а из каких соображений? уж если ставить, то utf8mb4_general_ci, но можно было и обычную utf8.
у Word Press все такие таблицы, сделал по аналогии

PHP
1
что в логах ошибок?
нет ничего

PHP
1
что в $m_amount.
там:
[Array
(
)
]

а вы там настройки сменили на хостингские?
конечно, смотря какие, касательно кодировок все что было на локалке в том же виде было перенесено и на сервер

Добавлено через 17 минут
протестил для этой таблицы разные кодировки, не помогло
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
09.07.2020, 09:27  [ТС]
Сделал такой тест, вставил этот код в код одной и страницы в шаблоне WP, и открыл ее в браузере, показало: string(2) «10», 10-нужное мне число

ранее этот код содержался у меня в файле, на одном уровне с файлами движка, может быть нужно подключить какие-нибудь хуки? но ведь на локалке он выполняется и без хуков
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
10.07.2020, 00:08  [ТС]
В общем мысли иссякли((( что делать дальше хз...
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
10.07.2020, 11:57
Цитата Сообщение от rsl89 Посмотреть сообщение
а вот уже на сервере хостинга нет, $m_amount - там по прежнему пустота
проверьте настройки подключения к бд на хостинге, чтобы соответствовали тем которые на хостинге, а не вашим с os

Добавлено через 30 минут

Не по теме:

скрипты оплаты не особо сложные. в том коде, который здесь перепроверен и вдоль и поперек, ошибок нет, кроме запроса из бд: $amount = $wpdb->get_results. если он исправлен, то проблема где-то еще. где скрипты на сайте вставляются, как форма тестируется, почему устаревшие данные лезут, где нужные данные застревают - из того вышеприведенного куска кода не определить



Добавлено через 4 минуты
еще непонятно зачем используется ob_end_clean();. а где тогда ob_start()?
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
11.07.2020, 10:23
ради интереса попытался найти документацию по payeer. вот по этому адресу все понятно объясняется. не знаю, устарела ли это дока на этот момент или нет, но если ее прочитать внимательно, то можно увидеть такое требование к полю $m_orderid:
Идентификатор платежа m_orderid
В этом поле продавец
задает идентификатор
покупки в соответствии со
своей системой учета.
Желательно использовать
уникальный номер для
каждого платежа.
Идентификатор должен
представлять собой
любую строку длиной не
более 32 символов "A-z",
"_", "0-9", “-”.

Пример: 12345
а здесь $m_orderid = 'nick|07.02.20|21:30:59';
имеет смысл попробовать формировать его, например так (перед оправкой формы):
PHP
1
$m_orderid = md5(nick.time());
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
11.07.2020, 13:20  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
ради интереса попытался найти документацию по payeer. вот по этому адресу все понятно объясняется. не знаю, устарела ли это дока на этот момент или нет, но если ее прочитать внимательно, то можно увидеть такое требование к полю $m_orderid:

а здесь $m_orderid = 'nick|07.02.20|21:30:59';
имеет смысл попробовать формировать его, например так (перед оправкой формы):
PHP
1
$m_orderid = md5(nick.time());
я так тоже пробовал, на самом деле и как у меня и как в указаниях платеж проходит,
но пополнить баланс на сайте в кошелек пользователую я не могу, потому что это не отрабатывается:
PHP
1
2
3
4
5
6
$amount = $wpdb->get_results(
    "SELECT amount
    FROM `bs_amounts`
    WHERE orderid = '$amount_id'
    AND login = '$user_data01'"
);
Добавлено через 5 минут
Я же и говорю, вообще не понимаю что происходит, даже если сюда $m_orderid = md5(nick.time()); я ради теста поставляю некое готовое значение вместо md5(nick.time()), $amount все равно возвращает пустоту, как буд-то не может найти в базе.

На локалке такой тест проходит.
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
11.07.2020, 13:24
а пароль, логин, название к бд на хостинге поменяли как у провайдера?
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
11.07.2020, 13:30  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
а пароль, логин, название к бд на хостинге поменяли как у провайдера?
с этим все в порядке, вот сейчас сделал еще тест:
PHP
1
2
3
4
5
6
7
8
9
10
$amount_id = 'nick1594462273';
 
$amount = $wpdb->get_results(
    "SELECT amount
    FROM `bs_amounts`
    WHERE orderid = '$amount_id'
    AND login = '$user_data01'"
);
 
$m_amount = $amount[0]->amount;
запустил этот код с готовым значением $amount_id = 'nick1594462273'; все выполнилось, баланс отработал

значит проблема в

PHP
1
2
3
4
5
6
7
8
$amount = $wpdb->get_results(
    "SELECT amount
    FROM `bs_amounts`
    WHERE orderid = '$amount_id'
    AND login = '$user_data01'"
);
 
$m_amount = $amount[0]->amount;
и передачи $amount_id от обработчика
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
11.07.2020, 13:43

Не по теме:

Цитата Сообщение от rsl89 Посмотреть сообщение
В общем мысли иссякли(((
паникер вы, однако. у меня, знаете, свои еще дела есть. не каждый день свободное время появляется


а $user_data01 совпадает с тем, который нужен?
0
 Аватар для rsl89
9 / 8 / 2
Регистрация: 18.04.2020
Сообщений: 601
11.07.2020, 13:54  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение

Не по теме:


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


а $user_data01 совпадает с тем, который нужен?
да, он отрабатывает верно

Добавлено через 48 секунд
да я не паникую, просто все варианты закончились

Добавлено через 7 минут
бредовая мысль, но может этот подключенный файл не успевает выполниться до конца?
стартует, получает все данные а работы по внесению в бд не заканчивает...

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');
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.07.2020, 13:54

Записать 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...


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

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
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 существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru