Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 30

Запись в бд платежа

02.05.2017, 20:29. Показов 2740. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Пытаюсь сделать скрипт записи платежа в бд и соответсвенно обновлнеие баланса пользователя через webmoney merchant. Тестовый платеж нормально записывается в файл, но почему то не записывает значение суммы в бд. В чем ошибка?
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
<?
$key = hash('sha256', $_POST['LMI_PAYEE_PURSE'].
$_POST['LMI_PAYMENT_AMOUNT'].
$_POST['LMI_PAYMENT_NO'].
$_POST['LMI_MODE'].
$_POST['LMI_SYS_INVS_NO'].
$_POST['LMI_SYS_TRANS_NO'].
$_POST['LMI_SYS_TRANS_DATE'].
'1234567890'.
$_POST['LMI_PAYER_PURSE'].
$_POST['LMI_PAYER_WM']);
 
if ( strtoupper($key) != $_POST['LMI_HASH'])
    exit('ошибка');
 
$amount = $_POST['LMI_PAYMENT_AMOUNT'];
 
$_SESSION['balance'] += $amount;
 
file_put_contents('test.txt', $_POST['LMI_PAYMENT_AMOUNT']);
 
 
mysqli_query($CONNECT, "UPDATE `users` SET `balance` = '$_POST[LMI_PAYMENT_AMOUNT]'");
 
//mysqli_query($CONNECT, "UPDATE `users` SET `balance` = $amount"); или так
 
?>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.05.2017, 20:29
Ответы с готовыми решениями:

Отсрочка платежа 1С:УТ 11.2
Посмотрев ВИДЕО, не могу найти данной галочки (&quot;Вести по документам расчетов с контрагентами&quot;) в УТ 11.2

