[ATTACH] php скрипт выводит дату а js в html файле берёт из него информацию
Блин AJAX вам в помощь))) Схема: Страница, на странице блок, в блоке JS который берёт информацию из файла php, и этот ajax скрипт обновляется Разберите любой простой ajax чат, схемы одинаковые
Я так понимаю ему надо что-то типа, добавил сервер в каталог, пользователю выдали чтото типа <img src="ТРАМПАМПАМАДРЕС/script.php?id=666"> а вот из id берётся ip и порт сервера из записи в базе а потом выдаётся соответствующая картинка или надпись. По мне так эжт лучший вариант, так как сервер статусник нельзя будет загрузить сильно, (при регистрации каптчу обязательно) Вообще kline бери хостинг любой с пхп и мускулем, сделаю, либо я либо Fedcomp
Fedcomp для создания чистого юзера только в users и никуда больше
особенно про которые *sec в конфиге
И всёже что с авторизацией?
которые *sec в конфиге где эти конфиги?
Начну издалека. Я уже давно хотел сделать что-то, что заменялобы iweb ненасущий. Лично мне не нравится iweb впринципе изза наличие в нём багов и дыр. Так вот пока я ломал голову про то как читать файлы чаров которые в gamedbd гоуранга с полной увереностью сказал что всё просто! но готового решения у него нету и ещё чтото там... короче вот мини гайд от гоуранги да там вроде бы ничего сложного, я свои виртуалки потер, не могу тестовый коннект скинуть. смысл такой: 1) коннектишься 2) авторизуешься 3) обмениваешься ключами для RC4 (в обе стороны и ключи разные это которые *sec в конфиге айвеба и серверов) 4) туда-сюда передаешь данные пока не надоест. на пхп 1 выглядит как-то так, алгоритмы некогда смотреть, но HMAC_MD5 точно есть, ну а rc4 даже ребенок реализует. если сделаешь что-то стоящее, дай поглядеть :D <?php $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); // http://ru.php.net/manual/en/function.socket-create.php if(!$sock) die(socket_strerror(socket_last_error())); // 127.0.0.1:29100 - Deliveryd // 127.0.0.1:29400 - GameDbd // 127.0.0.1:29401 - UniqueNamed // 127.0.0.1:29500 - Factiond if(socket_connect($sock, "127.0.0.1", "29400")) // думаю через него, http://ru.php.net/manual/en/function.socket-connect.php { // TODO: авторизоваться для передачи данных. // используется RC4 и HMAC_MD5 - будет самой главной проблемой реализовать что-то реалистичное. http://ru.php.net/manual/en/function.hash-hmac.php // TODO: процесс запроса чего-нибудь. в цикле, пока читаются данныеб максимум 8192 байт. socket_close($sock); } else { die(socket_strerror(socket_last_error())); } Значит что меня интересует: 1) // TODO: авторизоваться для передачи данных. жалко не сказал как, единственное что интересует так это авторизация
так и что надо будет этому боту, если у него ограничение по времени на просмотры страниц стоит, тут не брутфорс не ддос...
ну так добавь в тему
В данной теме буду собирать все скрипты и дополнять по возможности, так будет удобней Статус GMов в сети от alexdnepro <?php $db_host="localhost"; //хост базы $db_user="botchal"; //юзер базы $db_pass="12345"; //пароль $db_name="pw"; //имя базы (для mssql обычно dbo) $db_type="1"; //тип, если 1 то MySQL если 2 то MSSQL $nik_table="name"; //название поля с логином или ником гма (в таблице users) например truename if($db_type=="1"){ $db=mysql_connect($db_host,$db_user,$db_pass) or die("Ошибка коннекта к базе."); $db=mysql_select_db($db_name,$db) or die("База ".$db_name." не найдена"); $res=mysql_query("SELECT DISTINCT userid, point.zoneid, users.".$nik_table." FROM `auth` LEFT JOIN point ON auth.userid=point.uid LEFT JOIN users ON auth.userid=users.id") or die("Ошибка запроса"); while ($row=mysql_fetch_array($res)){ if ($row['zoneid']==1) { echo '<font color="#00ff00">'.$row[$nik_table].'</font> '; // Тут пишем что нужно, если ГМ онлайн. На заметку в переменной $row['userid'] - айди ГМа } else { echo '<font color="#ff0000">'.$row[$nik_table].'</font> '; // Тут пишем что нужно, если ГМ оффлайн } } } else { $db=mssql_connect($db_host,$db_user,$db_pass) or die("Ошибка коннекта к базе."); $db=mssql_select_db($db_name,$db) or die("База ".$db_name." не найдена"); $res=mssql_query("SELECT DISTINCT userid, point.zoneid, users.".$nik_table." FROM `auth` LEFT JOIN point ON auth.userid=point.uid LEFT JOIN users ON auth.userid=users.id") or die("Ошибка запроса"); while ($row=mssql_fetch_array($res)){ if ($row['zoneid']==1) { echo '<font color="#00ff00">'.$row[$nik_table].'</font> '; // Тут пишем что нужно, если ГМ онлайн. На заметку в переменной $row['userid'] - айди ГМа } else { echo '<font color="#ff0000">'.$row[$nik_table].'</font> '; // Тут пишем что нужно, если ГМ оффлайн } } } ?> Статус GMов в сети от Botchal <?php //script by Botchal $db_host="127.0.0.1";//хост базы $db_user="botchal";//юзер базы $db_pass="12345";//пароль $db_name="pw";//название базы $db_type="1";//тип, если 1 то MySQL если 2 то MSSQL $table_gms="auth";//таблица гмов $table_gms_td_id="userid";//столбик в таблице гмов с айди $table_online="point";//таблица онлайна $table_online_td_id="uid";//столбик в таблице онлайна с айди $table_online_td_echo="lastlogin";//ещё чтото надо выбрать $table_accounts="users";//таблица аккаунтов $table_accounts_td_id="ID";//столбик в таблице аккаунтов с айди $table_accounts_td_name="name";//столбик в таблице аккаунтов с логином $vivod_teh_kto_off="1";//если 1 то выводить $kolichestvo_iz_vseh="1";//если 1 то выводить $start_gm_online="0";//если приписать то к числу ГМов в онлайне будет прибавляться то что вы приписали if($db_type=="1"){ $db=@mysql_connect($db_host,$db_user,$db_pass) or die("нет конекта, правь конфиг ");$db=@mysql_select_db($db_name,$db) or die("нет такой базы, правь конфиг "); $result1=@mysql_query("select $table_gms_td_id from $table_gms") or die("нет такой таблицы\"".$table_gms."\" или столбика \"".$table_gms_td_id."\", правь конфиг и вообще ты идёш нахуй ");$num_rows1=mysql_num_rows($result1); if($num_rows1!="0"){ while($row1=mysql_fetch_array($result1)){ $userid=$row1['userid']; $result2=mysql_query("select $table_online_td_id,$table_online_td_echo from $table_online where $table_online_td_id='$userid'");$num_rows2=mysql_num_rows($result2); if($num_rows2!="0"){ $result3=mysql_query("select $table_accounts_td_id,$table_accounts_td_name from $table_accounts where $table_accounts_td_id='$userid'");$row3=mysql_fetch_array($result3); $name_user=$row3['name']; $start_gm_online=$start_gm_online+1; echo" <font color='green'>GameMaster - ".$name_user." сейчас в игре</font> ";// строчка с именем ГМа если он в сети, для диза правте её } if($num_rows2=="0" and $vivod_teh_kto_off=="1"){ $result3=mysql_query("select $table_accounts_td_id,$table_accounts_td_name from $table_accounts where $table_accounts_td_id='$userid'");$row3=mysql_fetch_array($result3); $name_user=$row3['name']; echo"<font color='red'>GameMaster - ".$name_user." сейчас не в игре</font> ";// строчка с именем ГМа если он НЕ в сети, для диза правте её }} if($kolichestvo_iz_vseh=="1"){ $vse=mysql_num_rows($result1); echo"GM'ов онлайн - ".$start_gm_online." из ".$vse." "; } }else{echo"<font color='red'>GM'ов на сервере нету, вы можете связаться с администрацией для уточнения</font> ";} } if($db_type=="1"){ $db=@mssql_connect($db_host,$db_user,$db_pass) or die("нет конекта, правь конфиг ");$db=@mssql_select_db($db_name,$db) or die("нет такой базы, правь конфиг "); $result1=@mssql_query("select $table_gms_td_id from $table_gms") or die("нет такой таблицы\"".$table_gms."\" или столбика \"".$table_gms_td_id."\", правь конфиг и вообще ты идёш нахуй ");$num_rows1=mssql_num_rows($result1); if($num_rows1!="0"){ while($row1=mssql_fetch_array($result1)){ $userid=$row1['userid']; $result2=mssql_query("select $table_online_td_id,$table_online_td_echo from $table_online where $table_online_td_id='$userid'");$num_rows2=mssql_num_rows($result2); if($num_rows2!="0"){ $result3=mssql_query("select $table_accounts_td_id,$table_accounts_td_name from $table_accounts where $table_accounts_td_id='$userid'");$row3=mssql_fetch_array($result3); $name_user=$row3['name']; $start_gm_online=$start_gm_online+1; echo" <font color='green'>GameMaster - ".$name_user." сейчас в игре</font> ";// строчка с именем ГМа если он в сети, для диза правте её } if($num_rows2=="0" and $vivod_teh_kto_off=="1"){ $result3=mssql_query("select $table_accounts_td_id,$table_accounts_td_name from $table_accounts where $table_accounts_td_id='$userid'");$row3=mssql_fetch_array($result3); $name_user=$row3['name']; echo"<font color='red'>GameMaster - ".$name_user." сейчас не в игре</font> ";// строчка с именем ГМа если он НЕ в сети, для диза правте её }} if($kolichestvo_iz_vseh=="1"){ $vse=mssql_num_rows($result1); echo"GM'ов онлайн - ".$start_gm_online." из ".$vse." "; } }else{echo"<font color='red'>GM'ов на сервере нету, вы можете связаться с администрацией для уточнения</font> ";} } ?> Просто статус сервера <? $ip="ip вашего сервера"; $port="порт сервера"; $fp = @fsockopen($ip1, $port1, $errno, $errstr, 1); if($fp >= 1){ $server1 = ONLINE;} else{ $server1 = OFFLINE; } echo$server1; ?>
Не думаю что это будет работать) т.к. в таблице forbid хранятся баны аккаунтов, а не айди ГМов. Да и алгоритм проверки ГМа далеко не лучший, вот я поражаюсь уже дал готовый SQL запрос, и никто так и не использовал его, изобретают велосипед ну еслиб ты его прокоментировал то может кто-то и начал делать бы php. Но это врятли потому,что те кто просит такой скрипт статуса не пишут php поэтому и просят.Если шарить то хоть доделай
<?php //script by Botchal $db_host="127.0.0.1";//хост базы $db_user="botchal";//юзер базы $db_pass="12345";//пароль $db_name="pw";//название базы $db_type="1";//тип, если 1 то MySQL если 2 то MSSQL $table_gms="auth";//таблица гмов $table_gms_td_id="userid";//столбик в таблице гмов с айди $table_online="point";//таблица онлайна $table_online_td_id="uid";//столбик в таблице онлайна с айди $table_online_td_echo="lastlogin";//ещё чтото надо выбрать $table_accounts="users";//таблица аккаунтов $table_accounts_td_id="ID";//столбик в таблице аккаунтов с айди $table_accounts_td_name="name";//столбик в таблице аккаунтов с логином $vivod_teh_kto_off="1";//если 1 то выводить $kolichestvo_iz_vseh="1";//если 1 то выводить $start_gm_online="0";//если приписать то к числу ГМов в онлайне будет прибавляться то что вы приписали if($db_type=="1"){ $db=@mysql_connect($db_host,$db_user,$db_pass) or die("нет конекта, правь конфиг ");$db=@mysql_select_db($db_name,$db) or die("нет такой базы, правь конфиг "); $result1=@mysql_query("select $table_gms_td_id from $table_gms") or die("нет такой таблицы\"".$table_gms."\" или столбика \"".$table_gms_td_id."\", правь конфиг и вообще ты идёш нахуй ");$num_rows1=mysql_num_rows($result1); if($num_rows1!="0"){ while($row1=mysql_fetch_array($result1)){ $userid=$row1['userid']; $result2=mysql_query("select $table_online_td_id,$table_online_td_echo from $table_online where $table_online_td_id='$userid'");$num_rows2=mysql_num_rows($result2); if($num_rows2!="0"){ $result3=mysql_query("select $table_accounts_td_id,$table_accounts_td_name from $table_accounts where $table_accounts_td_id='$userid'");$row3=mysql_fetch_array($result3); $name_user=$row3['name']; $start_gm_online=$start_gm_online+1; echo" <font color='green'>GameMaster - ".$name_user." сейчас в игре</font><br> ";// строчка с именем ГМа если он в сети, для диза правте её } if($num_rows2=="0" and $vivod_teh_kto_off=="1"){ $result3=mysql_query("select $table_accounts_td_id,$table_accounts_td_name from $table_accounts where $table_accounts_td_id='$userid'");$row3=mysql_fetch_array($result3); $name_user=$row3['name']; echo"<font color='red'>GameMaster - ".$name_user." сейчас не в игре</font><br> ";// строчка с именем ГМа если он НЕ в сети, для диза правте её }} if($kolichestvo_iz_vseh=="1"){ $vse=mysql_num_rows($result1); echo"GM'ов онлайн - ".$start_gm_online." из ".$vse."<br>"; } }else{echo"<font color='red'>GM'ов на сервере нету, вы можете связаться с администрацией для уточнения</font><br> ";} } if($db_type=="1"){ $db=@mssql_connect($db_host,$db_user,$db_pass) or die("нет конекта, правь конфиг ");$db=@mssql_select_db($db_name,$db) or die("нет такой базы, правь конфиг "); $result1=@mssql_query("select $table_gms_td_id from $table_gms") or die("нет такой таблицы\"".$table_gms."\" или столбика \"".$table_gms_td_id."\", правь конфиг и вообще ты идёш нахуй ");$num_rows1=mssql_num_rows($result1); if($num_rows1!="0"){ while($row1=mssql_fetch_array($result1)){ $userid=$row1['userid']; $result2=mssql_query("select $table_online_td_id,$table_online_td_echo from $table_online where $table_online_td_id='$userid'");$num_rows2=mssql_num_rows($result2); if($num_rows2!="0"){ $result3=mssql_query("select $table_accounts_td_id,$table_accounts_td_name from $table_accounts where $table_accounts_td_id='$userid'");$row3=mssql_fetch_array($result3); $name_user=$row3['name']; $start_gm_online=$start_gm_online+1; echo" <font color='green'>GameMaster - ".$name_user." сейчас в игре</font><br> ";// строчка с именем ГМа если он в сети, для диза правте её } if($num_rows2=="0" and $vivod_teh_kto_off=="1"){ $result3=mssql_query("select $table_accounts_td_id,$table_accounts_td_name from $table_accounts where $table_accounts_td_id='$userid'");$row3=mssql_fetch_array($result3); $name_user=$row3['name']; echo"<font color='red'>GameMaster - ".$name_user." сейчас не в игре</font><br> ";// строчка с именем ГМа если он НЕ в сети, для диза правте её }} if($kolichestvo_iz_vseh=="1"){ $vse=mssql_num_rows($result1); echo"GM'ов онлайн - ".$start_gm_online." из ".$vse."<br>"; } }else{echo"<font color='red'>GM'ов на сервере нету, вы можете связаться с администрацией для уточнения</font><br> ";} } ?>
если аутх то сча писану
тогда в какой таблице id ГМов, от этогои плесать будем
самый лучший способ проверить работает ли скрипт это его проверить)
так падай ибо в pmw15 такая проверка будет перед загрузкой каждой страницы
Работать будет? А что не должно?
шесть с половиной минут, это с учётом того что я скачал базы для сервера чтоб посмотреть названия таблиц и перерыл лс в поисках подсказок что где чего и для чего записывается
[img] <?php // script by Botchal $dbhost="127.0.0.1";$dbuser="botchal";$dbpass="12345";$dbname="pw";// настройте подключение к базе $dbtype="1";// если 1 то MySQL, если 2 то MSSQL if($dbtype=="1"){ $db=mysql_connect($dbhost,$dbuser,$dbpass);$db=mysql_select_db($dbname,$db); $result1=mysql_query("select ID,name from users"); while($row1=mysql_fetch_array($result1)){ $id_user=$row1['ID']; $name_user=$row1['name']; $result2=mysql_query("select * from forbid where userid='$id_user'");$gm=mysql_num_rows($result2); if($gm!="0"){ $result3=mysql_query("select * from point where uid='$id_user'");$online=mysql_num_rows($result3); if($online!="0"){ echo"<font color='green'>GameMaster - ".$name_user." сейчас в игре</font><br>";// строчка с именем ГМа если он в сете, для диза правте её }else{ echo"<font color='red'>GameMaster - ".$name_user." сейчас не в игре</font><br>";// строчка с именем ГМа если он НЕ в сете, для диза правте её }}else{}}} if($dbtype=="2"){ $db=mssql_connect($dbhost,$dbuser,$dbpass);$db=mssql_select_db($dbname,$db); $result1=mssql_query("select ID,name from users"); while($row1=mssql_fetch_array($result1)){ $id_user=$row1['ID']; $name_user=$row1['name']; $result2=mssql_query("select * from forbid where userid='$id_user'");$gm=mssql_num_rows($result2); if($gm!="0"){ $result3=mssql_query("select * from point where uid='$id_user'");$online=mssql_num_rows($result3); if($online!="0"){ echo"<font color='green'>GameMaster - ".$name_user." сейчас в игре</font><br>";// строчка с именем ГМа если он в сете, для диза правте её }else{ echo"<font color='red'>GameMaster - ".$name_user." сейчас не в игре</font><br>";// строчка с именем ГМа если он НЕ в сете, для диза правте её }}else{}}} ?>
Имена участников (разделяйте запятой).