Nikita_Wrhavskiy

Опытные ребятки помогите пожалуйста

2 posts in this topic

Вопрос такой ребята как на php сделать так что что бы когда на сайте меняется статус аккаунта к примеру "онлайн" был зелёным цветом а "оффлайн" красным то есть работает через mysql базу статус аккаунта

F7EXEc4.png

Edited by keyl

Share this post


Link to post
Share on other sites

@Nikita_Wrhavskiy применить соответствующий стиль?.. 

Share this post


Link to post
Share on other sites

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

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • INewBRO
      By INewBRO
      Хотел записать в базу данные об игроке (пароль, ник и т.д) Но происходит ошибка и оно не записывается. Я написал чтобы ошибки сохранялись в файл. Комментарием отметил где ошибка
      Лог:
       
    • viktor666
      By viktor666
      Приветствую
      Ищу веб разраба что бы   заказать смену дизайна на сайте(дизайн есть)(сайт есть)
      Сайт на пхп
      Нужно просто поставить новый дизайн и изменить все под него(все для этого есть)
      Если вы предоставляете услуги веб разработчика то отпишите пожалуйста.
    • viktor666
      By viktor666
      <?php include 'engine/template/ext/head.php'; ?> <link href="/assets/css/toastr.css" rel="stylesheet"/> <script src="/assets/js/toastr.js"></script>      <section class="bg-primary" id="statistic-section">         <div class="container">             <div class="row">                     <div class="statistic">                         <div class="inner">                             <h1>Настройки аккаунта</h1>                            <div class='col-md-6' style='margin-top:300px;'>          Смена пароля<br><br> <form method='post'> <input name='last' placeholder="Старый пароль..."  class='form-control' type='text' required/><br> <input name='new' placeholder="Новый пароль..."  class='form-control' type='text' required/> <br><button type='sumbit' name="changepass" class='btn btn-red'><font color='white'>Изменить пароль</font></button></form> </div>   <div class='col-md-6' style='margin-top:300px;'> <?php if($a['EmailStatus'] == '0') { echo " Привязка Email<br><br> <form method='post'> <input name='email' type='email' placeholder='Укажите Email для привязки...'  class='form-control' required/><br><img src='/acaptcha.php' /> <div class='col-md-9'><input type='login' name='acaptcha' class='form-control' placeholder='Код Captcha' required></div><br> <br><button type='sumbit' name='addemail' class='btn btn-red'><font color='white'>Привязать Email</font></button></form>";    } sscanf($a['EmailStatus'], "%d|%s", $type,$hash); if($type == '1') { echo " Подтверждени Email<br><br> <form method='post'> <input name='email' type='email' value='Почта » ".$a['pEmail']."' disabled  class='form-control'/><br> <input name='codeemail' type='text' placeholder='Код из письма...' class='form-control' required><br> <button type='sumbit' name='addcode' class='btn btn-red'><font color='white'>Привязать Email</font></button></form> <br> Отправить повторное письмо<br><br> <form method='post'> <input name='email' type='email' placeholder='Укажите Email' class='form-control'/><br> <img src='/acaptcha.php' /> <div class='col-md-9'><input type='login' name='acaptcha' class='form-control' placeholder='Код Captcha' required></div> <button type='sumbit' name='addemail' class='btn btn-red'><font color='white'>Привязать Email</font></button></form> ";    } if($a['EmailStatus'] == '2') { echo " Смена Email<br><br> <form method='post'> <input name='email' type='email' value='Текущая » ".$a['pEmail']."' disabled  class='form-control'/><br> <input name='newemail' type='email' placeholder='Новая почта..' class='form-control' required><br><br><img src='/acaptcha.php' /> <div class='col-md-9'><input type='login' name='acaptcha' class='form-control' placeholder='Код Captcha' required></div><br> <button type='sumbit' name='newaddemail' class='btn btn-red'><font color='white'>Сменить Email</font></button></form> <br> ";    } ?> </div>                         </div>                     </div>             </div>         </div>     </section> <?php if (isset($msg)): ?> <?=$msg;?> <?php endif;?> <?php if($_SESSION['getmsg']) { echo $_SESSION['getmsg']; unset($_SESSION['getmsg']); }?> <?php include 'engine/template/ext/footer.php';?> Работает только часть с сменой пароля
      Как исправить?
    • Antoxa39
      By Antoxa39
      Дратути,я научился делать регистрацию, и хочу поделится со всеми как это сделать им самим.
      1.Нам потребуется: Denwer или Open Server. ( Урок про подключение я делал ранее, так что обьяснять сейчас что и как делать для подключения не буду, но урок можно посмотреть тут)
      2.MySQL R39-6.
      3. Прямые руки.
      4. Переходим к процессу.
      //P.S БД - База Данных
      Делаем подключение к БД.
      main(){} #include <a_samp> #include <a_mysql> #include <Pawn.CMD> #include <sscanf2> #include <streamer> #include <time> //--------------   SQL     ---------------------- new dbHandle; #define MYSQL_HOST "127.0.0.1" #define MYSQL_USER "mysql" #define MYSQL_BD "urok" #define MYSQL_PASSWORD "mysql" //------------------------ public OnGameModeInit() {     dbHandle = mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_BD,MYSQL_PASSWORD);     CheckConnectSQL();     return 1; } public OnGameModeExit() {     return 1; } stock CheckConnectSQL() {     if(mysql_errno()) printf("Подключение к БД %s прервалось. Код ошибки: %d",MYSQL_BD,mysql_errno())     else printf("Подключение к БД %s успешно!",MYSQL_BD)     return 1; }
      Подключение сделано.
      Далее мы должны сделать такое: Когда игрок заходит на сервер, нужно проверить есть ли игрок с таким Никнеймом в БД.
      Делаем массив,который будет хранить в себе пароль,имя игрока. ( сделаем еще и уровень ).
      // перед --------------   SQL     ---------------------- создаем enum //Enum - это вещь, позволяющая создавать большее количество адресов одной переменной enum pInfo{     pID,     pNick[24],     pPassword[32],     pLevel } new Player[MAX_PLAYERS][pInfo];//Мы обьявили переменную,которая будет хранить в себе наш Enum. Идем создавать БД.
      1.
      2.
      3.
      4.
      5. Идем обратно к скриптингу
      И вот тут, мы сделаем проверку есть ли в БД аккаунт с таким никнеймом.
      public OnPlayerConnect(playerid) {     GetPlayerName(playerid,Player[playerid][pNick],MAX_PLAYER_NAME);//Мы записали ник игрока в массив pNick.     new query[100];//создаем переменную с запросом.     format(query,sizeof(query),"SELECT * FROM `account` WHERE `pNick` = '%s'",Player[playerid][pNick]);//Форматируем запрос, SELECT * FROM, то есть      //загружаем всю информацию о игроке с ником, записаным в pNick.     mysql_function_query(dbHandle,query,true,"CheckPlayerBD","i",playerid);//Посылаем запрос в БД, указываем ИД подключение - dbHandle. true - потому что мы хотим получить информацию. И вызываем следующим паблик "CheckPlayerBD"     return 1; } //в конец мода forward CheckPlayerBD(playerid); public  CheckPlayerBD(playerid) {     new rows,fields;     cache_get_data(rows,fields);//Проверили есть ли строка с таким именем.     if(!rows)//если нет такого игрока то показываем регистрацию     {         ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Регистрация", "Приветствуем Вас! Вы еще не зарегистрированы,введите свой пароль ниже.", "Далее", "");     }     else     {         ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Авторизация", "Рады видеть Вас снова на Urok. Авторизуйтесь.", "Далее", "");         cache_get_field_content(0,"pPassword",Player[playerid][pPassword],dbHandle);//Загружаем пароль игрока из БД.     }     return 1; } Я мог сделать ИД диалогов через енум, но для примера можно и так.
      Далее идем в OnDialogResponse
      public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {     switch(dialogid)     {         //case 1 это регистрация         case 1:         {             if(!response) return Kick(playerid); // если игрок отказывается от регистрации кикаем его.             if(strlen(inputtext) < 4 || strlen(inputtext) > 32 || strlen(inputtext) == 0) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Регистрация", "Длина пароля от 4 до 32 символов.\n Вы также не можете продолжить не указав пароль", "Далее", "");             //это была проверка на длину пароля             for(new i; i < strlen(inputtext); i++)             {                 switch(inputtext[i])                 {                     case 'A'..'Z','a'..'z','0'..'9':continue;                     default: return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Регистрация", "Пароль может быть только: a-z, A-Z,0-9", "Далее", "");                 }             }             //это проверка на символы,если игрок будет писать пароль на русском, или какие нибудь другие символы             //например \*? то ему будет возвращатся этот же диалог,а если все отлично то регистрация продолжится.             new query[120 + MAX_PLAYER_NAME];//также создали запрос             format(query,sizeof(query),"INSERT INTO `account` (`pNick`,`pPassword`,`pLevel`) VALUES ('%s','%s','1')"),Player[playerid][pNick],inputtext);             /*Мы отформатировали строку,сделав в ней запрос: Добавить строку в таблице account, со столбцами pNick = '%s', %s значит строка             в данном случае эта строка, это массив который хранит в себе никнейм игрока,inputtext это введеный текст игроком, pLevel это уровень игрока,изначально в бд он будет 1.*/             mysql_query(dbHandle,query);             //теперь делаем запрос на загрузку акканута.             new query1[100];             format(query1,sizeof(query1),"SELECT * FROM `account` WHERE `pNick` = '%s'",Player[playerid][pNick]);//отфарматироваали новый запрос             mysql_function_query(dbHandle,query1,true,,"LoadAcc","i",playerid);         }     }     case 2:     {         if(!response) return Kick(playerid); // если игрок отказывается от авторизации также кикаем его.         if(strlen(inputtext) < 4 || strlen(inputtext) > 32 || strlen(inputtext) == 0) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Авторизация", "Неверный пароль", "Далее", "");//Делаем проверку на длину пароля, т.к при регистрации у нас пароль был от 4 до 32, тут тоже самое должно быть         for(new i; i < strlen(inputtext); i++)         {             switch(inputtext[i])             {                 case 'A'..'Z','a'..'z','0'..'9': continue;//если он также вводит правильные символы продолжаем выполнение кода для игрока.                 default: return  ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Авторизация", "Не верный пароль!", "Далее", "");// при вводе спец.символов ему будет возвращать диалог авторизации             }         }         new query[120];         format(query,sizeof(query),"SELECT * FROM `account` WHERE `pNick` = '%s' AND `pPassword` = '%s'",Player[playerid][pNick],inputtext)//Загрузить информацию о игроке,и проверить совпадает введеный пароль игроком,с тем который в БД.         mysql_function_query(dbHandle,query,true,"CheckPass","i",playerid);     }     return 1; } //создаем паблик LoadAcc forward LoadAcc(playerid); public LoadAcc(playerid) {     Player[playerid][pID] = cache_get_field_content_int(0,"pID",dbHandle);// 0 потому что в БД может быть только одна строка с таким именем или ИД     Player[playerid][pLevel] = cache_get_field_content_int(0,"pLevel",dbHandle);// приравнение, то есть записываем Левел и ИД игрока в наши массивы.     //Пароль и никнейм загружать не надо } forward CheckPass(playerid); public CheckPass(playerid) {     new rows,fields;     cache_get_data(rows,fields);//сверяем пароль     if(rows)     {         //если веденный пароль совпадает с паролем в БД то авторизуем игрока         SpawnPlayer(playerid);         SendClientMessage(playerid,-1,"Вы успешно авторизовались!");     }     else     {         //если нет то считаем попытки ввода пароля         SetPVarInt(playerid,"wrong_password",GetPVarInt(playerid,"wrong_password") + 1)         ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Авторизация","Не верный пароль!","Далее","");         new str[64];         format(str,sizeof(str),"У вас осталось: %d попыток",GetPVarInt(playerid,"wrong_password"));         SendClientMessage(playerid,-1,str);//форматируем строку, где говорим игроку сколько у него осталось попыток         if(GetPVarInt(playerid,"wrong_password") >= 5) return Kick(playerid);//если игрок использовал больше 5 попыток, то кикаем его     } } и в OnGameModeExit()
      public OnGameModeExit() {     mysql_close(dbHandle);//отключаемся от БД     return 1; }