Проведение платежа
Добрый вечер! Подскажите, пожалуйста, как получить информацию о проведенных платежах, т.е. какой запрос нужно составить(желательно...

Расчет дифференцированного платежа
Здравствуйте. Я пытаюсь сделать поле с расчетом дифференцированного платежа(кредитный калькулятор или что-то вроде того). Все...

27
38 / 38 / 11
Регистрация: 27.09.2014
Сообщений: 491
02.05.2017, 20:52
PHP
1
$_POST[LMI_PAYMENT_AMOUNT]
число или текст?
А вообще жесть: тупо писать в базу то, что пришло, без обработки и проверок! Озвучьте адрес сайта и ожидайте взлома
0
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 30
02.05.2017, 21:04  [ТС]
Число с плавающей точкой
0
38 / 38 / 11
Регистрация: 27.09.2014
Сообщений: 491
02.05.2017, 21:33
А balance как определена в таблице?
0
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 30
02.05.2017, 21:57  [ТС]
float, или что имеется ввиду?
0
38 / 38 / 11
Регистрация: 27.09.2014
Сообщений: 491
02.05.2017, 22:06
Если в таблице поле balance оперделено как float, то зачем одинарные кавычки? С каких пор float стал текстом?
PHP
1
`balance` = '$_POST[LMI_PAYMENT_AMOUNT]'
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
02.05.2017, 22:09
Цитата Сообщение от Vovka Посмотреть сообщение
А вообще жесть: тупо писать в базу то, что пришло, без обработки и проверок!
В данном случае запись безопасна, даже несмотря явную, казалось бы, дыру. Так как пришедшие данные хешируются на основе секретного ключа, которого злоумышленник знать не может.
И, если контрольная подпись не сошлась, просто exit.
0
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 30
03.05.2017, 01:05  [ТС]
она и без кавычек не записывается

Добавлено через 2 часа 17 минут
Короче суть в том что на сайте оплачивать услуги могут только авторизированные пользователи. Такой код в index.php
PHP
1
2
3
4
5
6
7
if ( file_exists('all/'.$page.'.php') ) include 'all/'.$page.'.php';
 
else if ( $_SESSION['id'] and file_exists('auth/'.$page.'.php') ) include 'auth/'.$page.'.php';
 
else if ( !$_SESSION['id'] and file_exists('guest/'.$page.'.php') ) include 'guest/'.$page.'.php';
 
else not_found();
И походу в скрипте нету сессии пользователя. Как тогда сделать , чтобы он видел, какая сейчас сессия и в какую бд записывать результат?
Вот маленько переделанный код
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
<?
 
 
$key = hash('sha256', $_POST['LMI_PAYEE_PURSE'].
$_POST['LMI_PAYMENT_AMOUNT'].
$_POST['LMI_PAYMENT_NO'].
$_POST['LMI_MODE'].
$_POST['LMI_SYS_INVS_NO'].
$_POST['LMI_SYS_TRANS_NO'].
$_POST['LMI_SYS_TRANS_DATE'].
'1234567890'.
$_POST['LMI_PAYER_PURSE'].
$_POST['LMI_PAYER_WM']);
 
if ( strtoupper($key) != $_POST['LMI_HASH'])
    exit('ошибка');
 
$amount = $_POST['LMI_PAYMENT_AMOUNT'];
 
$_SESSION['balance'] += $amount;
 
file_put_contents('test.txt', $_POST['LMI_PAYMENT_AMOUNT']. ' ' .$_SESSION['balance']. ' '.$_SESSION['id']);
 
 
mysqli_query($CONNECT, "UPDATE `users` SET `balance` = $_SESSION[balance] WHERE `id` = $_SESSION[id]");
 
//mysqli_query($CONNECT, "UPDATE `users` SET `balance` = $amount"); или так
 
?>
Добавлено через 29 минут
ps. если положить скрипт в папку авторизированных auth , ничего не меняется
0
38 / 38 / 11
Регистрация: 27.09.2014
Сообщений: 491
03.05.2017, 10:20
Цитата Сообщение от Para bellum Посмотреть сообщение
Так как пришедшие данные хешируются на основе секретного ключа
И где здесь хеширование? В $_POST[LMI_PAYMENT_AMOUNT] может зайти что угодно!
Цитата Сообщение от spycrab28 Посмотреть сообщение
mysqli_query($CONNECT, "UPDATE `users` SET `balance` = '$_POST[LMI_PAYMENT_AMOUNT]'");
spycrab28, вот этот код однозначно должен работать:
PHP
1
mysqli_query($CONNECT, "UPDATE `users` SET `balance` = " . floatval($_POST[LMI_PAYMENT_AMOUNT]) . " WHERE 1" );
правда всем пользователям скорректирует..

По сессиям. В скрипте есть session_start()? По коду: а что мешает подменить данные в сессии?
0
03.05.2017, 11:47

Не по теме:

Цитата Сообщение от Vovka Посмотреть сообщение
В $_POST[LMI_PAYMENT_AMOUNT] может зайти что угодно
Может, но проверку не пройдёт и будет exit.

0
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 30
03.05.2017, 15:31  [ТС]
всмысле подменить данные?
session start() в index.php прописана
0
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 30
10.05.2017, 15:13  [ТС]
ну,что, в итоге не знает никто?
0
38 / 38 / 11
Регистрация: 27.09.2014
Сообщений: 491
10.05.2017, 15:36
Цитата Сообщение от spycrab28 Посмотреть сообщение
ну,что, в итоге не знает никто?
Вот создал таблицу:

Добавил число:

Вот что в таблице:


Может я чего-то не знаю?
0
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 30
10.05.2017, 15:50  [ТС]
Вопрос то был не как добавлять в таблицу, а почему он не добавляет имеено $_POST['LMI_PAYMENT_AMOUNT']
0
38 / 38 / 11
Регистрация: 27.09.2014
Сообщений: 491
10.05.2017, 15:57
PHP
1
echo floatval($_POST[LMI_PAYMENT_AMOUNT]);
что пишет?
0
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 30
10.05.2017, 16:16  [ТС]
Короче я хз когда это можно воткнуть, в файл главное записывается значение
0
38 / 38 / 11
Регистрация: 27.09.2014
Сообщений: 491
10.05.2017, 16:22
В смысле куда?
Вставить перед строкой записи в файл или перед SQL-запросом...
0
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 30
10.05.2017, 16:33  [ТС]
так это же скрипт оплаты,он не сработает если мы в форму ничего не внесем, $_POST[LMI_PAYMENT_AMOUNT не сохраняется

Добавлено через 7 минут
Вобщем он теперь почему то заработал.. но изменяет всем пользователям, + именно изменяет, а должен обновлять, тк вдруг у юзера еще был баланс до этого
0
38 / 38 / 11
Регистрация: 27.09.2014
Сообщений: 491
10.05.2017, 19:12
Цитата Сообщение от spycrab28 Посмотреть сообщение
но изменяет всем пользователям, + именно изменяет, а должен обновлять
Может пора выучить MySQL?
0
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 30
11.05.2017, 11:50  [ТС]
может быть, но не сейчас, времени нет. с
PHP
1
WHERE `id` = $_SESSION[id]" не работает
Добавлено через 13 часов 47 минут
Ап темы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.05.2017, 11:50
Помогаю со студенческими работами здесь

Обработка успешного платежа
Всем привет уважаемые мастеры? мне нужно помощь для обработки платежа и зачисление в mysql API есть и оно работает щас, только в API...

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

Составить график платежа
Не пойму как сделать график платежа. Делал никак не получается. Пробовал пользоваться for и foreach Мне только интересует как вывести...

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

Проверка статуса платежа
Приветствую всех! Прошу помочь мне в моей проблеме! Мне нужно приложение, которое бы проверяла статус платежа. Само приложение хранит...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru