PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (2): « 1 [2]
Найдено сообщений: 30
DbIm
Отправлено: 06 Июня, 2011 - 19:02:46 • Тема: PHP + Linux + Cs 1.6 # Players • Форум: Если скрипт не работает
Ответов: 11 Просмотров: 6090
Собственно вот что не работает, функция этого скрипта вывод информации о игроках на сайт, но скрипт твердит свое "Нет игроков или сервер не отвечает", насчет указанных ip (109.60.184.246) и порта (27015), я уверен что написал их правильно. Что может быть причиной ошибки в работе скрипта?
CODE (
php ):
скопировать код в буфер обмена
$player_list = monitor_samp( "109.60.184.246" , 27015, samp, players) ;
$data = monitor_samp( "109.60.184.246" , 27015, samp, info) ;
function monitor_samp( $ip , $qport , $game , $request )
{
$fp = @ fsockopen ( "udp://$ip " , $qport , $errno , $errstr , 1
) ;
if ( ! $fp ) { return FALSE ; }
$challenge = 'SAMP' ;
$challenge .= chr ( $ip_array [ 0
] ) . chr ( $ip_array [ 1
] ) . chr ( $ip_array [ 2
] ) . chr ( $ip_array [ 3
] ) ; $challenge .= chr ( $port & "\xFF " ) ; $challenge .= chr ( $port >> 8 & "\xFF " ) ;
if ( $request == "info" ) { $challenge .= "i" ; }
if ( $request == "settings" ) { $challenge .= "r" ; }
if ( $request == "players" ) { $challenge .= "d" ; }
$buffer = fread ( $fp , 4096
) ;
if ( ! trim ( $buffer ) ) { return FALSE ; }
if ( ! substr ( $buffer , 0 , 4 ) == "SAMP" ) { return FALSE ; }
$buffer = substr ( $buffer , 11
) ;
if ( $request == "info" )
{
$data [ 'password' ] = ord ( substr ( $buffer , 0
, 1
) ) ; $data [ 'players' ] = ord ( substr ( $buffer , 1
, 2
) ) ; $data [ 'maxplayers' ] = ord ( substr ( $buffer , 3
, 2
) ) ;
$data [ 'hostname' ] = substr ( $buffer , 4
, $data_length ) ; $buffer = substr ( $buffer , 4
+ $data_length ) ;
$data [ 'gametype' ] = substr ( $buffer , 4
, $data_length ) ; $buffer = substr ( $buffer , 4
+ $data_length ) ;
$data [ 'mapname' ] = substr ( $buffer , 4
, $data_length ) ; $data [ 'ip' ] = $ip ;
return $data ;
}
if ( $request == "settings" )
{
if ( $setting_count > 128) { return FALSE ; }
for ( $i = 0 ; $i < $setting_count ; $i ++ )
{
if ( ! $buffer ) { return FALSE ; }
$key = substr ( $buffer , 1
, $data_length ) ; $buffer = substr ( $buffer , 1
+ $data_length ) ;
$value = substr ( $buffer , 1
, $data_length ) ; $buffer = substr ( $buffer , 1
+ $data_length ) ;
$setting [ $key ] = $value ;
}
return $setting ;
}
if ( $request == "players" )
{
if ( $player_count > 128) { return FALSE ; }
for ( $i = 1 ; $i <= $player_count ; $i ++ )
{
if ( ! $buffer ) { return FALSE ; }
$player [ $i ] [ 'pid' ] = ord ( substr ( $buffer , 0
, 1
) ) ;
$player [ $i ] [ 'name' ] = substr ( $buffer , 1
, $data_length ) ; $buffer = substr ( $buffer , 1
+ $data_length ) ;
$player [ $i ] [ 'ping' ] = ord ( substr ( $buffer , 0
, 4
) ) ; }
return $player ;
}
}
if ( ! $player_list ) { echo "<div style='text-align:center'>Нет игроков или сервер не отвечает</div></body></html>" ; return ; }
if ( isset ( $player_list [ 1 ] [ 'score' ] ) ) { $monitor_show_score = 1 ; } if ( isset ( $player_list [ 1 ] [ 'ping' ] ) ) { $monitor_show_ping = 1 ; }
echo "<center>
<u>" . $data [ hostname] . "</u><br>
" . $data [ gametype] . "
</center>" ;
echo "<center><table class='players_table' cellpadding='3'>
<tr>
<td style='text-align:center'><b>Имя Игрока</b><br /><br /></td>
<td style='height:30px'><br /><br /></td></center>" ;
if ( $monitor_show_score ) { echo "<td style='width:60px; text-align:center'><b>Левел </b><br /><br /></td>" ; }
if ( $monitor_show_ping ) { echo "<td style='width:60px; text-align:center'><b>Пинг </b><br /><br /></td>" ; }
echo "</tr>" ;
foreach ( $player_list as $key => $player )
{
{
}
else
{
}
echo "<tr><td class='players_row'> $player[name] </td><td class='players_spacer'><br /></td>" ;
if ( $monitor_show_score ) { echo "<td class='players_row'> $player[score] </td>" ; }
if ( $monitor_show_ping ) { echo "<td class='players_row'> $player[ping] </td>" ; }
echo "</tr>\r \n " ;
}
echo "</table><div style='height:30px'><br /></div>" ;
Скрипт проверен и должен работать........ Но у меня не работает
OS Linux
Помогите люди добрые............
DbIm
Отправлено: 09 Мая, 2011 - 00:38:56 • Тема: Версия php • Форум: Прочее
Ответов: 1 Просмотров: 43
Ну я конечно в php очень плохо шарю, но как мне кажется новые версии php, 5.3 например просто, менее совместимы cо старыми php скриптами. А 5.0 Хорошо работает как и со старыми скриптами так и с новыми. А все остальные изменения мелочные)
Тоесть ваша программа будет работать лучше на той версии php на которую вы её писали........... Но работать она будет на всех версиях php, так как в принципе php они все одинаковы.
DbIm
Отправлено: 09 Мая, 2011 - 00:31:03 • Тема: php + linux cs 1.6 server • Форум: Операционная система и системные вызовы
Ответов: 2 Просмотров: 1958
Проблема вот в чём, использую скрипт
1)При выполнении функции "start" все прекрассно работает, только вот то что пишет запускаемая программа у себя в консоле не совсем правильно отображается на сайте, а тоесть все в 1 строчку и это выглядит как то не очень. Можно как нибудь исправить?
2)И ещё можно ли сделать вывод на сайт то что пишется в косоли т.е. программа уже запущена и я хочу с сайта посмотреть что она пишет у себя в консоли) Это реально?
Зарание спасибо)
DbIm
Отправлено: 07 Мая, 2011 - 15:32:12 • Тема: Linux Ubuntu + PHP команда system() и команда exec() • Форум: Операционная система и системные вызовы
Ответов: 9 Просмотров: 6973
Посмотрел лог apache, удивился O_O
CODE (
htmlphp ):
скопировать код в буфер обмена
hlds_run: процесс не найден
hlds_i686: процесс не найден
sh: ./ server. sh: not found
hlds_run: процесс не найден
hlds_i686: процесс не найден
sh: ./ server. sh: not found
hlds_run: процесс не найден
hlds_i686: процесс не найден
sh: ./ server. sh: not found
./ server. sh: 1 : ./ hlds_run: Permission denied
как я понял вообще не находит ни процессы ни server.sh как такое может быть О_О
А вот ещё...............
CODE (
htmlphp ):
скопировать код в буфер обмена
[ Sat May 07 16
: 25
: 50 2011
] [ error
] [ client 66
. 249
. 71
. 14
] File does not exist
: / opt
/ lampp
/ htdocs
/ psyhostats_wp
./ server. sh: 1: ./ hlds_run: Permission denied
hlds_run: процесс не найден
hlds_i686: процесс не найден
[ Sat May 07 16
: 27
: 50 2011
] [ error
] [ client 66
. 249
. 71
. 14
] File does not exist
: / opt
/ lampp
/ htdocs
/ psyhostats_wp
[ Sat May 07 16
: 29
: 43 2011
] [ error
] [ client 66
. 249
. 71
. 14
] File does not exist
: / opt
/ lampp
/ htdocs
/ psyhostats_wp
[ Sat May 07 16
: 32
: 25 2011
] [ error
] [ client 66
. 249
. 71
. 14
] File does not exist
: / opt
/ lampp
/ htdocs
/ psyhostats_wp
./ server. sh: 1 : ./ hlds_run: Permission denied
Вот реакция на Stop server
CODE (
htmlphp ):
скопировать код в буфер обмена
hlds_run( 18231 ) : Операция не позволяется
hlds_run: процесс не найден
hlds_run( 18231 ) : Операция не позволяется
hlds_run: процесс не найден
(Добавление)
DeepVarvar Нет, через обычного пользователя............
(Добавление)
Нашел причину ошибок.................. Так вот установил права на Hlds_run 755 и на hlds_i686 тоже самое, кажись все дальше проблема в моём скрипте запуска................
(Добавление)
Все все работает)))))))))) Спасибо всем)!!!!! разобрался)
DbIm
Отправлено: 07 Мая, 2011 - 14:04:46 • Тема: Linux Ubuntu + PHP команда system() и команда exec() • Форум: Операционная система и системные вызовы
Ответов: 9 Просмотров: 6973
Не работает скрипт..........
PHP:
скопировать код в буфер обмена
<?PHP
if ( isset ( $_GET [ 'act' ] ) ) { if ( $_GET [ 'act' ] == 'start' ) { exec ( 'cd /home/hlds_wp/ && server.sh' ) ; echo 'Понеслась!' ; } elseif ( $_GET [ 'act' ] == 'stop' ) { exec ( 'killall hlds_run; killall hlds_i686' ) ; echo 'Сервак убит...' ; } }
?>
<a href="?act=start">Стартануть</a><a href="?act=stop">Убить</a>
Почему не работает не понятно.........
Вот собержание php
Спойлер (Отобразить ) CODE (
htmlphp ):
скопировать код в буфер обмена
allow_call_time_pass_reference Off Off
allow_url_fopen On On
allow_url_include Off Off
always_populate_raw_post_data Off Off
arg_separator.input & &
arg_separator.output & &
asp_tags Off Off
auto_append_file no value no value
auto_globals_jit On On
auto_prepend_file no value no value
browscap no value no value
default_charset no value no value
default_mimetype text/html text/html
define_syslog_variables Off Off
disable_classes no value no value
disable_functions no value no value
display_errors Off Off
display_startup_errors Off Off
doc_root no value no value
docref_ext no value no value
docref_root no value no value
enable_dl Off Off
error_append_string no value no value
error_log no value no value
error_prepend_string no value no value
error_reporting 22527 22527
exit_on_timeout Off Off
expose_php On On
extension_dir /usr/lib/php5/20090626+lfs /usr/lib/php5/20090626+lfs
file_uploads On On
highlight.bg #FFFFFF #FFFFFF
highlight.comment #FF8000 #FF8000
highlight.default #0000BB #0000BB
highlight.html #000000 #000000
highlight.keyword #007700 #007700
highlight.string #DD0000 #DD0000
html_errors Off Off
ignore_repeated_errors Off Off
ignore_repeated_source Off Off
ignore_user_abort Off Off
implicit_flush Off Off
include_path .:/usr/share/php:/usr/share/pear .:/usr/share/php:/usr/share/pear
log_errors On On
log_errors_max_len 1024 1024
magic_quotes_gpc Off Off
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
mail.add_x_header On On
mail.force_extra_parameters no value no value
mail.log no value no value
max_execution_time 30 30
max_file_uploads 20 20
max_input_nesting_level 64 64
max_input_time 60 60
memory_limit 128M 128M
open_basedir no value no value
output_buffering 4096 4096
output_handler no value no value
post_max_size 8M 8M
precision 14 14
realpath_cache_size 16K 16K
realpath_cache_ttl 120 120
register_argc_argv Off Off
register_globals Off Off
register_long_arrays Off Off
report_memleaks On On
report_zend_debug On On
request_order GP GP
safe_mode Off Off
safe_mode_exec_dir no value no value
safe_mode_gid Off Off
safe_mode_include_dir no value no value
sendmail_from no value no value
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
serialize_precision 100 100
short_open_tag On On
SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
track_errors Off Off
unserialize_callback_func no value no value
upload_max_filesize 2M 2M
upload_tmp_dir no value no value
user_dir no value no value
user_ini.cache_ttl 300 300
user_ini.filename .user.ini .user.ini
variables_order GPCS GPCS
xmlrpc_error_number 0 0
xmlrpc_errors Off Off
y2k_compliance On On
zend.enable_gc On On
Подскажите в чем проблема........... ещё раз повторюсь система Linux ubuntu 11.04
DbIm
Отправлено: 14 Апреля, 2011 - 21:08:59 • Тема: Функция popen(), сервер Counte Strike 1.6 • Форум: Программирование на PHP
Ответов: 7 Просмотров: 797
Эх, блин так ничего и не понял в этом proc_open посмотрел example ничего не понял, прошу напишите пример для любого bat файла, очень интерессно как же можно понормальному запустить сервер с сайта(. Если не хотите напишите что не напишите, так как в таком случае сразу пойду прошаривать интернет дальше......
(Добавление)
Ошибок такой код не выдает да и толком ничего не делает( страница только грузится долго и в процесах висит cmd.exe как останавливаю страницу cmd.exe пропадаети ничего так и не грузится(
DbIm
Отправлено: 14 Апреля, 2011 - 17:54:26 • Тема: Функция popen(), сервер Counte Strike 1.6 • Форум: Программирование на PHP
Ответов: 7 Просмотров: 797
Здаравствуйте, прошу вас помочь по теме "Запуск сервера командой popen()
OS: Windows Server 2008 R2 x64
Server: Counter Strike 1.6, Appserv.
Проблема: При использовании скрипта popen() на запуск сервера, сервер запускается, но при подключении к нему игроки не могут зайти.
Запуск командой popen()
Лог конслоли клиента при подключении
CODE (
htmlphp ):
скопировать код в буфер обмена
Last 32 messages parsed.
109405 0018 svc_deltapacketentities
109405 0008 svc_time
109405 0013 svc_clientdata
109405 0018 svc_deltapacketentities
109417 0008 svc_time
109417 0013 svc_clientdata
109417 0018 svc_deltapacketentities
109435 0008 svc_time
109435 0013 svc_clientdata
109435 0018 svc_deltapacketentities
109439 0008 svc_stufftext
109439 0022 svc_time
109439 0027 svc_setangle
109439 0034 svc_clientdata
109439 0047 svc_deltapacketentities
158692 0000 svc_stufftext
158714 0000 svc_print
158714 0041 svc_serverinfo
158714 8309 ScreenShake
158714 8316 SendAudio
158714 8419 ScreenShake
158714 8426 SetFOV
158714 8428 RoundTime
158714 8431 svc_updateuserinfo
158714 16644 svc_setangle
158714 16651 RoundTime
158714 16654 ClCorpse
158714 16758 Radar
158714 16766 NVGToggle
158714 16768 svc_updateuserinfo
158714 18400 Geiger
BAD: 18402 : svc_bad
Host_Error: CL_ParseServerMessage:
Содержиме файла start.bat :
Содержимое файла hlds1.bat :
CODE (
htmlphp ):
скопировать код в буфер обмена
start hlds
. exe
- console
- game cstrike
+ hostname
"Test server start" + map
"de_dust2" + sv_lan
0 + ip
***.**.***.*** + maxplayers
32 + port
27020 + rcon_password
"*****" - secure
- noipx
+ exec listip
. cfg
Консоль сервера к сожелению посмотреть не могу, так как при запуске сервера через popen() она попросту не открывается(Кстати если можно, то скажите почему она не открывается)
Вродебы тема совсем не по разделу так ведь?, но при запуске напрямую "start.bat" с самого хоста сервер спокойно включается и на него можно зайти.
Проверена и должна работать, проверена в этой теме http://php.su/forum/topic.php?fo...1&topic=3289
Вопрос: в чём проблема и как можно её решить?(Заранее спасибо)
P.S. В PHP шарю как крот, методом проб и ошибок.
Страниц (2): « 1 [2]
Powered by ExBB FM 1.0 RC1. InvisionExBB