Jump to content

Recommended Posts

Posted

Я всегда использовал стандартную схему хранения данных - файловую, но вот недавно попробовал и все нормально заработало с использованием модуля хранения в mysql. Отсюда вопрос: как правильно получать данные из конфигурации пользователя? Возможно есть какие то штатные возможности или надо использовать самописные схемы? Если можно покажите примеры.

Заранее спасибо.

Posted

#!/usr/bin/php
<?
mysql_connect('localhost','root','bebebe');
mysql_select_db('stargazer');
$res=mysql_query("SELECT * FROM users");
@mkdir("/var/stargazer/users", 0755);
  while ($row = mysql_fetch_array($res)) {
 @ mkdir("/var/stargazer/users/".$row['login'], 0755);
  $fileName  = ("/var/stargazer/users/".$row['login']."/conf");
  $fileNamestat  = ("/var/stargazer/users/".$row['login']."/stat");
$data="Address=".$row['Address']."\n";
$data.="AlwaysOnline=".$row['AlwaysOnline']."\n";
$data.="CreationTime=0\n";
$data.="Credit=".$row['Credit']."\n";
$data.="CreditExpire=".$row['CreditExpire']."\n";
$data.="Down=".$row['Down']."\n";
$data.="Email=".$row['Email']."\n";
$data.="Group=".$row['StgGroup']."\n";
//$data.="Iface=".$row['Iface']."\n";
$data.="IP=".$row['IP']."\n";
$data.="NAS=127.0.0.1\n";
$data.="Note=".$row['Note']."\n";
$data.="Passive=".$row['Passive']."\n";
$data.="Password=".$row['Password']."\n";
$data.="Phone=".$row['Phone']."\n";
$data.="RealName=".$row['RealName']."\n";
$data.="Tariff=".$row['Tariff']."\n";
$data.="TariffChange=".$row['TariffChange']."\n";
$data.="Userdata0=".$row['Userdata0']."\n";
$data.="Userdata1=".$row['Userdata1']."\n";
$data.="Userdata2=".$row['Userdata2']."\n";
$data.="Userdata3=".$row['Userdata3']."\n";
$data.="Userdata4=".$row['Userdata4']."\n";
$data.="Userdata5=".$row['Userdata5']."\n";
$data.="Userdata6=".$row['Userdata6']."\n";
$data.="Userdata7=".$row['Userdata7']."\n";
$data.="Userdata8=".$row['Userdata8']."\n";
$data.="Userdata9=".$row['Userdata9']."\n";
  file_put_contents( $fileName,$data);
//stat
$stat="Cash=".$row['Cash']."\n";
$stat.="D0=".$row['D0']."\n";
$stat.="D1=".$row['D1']."\n";
$stat.="D2=".$row['D2']."\n";
$stat.="D3=".$row['D3']."\n";
$stat.="D4=".$row['D4']."\n";
$stat.="D5=".$row['D5']."\n";
$stat.="D6=".$row['D6']."\n";
$stat.="D7=".$row['D7']."\n";
$stat.="D8=".$row['D8']."\n";
$stat.="D9=".$row['D9']."\n";
$stat.="U0=".$row['U0']."\n";
$stat.="U1=".$row['U1']."\n";
$stat.="U2=".$row['U2']."\n";
$stat.="U3=".$row['U3']."\n";
$stat.="U4=".$row['U4']."\n";
$stat.="U5=".$row['U5']."\n";
$stat.="U6=".$row['U6']."\n";
$stat.="U7=".$row['U7']."\n";
$stat.="U8=".$row['U8']."\n";
$stat.="U9=".$row['U9']."\n";
$stat.="FreeMb=".$row['FreeMb']."\n";
$stat.="LastActivityTime=".$row['LastActivityTime']."\n";
$stat.="LastCashAdd=".$row['LastCashAdd']."\n";
$stat.="LastCashAddTime=".$row['LastCashAddTime']."\n";
$stat.="PassiveTime=".$row['PassiveTime']."\n";
  file_put_contents( $fileNamestat,$stat);
  }
mysql_free_result($res);

 

1. Сохрани этот скрипт допустим в /mysql_files

2. B OnConnect допиши строчку для запуска этого скрипта, только на скрипт не забудь выставить права 755. Я так делаю. В итоге при коннекте юзера дампица база в файло, и из файла обычными скриптами без всяких заморочек берутся данные с файлов. Мало того, если база слетит, у тя есть бекап :) У меня за 0,2 секунды 75 юзеров дампит, довольно таки быстро. На сервер нагрузки не замечал... Хотя в онлине сидит бывает и до 30-40. Я пытался написать скрипт на пхп, так то он сам по себе работает, а с СТГ нет, я имею ввиду скрипт OnConnect.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...