Есть скрипт: Код (PHP): //НАЧАЛО МОДУЛЯ $setp['PurseQiwi'] = "34535353"; // Номер киви $setp['PassQiwi'] = "53453534"; // Пароль от киви $kurs = "60"; //КУРС ПО КОТОРОМУ ЗАНОСИМ В БАЗУ if(isset($_POST['qiwia'])) { $code = intval($_POST['qiwia']); if(!empty($code)) { $purse = 'Transaction: '.$code; $ss = mysql_query("SELECT * FROM enter WHERE `purse` = '$purse'") or die(mysql_error()); if(mysql_num_rows($ss) == 0) { include($_SERVER['DOCUMENT_ROOT'].'/lib/qiwi.class.php'); $qiwi = new QIWI($setp['PurseQiwi'], $setp['PassQiwi'], $_SERVER['DOCUMENT_ROOT'].'/lib/coockie.txt'); $lastDate = date( 'd.m.Y', strtotime( '-1 day' )); $nextDate = date( 'd.m.Y', strtotime( '+1 day' )); $trans = $qiwi->GetHistory($lastDate, $nextDate); //var_dump($trans); foreach($trans as $value) { if($value['iID'] == $code && $value["sType"] == "INCOME" && $value["sStatus"] == "SUCCESS" && $value["sCurrency"] == 'RUB') { $summ = $value['dAmount']; } } if($summ >= 1 and !empty($summ)){ mysql_query("UPDATE users SET pm_balance = pm_balance + '$summ'/'$kurs' WHERE id = '$user_id'") or die(mysql_error()); mysql_query("INSERT INTO enter (login, sum, date, purse, paysys, status) VALUES ('$login', '$summ'/'$kurs', '".time()."', '$purse', 'Qiwi', '2')") or die(mysql_error()); echo 'На Ваш счет зачислена сумма в размере '.$summ.' RUB'; }else echo '<font color="red">Не верная сумма или платежа не существует!</font>'; }else echo '<font color="red">Данный код транзакции уже был использован</font>'; }else echo '<font color="red">Введите код транзакции!</font>'; } //КОНЕЦ МОДУЛЯ есть обработчик (qiwi.class.php) Все работает без ошибок и нареканий! Но... работает это все только на хостинге(внешнем), а на лакалке не работает, почему?! Пробовал на денвере , OS and XAMPP , скрипт при обработке выдает только одно: Код (PHP): }else echo '<font color="red">Не верная сумма или платежа не существует!</font>'; а на хосте пашет как надо. пользуйся [code=php], так намного лучше читается — модераторъ
потому. ошибка какая? Добавлено спустя 1 минуту 20 секунд: вот прям так и выдает — текст с "else echo" ? Добавлено спустя 4 минуты 6 секунд: вероятно срабатывает соответствующее условие. проверяй значения переменных, которые в условии участвуют, т.е. ОТЛАЖИВАЙСЯ http://phpfaq.ru/debug
ошибок в исполнении скрипта нет. немного неправильно написал, когда я пытаюсь проверить работоспособность скрипта, т.е пытаюсь ввести транзакцию на проверку, появляется ошибка из else echo. Хотя, проверяю тот же скрипт на хостинге, все нормально работает.
да, сделал. Добавлено спустя 25 минут 9 секунд: вот что выдает дамп. Код (PHP): array(2) { ["qiwia"]=> string(10) "6909223602" ["submit"]=> string(18) " Пополнить баланс " }
ты сам код писал? видимо нет, скопировал так же с форумов. если появляется тот текст, о котором ты писал, значит вот это условие очевидно не выполняется: Код (PHP): if($summ >= 1 and !empty($summ)){ ставь отладочный вывод непосредственно над этой строкой: смотри что там в $summ. потом смотри выше как он вычисляется. проверяй почему именно так — проверяй еще какие-нибудь переменные, см. в базу и т.д. причина может быть в том, что на другом хосте у тебя другие записи в базе или, блин, у тебя вообще не работает доступ к базе или, ёмана, невозможно сетевое обращение наружу и т.д. мы за тебя не отладим, даже если захотим! ты должен сам себе помочь. работай головой и руками.
этот модуль я писал сам, по аналогии другого. если смотреть в сам модуль, то мы видем что $summ = $value['dAmount'] , то есть сумме которая пришла на QIWI. Что касается записи в базе, то они везде одинаковые. А вот насчет тут вот интересно, можно подробней? Добавлено спустя 2 минуты 1 секунду: Я вот грешу на настройки php.ini, так как они отличаются от локального php.ini Но если включить мозг, то они и должны отличаться, так как там настройки на мир.