Ответы пользователя по тегу PHP
  • Как сделать правильную обработку формы в данном случае?

    Может так?
    $arrayErr = array();
    
    /*далее делаю обработку формы*/
    
    if ($_SERVER['REQUEST_METHOD'] == "POST") { 
    //проверяем запрощен ли скрипт post запросом, если да - обрабатываем так:     
     if (empty($_POST["lastname"])) {
        $arrayErr['lastnameErr'] = "Не заполнено поле фамилия";
      } else {
        $lastname = test_input($_POST["lastname"]);
      }
      if (empty($_POST["firstname"])) {
        $arrayErr['firstnameErr'] = "Не заполнено поле имя";
      } else {
        $firstname = test_input($_POST["firstname"]);
      }
      if (empty($_POST["middle_name"])) {
        $arrayErr['middlenameErr'] = "Не заполнено поле отчество";
      } else {
        $middle_name = test_input($_POST["middle_name"]);
      }
    }
    if (!empty($arrayErr)){
        echo "Спасибо, Ваши данные успешно сохранены!";
     }
    /* доп пояснение: функция test_input отвечает за валидацию *
    Ответ написан
  • Передача _SESSION между субдоменами?

    Можно использовать такую php конструкцию
    if (!session_id()) {
    	ini_set('session.use_cookies', 'On');
    	ini_set('session.use_trans_sid', 'Off');
    	ini_set('session.cookie_domain', '.example.com');
    	session_set_cookie_params(0, '/', '.example.com');
    	session_start();
    }
    Ответ написан
    3 комментария
  • Как можно реализовать таймеры для браузерной игры?

    И как вообще реализовать такое? Очередь и демон? Крон скрип или что то другое?


    Например у нас 0 энергии из 10. Мы знаем, что скорость восстановления 1 энергии = 2 секунды. Получается восстанавливается 0,5 э/с.
    Перед началом восстановления энергии мы записываем таймштамп начала восстановления.
    Сам таймер делаем на клиенте, вида примерно такого:
    var energy = {$energy};
    var coef = {$coef};
    var timer = setInterval(function(){
     if(energy!=totalenergy){
      energy = energy + coef;
     }else{
      clearTimer(timer);
    }
    }, 1000);

    Вместо $coef подставляем 0.5 э/с. Вместо {$energy} подставляем текущее количество энергии, в данном случае 0;

    Что происходит, если пользователь обновил страницу, например через 8 секунд?
    В php смотрим таймштамп начала восстановления энергии и отнимаем его от текущего таймштампа - узнаем сколько прошло секунд с момента начала восстановления - 8 секунд. Умножаем на коэффициент 8*0.5, узнаем что с момента посленего обновления страницы восстановилось 4 энергии. Отправляем эти данные в клиент. Снова записываем таймштамп.

    var energy = 4;
    var coef = 0.5;
    var timer = setInterval(function(){
     if(energy!=totalenergy){
      energy = energy + coef;
     }else{
      clearTimer(timer);
    }
    }, 1000);


    Пользовался подобным способом в проекте, там был таймер отсчета, но суть та-же.
    Ответ написан
    Комментировать
  • Есть огромный csv-файл с данными (over 100k строк). Как все это добро на PHP, без SSH, загнать в MySQL?

    Приходилось парсить файлы с огромным количеством e-mail'ов, при похожих условиях. Я использовал аякс как прокладку. С одной php забирал данные на клиент, и потом партиями отправлял в другую, где вставлял все это в базу.

    Могу отправить Вам на почту этот скрипт, правда он довольно топорный, делался в спешке. Для его использования лучше разбить файл на несколько частей и запустить парсинг в несколько окон, чтоб быстрее было. Если что допилите, как Вам нужно.
    Ответ написан
    1 комментарий