Присоединяйтесь к нашему инвестиционному форуму, на котором уже 394,317 пользователей. Чтобы получить доступ ко многим закрытым разделам и начать общение -  .
Вход через:  
Все, что относится к Web-Программированию (PHP, Perl, JavaScript, MySQL, XML и т.д.)
Важная информация
Стартовала бессрочная акция "Оплата за сообщения".
Уважаемый гость, стартовал новый этап конкурса "Путь к успеху" ($500) подробнее...
Открылся магазин MMGP
Ответить
 
Первый пост Опции темы
Сообщения прочитаны и/или просмотрены Сегодня, 14:36
Старый 20.09.2014, 16:14
#1
Интересующийся
 
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 18.07.2014
Сообщений: 7
Благодарностей: 0
КП: 0.000
Помогите пожалуйста! Проблема с обработчиком!!!

Вот в чем проблема: прикрепил платежную систему payeer.com, окей, совершаю оплату, все отлично потом через обработчик должен идти запрос в БД но ничего не происходит баланс остаётся такой же. Деньги не добавляются. В чем может быть ошибка? На одном из сайтов это работает, а на другом вот такая фигня.


<?
include("config.php");

if (isset($_POST["m_operation_id"]) && isset($_POST["m_sign"]))
{
$m_key = "secretkey)))";
$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'],
$m_key);
$sign_hash = strtoupper(hash('sha256', implode(":", $arHash)));
if ($_POST["m_sign"] == $sign_hash && $_POST['m_status'] == "success")
{
$update='UPDATE tb_users SET money=money+'.$_POST[m_amount].' WHERE id='.$_POST[m_orderid];
mysql_query($update);
echo $_POST['m_orderid'].'|success';
exit;
}
echo $_POST['m_orderid'].'|error';
}
?>
Вот такой обработчик в целом



Ответ обработчика:
Array
(
[REQUEST] => POST /zobrz.php HTTP/1.1
Host: seogem.ru
User-Agent:Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.7
Connection:keep-alive
Content-Length: 353
Content-Type: application/x-www-form-urlencoded


[HEADER] => Array
(
[0] => HTTP/1.1 200 OK
[Date] => Fri, 19 Sep 2014 18:46:16 GMT
[Server] => Apache
[Vary] => Accept-Encoding,User-Agent
[Keep-Alive] => timeout=1, max=100
[Connection] => Keep-Alive
[Transfer-Encoding] => chunked
[Content-Type] => text/html
)

[BODY] => |success
)
Troodi вне форума  
Старый 20.09.2014, 20:35
#2
Интересующийся
 
Пол: Мужской
Инвестирую в: HYIP
Регистрация: 20.09.2014
Сообщений: 10
Поблагодарили: 1 раз
КП: 0.000
Re: Помогите пожалуйста! Проблема с обработчиком!!!

Меня смущат эта строка:
$update='UPDATE tb_users SET money=money+'.$_POST[m_amount].' WHERE id='.$_POST[m_orderid];
Вы в параметре "m_orderid" передаете ID пользователя?

добавлено через 3 минуты
вообще? там с ковычками проблемма! попробуйте так:
$update="UPDATE tb_users SET money=money+".$_POST[m_amount]." WHERE id='".$_POST[m_orderid]."'";

Последний раз редактировалось Progrer; 20.09.2014 в 20:38. Причина: Добавлено сообщение
Progrer вне форума  
Старый 21.09.2014, 23:38
#3
Интересующийся
 
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 21.09.2014
Сообщений: 10
Благодарностей: 4
КП: 0.000
Re: Помогите пожалуйста! Проблема с обработчиком!!!

Ошибка имхо в том, что индексы массивов не закавычены. В update надо писать $_POST['m_amount'], то бишь так же, как и выше где инициализируется массив. Тоже и для параметра массива m_orderid: $_POST['m_orderid']

И еще один моментик. Этот код имхо использует устаревшую конструкцию mysql_query. Она, насколько я помню, объявлена deprecated и со временем исчезнет из php. Не лучше ли сразу подстраховаться и перейти на более современные конструкции и использовать в запросах параметры (что позволит еще и исключить sql-инъекции).
То есть примерно так:
$sql = "UPDATE tb_users SET money=money+:money WHERE id=:id";
$result = $this->db->prepare($sql);
$result->execute(array(':money'=>$_POST['m_amount'], ':id'=>$_POST['m_orderid']));

добавлено через 6 минут
Да. и $this->db, если объявляется в классе (или просто $db, если через переменную) инициализируется через PDO:
$db=new PDO('mysql:host=...;port=...;dbname=...','login',' parol');

Последний раз редактировалось cloudopia; 21.09.2014 в 23:45. Причина: Добавлено сообщение
cloudopia вне форума  
Сказали спасибо
2 раз(а):
Старый 23.09.2014, 23:12
#4
Любитель
 
Имя: Станислав
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 17.06.2010
Сообщений: 123
Благодарностей: 12
КП: 0.018
Re: Помогите пожалуйста! Проблема с обработчиком!!!

cloudopia - Дело говорит.

Ещё вариант MySQLi использовать, если PDO не по душе)
mzcoding вне форума  
Старый 24.09.2014, 00:30
#5
Интересующийся
 
Пол: Мужской
Инвестирую в: Свой бизнес
Регистрация: 25.07.2014
Сообщений: 29
Благодарностей: 5
КП: 0.000
Re: Помогите пожалуйста! Проблема с обработчиком!!!

Это ужас, если честно. Где хоть элементарные защиты от инъекций?
Я бы ваш запрос изменил бы минимум на:
$update='UPDATE `tb_users` SET money = money + '.sprintf("%01.2f", $_POST['m_amount']).' WHERE id = '.intval($_POST['m_orderid']).' LIMIT 1';
А вообще cloudopia расписал очень все красиво. Даже для себя кое что черпанул
GoldScript вне форума  
Ответить
Войдите, чтобы оставить комментарий.
Сообщения прочитаны и/или просмотрены Сегодня, 14:36
Опции темы

Быстрый переход
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста кильбан Программирование 2 05.08.2008 19:05


Случайные темы
Аватар PayeerCOM
Обмен, вывод Liberty Reserve, Perfect Money, LiqPay
От PayeerCOM в разделе «Архив: Обмен электронных валют»
Аватар Денис Ричмонд
IdealMoney - idealmoney.com
От Денис Ричмонд в разделе «Архив: Список проблемных/неактивных/закрытых программ»
Аватара нет
Очистка банковской системы завершена
От CashToday в разделе «Новости в банковской сфере и страховании»
Аватар Mailliam2010
ПАММ-счет Mentalix:561167 (ForexTrend)
От Mailliam2010 в разделе «Архив: Инвестирование в ПАММ-счета»
Аватара нет
dailyegoldinv.com - www.dailyegoldinv.com
От Lancer1989 в разделе «Архив: Список проблемных/неактивных/закрытых программ»
.     
Пользователей
394,317
Тем
441,042
Сообщений
10,687,558