PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (7): [1] 2 3 4 5 6 7 »
Найдено сообщений: 103
zloy dyx
Отправлено: 20 Марта, 2015 - 00:40:45 • Тема: Игровой портал • Форум: Работа с сетью
Ответов: 0 Просмотров: 1393
Привет. Есть портал. На нём зарегался и логин с паролям и голдом сразу для всех моих проектов. Логин с паролем на ура начал делать перевод между серваками. Взял я xxtea немножко допилил передача данных идёт, только не стабильно( Например если заполнил форму перевода раз 15 подрят до раз 5 вылезут ошибки и скрипт не сработает.
Curl Говорит
PHP:
скопировать код в буфер обмена
ПЕРЕВОД ВАЛЮТЫ
ПРОФИЛЬ
HTTP
/ 1
. 1 200 OK Server
: nginx
/ 1
. 2
. 1
Date : Thu
, 19 Mar 2015 22
: 34
: 18 GMT Content
- Type
: text
/ html Content
- Length
: 295 Connection
: keep
- alive X
- Powered
- By
: PHP
/ 5
. 4
. 36
- 0
+ deb7u1 Vary
: Accept
- Encoding
Warning
: gzinflate ( ) : data error in
/ home
/ igrodel
/ igrodel
. tk
/ public_html
/ game
/ stalker
/ ag
/ ob
. php on line
87
Notice: Undefined offset: 1 in / home/ igrodel/ igrodel. tk/ public_html/ game/ stalker/ ag/ ob. php on line 92
Думал что сервак не справляется добавил кучу пауз. (для снижения нагрузки) но всеравно.... Код обработчик (шлёт запрос игре)
PHP:
скопировать код в буфер обмена
<?PHP
$perevod = '1' ;
$date = date ( "y.m.d H:i:s" ) ; $game = $_POST [ 'name' ] ;
$goldkk = $_POST [ 'gold' ] ;
if ( ! preg_match ( "/[0-9]/i" , $goldkk ) ) { //проверка ввода сумы $perevod = '0' ;
header ( "Location: index.php?do=8" ) ; }
if ( $sh [ 'gold' ] >= $goldkk ) { }
else {
$perevod = '0' ;
header ( "Location: index.php?do=9" ) ; }
switch ( $game ) {
case "stalker" :
$mest = 'stalker' ;
break ;
default :
$mest = 'eror' ;
break ;
}
//проверка select
if ( $mest == 'eror' ) {
$perevod = '0' ;
header ( "Location: index.php?do=6" ) ; }
//основные данные
$text = "$sh[id] , $goldkk " ;
//предваритильная кодировка инфы
//шыфр xtea инфа
$sekret = mt_rand ( 1
, 99999999999999
) ; $text = xxtea_encrypt( $text , $sekret ) ;
//фальшыфка для get :D пускай тру хакеры помучаются пару недель :D
$iid = md5 ( $sol . $iid . sha1 ( $sekret . $iid ) . md5 ( $sol . $iid ) ) ; $dan = md5 ( $sol . $iid . $dan . sha1 ( $sekret . $iid . $dan ) . md5 ( $sekret . $iid . $dan ) ) ; //шифровка ключа который делает розшыфровку :D знаю что не хуя нне кто не понял, но так надёжние :D :D
$delitil = mt_rand ( 189
, 9999999999999999
) ; $mnogitel = mt_rand ( 512
, 9999999999999999
) ; $dodan = mt_rand ( 394
, 9999999999999999
) ; $procent = mt_rand ( 10
, 9999999999999999
) ; $procent = $sekret / $procent ;
$sekret = $sekret * $mn / $pi ;
$pq = $sekret / $delitil ;
$pw = $pq / $procent ;
$output = $pw * $mnogitel ;
$otv = $output + $dodan * $mn1 ;
//если выбрали сталкер
if ( $mest == 'stalker' ) {
$proverka = 'http://igrodel.tk//game/stalker/ag/otk.php' ;
if ( curl_onl( "$proverka " ) )
{
$ch = curl_init ( 'http://igrodel.tk//game/stalker/ag/ob.php?id=' . $iid . 'danie=' . $dan . '' ) ;
curl_setopt ( $ch , CURLOPT_REFERER
, "http://igrodel.tk/ddgdghdgh/dfhdfgh/gggg.php" ) ; curl_setopt ( $ch , CURLOPT_POSTFIELDS
, "id=$text &otv=$otv &output=$output &mn1=$mn1 &dodan=$dodan &procent=$procent &delitil=$delitil &mnogitel=$mnogitel &mn=$mn &pi=$pi " ) ; echo '' . $result . '<br><br><br>' ;
}
else
{
$perevod = '0' ;
header ( "Location: index.php?do=7" ) ; }
}
?>
Код который получает запрос
PHP:
скопировать код в буфер обмена
$id = $_POST [ 'id' ] ;
$otv = $_POST [ 'otv' ] ;
$output = $_POST [ 'output' ] ;
$mn1 = $_POST [ 'mn1' ] ;
$dodan = $_POST [ 'dodan' ] ;
$procent = $_POST [ 'procent' ] ;
$delitil = $_POST [ 'delitil' ] ;
$mnogitel = $_POST [ 'mnogitel' ] ;
$mn = $_POST [ 'mn' ] ;
$pi = $_POST [ 'pi' ] ;
//розшыфровка ключа для xxtea
$otv = $output / $mn1 - $dodan ;
$sekret = $output * $procent * $delitil / $mnogitel / $mn * $pi ;
$id = xxtea_decrypt( $id , $sekret ) ;
echo '<br><br>' ;
echo '' . $result [ "0" ] . '' ;
echo '<br><br>' ;
echo '' . $result [ "1" ] . '' ;
(щас включён вывод асива, так как ловлю баги)
Ну и функции xxtea
PHP:
скопировать код в буфер обмена
function long2str( $v , $w )
{
$n = ( $len - 1) << 2 ;
if ( $w ) {
$m = $v [ $len - 1] ;
if ( ( $m < $n - 3) || ( $m > $n ) )
return false ;
$n = $m ;
}
for ( $i = 0 ; $i < $len ; $i ++ ) {
$s [ $i ] = pack ( "V" , $v [ $i ] ) ; }
if ( $w ) {
} else {
}
}
function str2long( $s , $w )
{
if ( $w ) {
}
return $v ;
}
function int32( $n )
{
while ( $n >= 2147483648)
$n -= 4294967296 ;
while ( $n <= - 2147483649)
$n += 4294967296 ;
return ( int) $n ;
}
function xxtea_encrypt( $str , $key )
{
if ( $str == "" ) {
return "" ;
}
$v = str2long( $str , true ) ;
$k = str2long( $key , false ) ;
for ( $i = count ( $k ) ; $i < 4 ; $i ++ ) { $k [ $i ] = 0 ;
}
}
$z = $v [ $n ] ;
$y = $v [ 0] ;
$delta = 0x9E3779B9 ;
$q = floor ( 6
+ 52
/ ( $n + 1
) ) ; $sum = 0 ;
while ( 0 < $q -- ) {
$sum = int32( $sum + $delta ) ;
$e = $sum >> 2 & 3 ;
for ( $p = 0 ; $p < $n ; $p ++ ) {
$y = $v [ $p + 1] ;
$mx = int32( ( ( $z >> 5 & 0x07ffffff) ^ $y << 2) + ( ( $y >> 3 & 0x1fffffff) ^ $z << 4) ) ^ int32( ( $sum ^ $y ) + ( $k [ $p & 3 ^ $e ] ^ $z ) ) ;
$z = $v [ $p ] = int32( $v [ $p ] + $mx ) ;
}
$y = $v [ 0] ;
$mx = int32( ( ( $z >> 5 & 0x07ffffff) ^ $y << 2) + ( ( $y >> 3 & 0x1fffffff) ^ $z << 4) ) ^ int32( ( $sum ^ $y ) + ( $k [ $p & 3 ^ $e ] ^ $z ) ) ;
$z = $v [ $n ] = int32( $v [ $n ] + $mx ) ;
}
return long2str( $v , false ) ;
}
function xxtea_decrypt( $str , $key )
{
if ( $str == "" ) {
return "" ;
}
$v = str2long( $str , false ) ;
$k = str2long( $key , false ) ;
for ( $i = count ( $k ) ; $i < 4 ; $i ++ ) { $k [ $i ] = 0 ;
}
}
$z = $v [ $n ] ;
$y = $v [ 0] ;
$delta = 0x9E3779B9 ;
$q = floor ( 6
+ 52
/ ( $n + 1
) ) ; $sum = int32( $q * $delta ) ;
while ( $sum != 0) {
$e = $sum >> 2 & 3 ;
for ( $p = $n ; $p > 0 ; $p -- ) {
$z = $v [ $p - 1] ;
$mx = int32( ( ( $z >> 5 & 0x07ffffff) ^ $y << 2) + ( ( $y >> 3 & 0x1fffffff) ^ $z << 4) ) ^ int32( ( $sum ^ $y ) + ( $k [ $p & 3 ^ $e ] ^ $z ) ) ;
$y = $v [ $p ] = int32( $v [ $p ] - $mx ) ;
}
$z = $v [ $n ] ;
$mx = int32( ( ( $z >> 5 & 0x07ffffff) ^ $y << 2) + ( ( $y >> 3 & 0x1fffffff) ^ $z << 4) ) ^ int32( ( $sum ^ $y ) + ( $k [ $p & 3 ^ $e ] ^ $z ) ) ;
$y = $v [ 0] = int32( $v [ 0] - $mx ) ;
$sum = int32( $sum - $delta ) ;
}
return long2str( $v , true ) ;
}
function curl_onl( $domain )
{
{
return false ;
}
if ( $response ) return true ;
return false ;
}
Из - за чего такое?
Ищё интересует вопрос как можно ждать пока ответит мне удалённый сервак? (Он мне должен прислать в ответе пост данные а я ему второй запрос и только потом зачисление голда) Зарание спс
zloy dyx
Отправлено: 20 Марта, 2015 - 00:28:31 • Тема: интеграция с платежной системой • Форум: Работа с сетью
Ответов: 13 Просмотров: 27538
Сложный агрегатор вы не потяните, накидаю вам пример для worldkassa.ru
С вас +)
И так config.php
PHP:
скопировать код в буфер обмена
<?
$id_shop = '1052' ; //ID площадки на WorldKassa
$hash = 'dfhdhrturuy768fhjfgjioipuop89ioo89io98' ; //Секретный ключ (HASH)
?>
Потом index.php
PHP:
скопировать код в буфер обмена
<?
/* Постоём передаём сколько купить*/
include_once 'config.php' ;
$type = '0' ;
{
$summa = $_POST [ 'gold' ] ;
}
{
include_once '../inc/db.php' ; //Коннект к БД
include_once '../inc/sesion.php' ; //тут проверка авторизации
$data = file_get_contents ( 'http://worldkassa.ru/user/oplata.php?id_shop=' . $id_shop . '&summa=' . $summa . '&hash=' . $hash ) ; {
$id = $_SESSION [ 'user' ] [ 'id' ] ;
$query = "insert into worldkassa (`id_user`, `id_bill`, `time`, `summa`) values ('$id ','$data ','$time ','$summa ')" ;
$result_pist = mysqli_query ( $dbc , $query ) or
die ( 'ошибка записи юзера в бд' ) ; ?>
<head>
<meta http-equiv="refresh" content="0;URL=http://worldkassa.ru/user/oplata.php?uniq=<?= $data ?> " />
</head>
<?PHP
}
else
{
echo $data ;
}
}
?>
Обработчик. (в настройке агрегатора укажете его)
PHP:
скопировать код в буфер обмена
<?
include_once 'config.php' ;
include_once '../inc/db.php' ;
{
$sql = mysql_query ( "SELECT * FROM `worldkassa` WHERE `id_bill` = '" . $_POST [ 'id_bill' ] . "'" ) ; {
if ( $_POST [ 'summa' ] < $data [ 'summa' ] )
{
//Можно поставить уведомление на подмену суммы пополнения
}
elseif ( $_POST [ 'hash' ] != md5 ( $hash . $id_shop . $_POST [ 'id_bill' ] . $_POST [ 'summa' ] ) ) {
//Можно поставить уведомление, что не совпал хеш
}
else
{
$gg = $_POST [ 'summa' ] ;
//зачисляем голд
mysql_query ( "UPDATE `gold` SET `col` = `col`+" . $gg . " WHERE `id` = '" . $data [ 'id_user' ] . "'" ) ; //статстика
mysql_query ( "UPDATE `worldkassa` SET `time_oplata` = '" . time ( ) . "' WHERE `id` = '" . $data [ 'id' ] . "'" ) ; }
}
}
?>
Ну и страницы ошибок свои. (настроите у агрегатора) работает только для worldkassa
А дам для бд статистики CODE (
SQL ):
скопировать код в буфер обмена
CREATE TABLE IF NOT EXISTS `worldkassa` (
`id` int( 11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID платежа (Внутренний ID)' ,
`id_user` int( 11) UNSIGNED NOT NULL COMMENT 'ID пользователя' ,
`id_bill` int( 11) UNSIGNED NOT NULL COMMENT 'ID платежа в Worldkassa' ,
`time` int( 11) UNSIGNED NOT NULL COMMENT 'Время инициализации платежа' ,
`time_oplata` int( 11) UNSIGNED DEFAULT '0' COMMENT 'Время оплаты' ,
`summa` decimal( 11, 2) NOT NULL DEFAULT '0.00' COMMENT 'Сумма' ,
`type` enum( '0' , '1' , '2' ) DEFAULT '0' ,
PRIMARY KEY ( `id` )
) ENGINE= MyISAM DEFAULT CHARSET= utf8 COMMENT= 'Статистика платежей через WorldKassa' AUTO_INCREMENT = 1 ;
zloy dyx
Отправлено: 08 Марта, 2015 - 23:56:49 • Тема: чтение из файла • Форум: Вопросы новичков
Ответов: 3 Просмотров: 246
3d_killer пишет: использовать нельзя?
(Добавление)
спасибо! только мне уже на тостере помогли
zloy dyx
Отправлено: 07 Марта, 2015 - 21:08:13 • Тема: Парсинг более 30 тысяч страниц. • Форум: Работа с сетью
Ответов: 2 Просмотров: 1215
хост скрипт который сильно грузит систему отрубать может. неуже взять вдс и настроить самому так тяжело? (гугли вдс разминка, 60 рублей месяц 225 озу)
zloy dyx
Отправлено: 07 Марта, 2015 - 21:02:51 • Тема: Бонусная система • Форум: Вопросы новичков
Ответов: 7 Просмотров: 339
LIME пишет: А что в этих запросах противоречит использованию PDO?
Как ты говоришь?
zloy dyx пишет: гавно говоришь.
:facepalm:
(Добавление)
PHP:
скопировать код в буфер обмена
$data = array ( 'Cathy' , '9 Dark and Twisty Road' , 'Cardiff' ) ;
$STH = $DBH -> prepare ( "INSERT INTO folks (name, addr, city) values (?, ?, ?)" ) ;
$STH -> execute ( $data ) ;
пример нормального пдо
zloy dyx
Отправлено: 07 Марта, 2015 - 19:22:54 • Тема: чтение из файла • Форум: Вопросы новичков
Ответов: 3 Просмотров: 246
Привет! Вот читаю я с файла список url и на них шлю запросы curl (так должно работать по идеи) Но в итоге не фига не работает. Начал дебажить код в 20 строк
Ошибка была в том что при чтении где перенос строки автоматом добавляет пробел... Я хз как от этого избавится. Зарание спс за помощь.
bot.txt
Получается что пробела нету только на последней строке. А там где перенос ставит пробел. запрос шлётся только на последний юрл с файла [color=red][/color]
zloy dyx
Отправлено: 07 Марта, 2015 - 19:08:13 • Тема: Apache выдаёт 404 на существующую страницу • Форум: Apache и другие веб-серверы
Ответов: 10 Просмотров: 2760
MamayAdesu пишет: esterio пишет: exlant
А если почитать внимательно, то ТС пишет что ошибку видает именно Апач а не эго CMS. Поетому не стоит так реагировать резко.
exlant пишет: Drupal, Joomla, WordPress - это cms! И они не выдают ошибку 404, разве что могут отредактировать страничку, которая выводиться на ошибку 404
А если я скажу что да? видать свою страничку 404-ой может как скрипт так и сервер. (гугли mod_rewrite например или ErrorDocument апача).
Если не хватает знаний, то не стоит наежать на других пользователей.
MamayAdesu
Сделайте простой скриптик например
phpinfo.php
перейдите по адресу
http://localhost/phpnfo.php
если увидете результат значит з сервером все в порядке.
тогда следующим шагом посмотрите правила реврайта если они у вас прописани (и установлен ли модуль для реврайта)
ну и не забивайте смотреть логи
Как раз таки mod_rewrite установлен и RewriteRule прописан, но правило ПЕРЕСТАЛО (то есть раньше оно работало, хотя я его не трогал) работать ИМЕННО НА URL /functions
если на хостинге то могли обновить апач. А при обновлениях часто htaccess не подходит
zloy dyx
Отправлено: 07 Марта, 2015 - 18:57:25 • Тема: чтение из файла • Форум: Работа с файловой системой и файлами
Ответов: 0 Просмотров: 765
Привет! Вот читаю я с файла список url и на них шлю запросы curl (так должно работать по идеи) Но в итоге не фига не работает. Начал дебажить код в 20 строк
Ошибка была в том что при чтении где перенос строки автоматом добавляет пробел... Я хз как от этого избавится. Зарание спс за помощь.
bot.txt
Получается что пробела нету только на последней строке. А там где перенос ставит пробел. запрос шлётся только на последний юрл с файла
zloy dyx
Отправлено: 04 Марта, 2015 - 14:21:20 • Тема: curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1); • Форум: Работа с сетью
Ответов: 2 Просмотров: 1408
Ts.Saltan пишет: Чтоб сервер не возвращал тело ответа, есть запрос HEAD
(Добавление)
А вообще, дёргать ботов лучше с помощью cron
можно пример кода? А я curl только учу.
(Добавление)
Ts.Saltan пишет: Чтоб сервер не возвращал тело ответа, есть запрос HEAD
(Добавление)
А вообще, дёргать ботов лучше с помощью cron
так?
zloy dyx
Отправлено: 04 Марта, 2015 - 12:32:47 • Тема: curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1); • Форум: Работа с сетью
Ответов: 2 Просмотров: 1408
Привет. Столкнулся с такой дилемой.... Надо просто послать get запрос и не парсить саму страницу. Я подумал покурил доки и нашел
но проблема в том что если задать меньше 1000 милисикунд скрипт попросту не работает....
скрипт отправки PHP:
скопировать код в буфер обмена
include ( '../inc/funs.php' ) ;
include ( '../inc/function/curlReqquest.php' ) ;
function curlReqquest( $bot_url , $at_url ) {
if ( $ch != null ) {
curl_setopt ( $ch , CURLOPT_URL
, 'http://' . $bot_url . '?url=' . $at_url . '&kol=50' ) ; }
}
curlReqquest.php
вообще как с помощью пхп послать get и не парсит ответ? А то это простой ключик для запуска скриптов
zloy dyx
Отправлено: 04 Марта, 2015 - 12:10:43 • Тема: curl CURLOPT_TIMEOUT_MS • Форум: HTTP и PHP
Ответов: 0 Просмотров: 1729
Привет. Столкнулся с такой дилемой.... Надо просто послать get запрос и не парсить саму страницу. Я подумал покурил доки и нашел
но проблема в том что если задать меньше 1000 милисикунд скрипт попросту не работает....
скрипт отправки PHP:
скопировать код в буфер обмена
include ( '../inc/funs.php' ) ;
include ( '../inc/function/curlReqquest.php' ) ;
function curlReqquest( $bot_url , $at_url ) {
if ( $ch != null ) {
curl_setopt ( $ch , CURLOPT_URL
, 'http://' . $bot_url . '?url=' . $at_url . '&kol=50' ) ; }
}
curlReqquest.php
вообще как с помощью пхп послать get и не парсит ответ? А то это простой ключик для запуска скриптов
удалите не туда написал
Страниц (7): [1] 2 3 4 5 6 7 »
Powered by ExBB FM 1.0 RC1. InvisionExBB