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

    @Vitsliputsli
    Исходя из того что вы написали и существующих условий, для ситуации когда gligue_id не равен 438, game_date сегодняшняя или game_date вчерашняя и game_status равен 2:
    $db->query("SELECT * FROM " . PREFIX . "_games
    WHERE 
        NOT gligue_id = '438' 
        AND (
            game_date = '".date("Y-m-d", time())."'
            OR 
            (game_date = '".date("Y-m-d", strtotime('-1 days'))."' 
                AND game_status = 2)
        )")

    Манипуляции со временем из условия изменил, т.к. они какие-то... странные.
    Ответ написан
    3 комментария
  • Как получить доступ к переменной PHP?

    @Vitsliputsli
    Ваша переменная по-факту объявлена внутри функции load_tpl, соответственно извне (даже в другом вызове той же функции) видна не будет.
    Ответ написан
    Комментировать
  • Нужно ли делать unset для переменной, полученной по ссылке?

    @Vitsliputsli
    Все переменные, которые переданы по ссылке, всегда нужно удалять. Верно?

    Нет
    Ответ написан
    Комментировать
  • Самые неожидаемые вопросы на собеседовании?

    @Vitsliputsli
    Проводить собеседование нужно уметь, это не такая простая вещь как кажется. Вас скорее всего собеседовал чисто технарь, в таких случаях, часто собеседование скатывается в экзамен по его любимым игрушкам. Если у вас отличный взгляд, то шансов нет, все альтернативы и предложения будут проигнорированы, и он будет продолжать грузить тем, на что молится. Собеседований на таких "собеседованиях" не бывает, вас не будут слушать и не будут что-либо рассказывать, их время слишком дорого, а вы лишь соискатель, который претендует играть в их песочнице.
    Идеальный вариант, это технарь-менеджер, человек, который понимает техническую часть, но в тоже время умеет общаться с людьми (это не просто, технарь из 1 абзаца тоже думает что умеет). Благодаря этому навыку, он не будет считать себя богом и вполне сможет посмотреть на вопрос со стороны, или даже допустить, что бывают разные решения.
    Другой вариант, это чисто менеджер. Но это больше, когда претендуете на руководящую или частично руководящую должность. Тут разброс очень широкий, самый печальный вариант, когда менеджер считает себя технарем, тогда сверху еще наслаиваются проблемы из 1 абзаца. В основном же, это вполне нормальные интервью, но может быть много вопросов "за жизнь". Бывают и своеобразные, так есть методика "агрессивного собеседования" - собеседующий опаздывает на 10-15 минут (это должно заставить кандидата нервничать), затем без каких-либо разговоров засыпает вопросами, всячески показывая, что это кандидат заинтересован, а не они. Иногда это может и работает, но когда такое применяют в IT, у кандидата формируется ощущение, что он разговаривал с некомпетентным быдлом. Хотя все это лишь то, что видел я.
    Мне кажется, если человек действительно нужен, то его возьмут. Но не все компании проводящие собеседования действительно набирают людей.
    Ответ написан
    2 комментария
  • Php реферальная система,как сократить код?

    @Vitsliputsli
    Оформите повторяющийся код отдельной функцией
    Ответ написан
    Комментировать
  • Как избавится от ошибки на локалке?

    @Vitsliputsli
    Собственно, как и написано: "modules/db.php" не может найти "../modules/log_in.php" и "../modules/send_sms.php". Проверьте наличие этих файлов.
    На хостинге ошибки скорее всего пишутся в лог, а не выводятся на экран.
    Ответ написан
  • Как отформатировать числа на php?

    @Vitsliputsli
    Математические операции с числами, лучше осуществлять математическими операторами, а не sprintf:
    echo floor(0.68752475247525*1000)/10
    Ответ написан
    Комментировать
  • Как продублировать фрагмент разметки HTML5 на все страницы?

    @Vitsliputsli
    Для таких целей лучше использовать шаблонизаторы, например Twig.
    Ответ написан
    Комментировать
  • Почему работает GET, но не работает POST?

    @Vitsliputsli
    попробуйте поискать в выводе var_dump(file_get_contents("php://input"))
    Ответ написан
    Комментировать
  • Почему не записывается текст в файл в связке JS + PHP?

    @Vitsliputsli
    Код php работает, он странный, он будет терять данные, если придет несколько одновременных запросов, но более-менее работает.
    На стороне клиента отправляйте через ajax (наверное jquery используете?), тогда все что нужно будет:
    <button onclick="$.get('/counter.php',{add:1})">button</button>
    Ответ написан
    Комментировать
  • Почему Ajax форма отправляет положительный ответ но не отправляет письмо на почту?

    @Vitsliputsli
    Учтите, что
    error: function(response) {
                alert(response); // ошибка
                }

    это обработчик ошибок при работе ajax, т.е. больше сетевая ошибка, или если DataType не соответствует передаваемым данным, с ошибкой отработки логики в php не связано.
    Т.е. даже неудачная отправка почты в php придет в success. Сделайте вывод полученного ответа от сервера в консоль отладки, или просто посмотрите его во вкладке Network инструментов разработчика в браузере.
    У вас ajax ничего не отправляет, используйте параметр data для отправки данных на сервер.
    Ответ написан
    Комментировать
  • Не отправляет форму в телеграм?

    @Vitsliputsli
    Вероятно эти незаполненные поля обязательны в API Телеграма. Если это допустимо в API передавайте их в ваш код пустыми. Или измените код на этот:
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
    	$args = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
    	if (!empty($args['name'])){
    		$arr = [
    			"Имя пославшего: "=>$args['name'],
    			"Тема: "=>!empty($args['theme']) ? $args['theme'] : '',
    			"Тема - 2: "=>!empty($args['theme2']) ? $args['theme2'] : '',
    			"Почта: "=>!empty($args['mail']) ? $args['mail'] : '',
    			"Скайп или вайбер: "=>!empty($args['sk_viber']) ? $args['sk_viber'] : '',
    			"Название проекта: "=>!empty($args['name_project']) ? $args['name_project'] : '',
    			"Ссылка на сайт: "=>!empty($args['link__site']) ? $args['link__site'] : '',
    			"Характеристика товара: "=>!empty($args['kharakter_tovar']) ? $args['kharakter_tovar'] : '',
    			"Кол-во комментариев: "=>!empty($args['kolvo_komponent']) ? $args['kolvo_komponent'] : '',
    			"География доноров: "=>!empty($args['geography_donor']) ? $args['geography_donor'] : '',
    			"Аудитория: "=>!empty($args['auditoriya']) ? $args['auditoriya'] : '',
    			"Сообщение: "=>!empty($args['msg']) ? $args['msg'] : '',
    		];
    		$token = "XXXXXXXXXXXXXXXXXXXXXXX";
    		$chat_id = "xxxxxxx";
    		$txt="";
    		foreach($arr as $key => $value) {
    		  $txt .= "<b>".$key."</b> ".$value."%0A";
    		};
    		$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");
    		if ($sendToTelegram) {
    			echo '<p class="success">Спасибо за отправку вашего сообщения!</p>';
    			return true;
    		} else {
    			echo '<p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
    		}
    	} else {
    		echo '<p class="fail">Ошибка. Вы заполнили не все обязательные поля!</p>';
    	}
    } else {
    	header ("Location: /");
    }
    Ответ написан
    1 комментарий
  • Как сделать мультиязычность сайта?

    @Vitsliputsli
    А готовые решения не нашли?
    В любом случае, этот кусок будет лучше работать в таком виде:
    if (empty($_SESSION['lang'])) {
    	preg_match('/^\w{2}/',$_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
    	switch (strtolower($matches[0])){
    		case "ru": 
    			$_SESSION['lang']="ru";
    			break;
    		case "en": 
    		case "uk": 
    		case "us": 
    		default: 
    			$_SESSION['lang']="en";
    			break;
    	}
    }
    require_once './lang/' . $_SESSION['lang'] . '.php';
    Ответ написан
    1 комментарий
  • Как исправить 2 ошибки "Undefined offset" и "Only variables" в коде?

    @Vitsliputsli
    "PHP Notice: Only variables should be passed by reference in /var/www/mysite/data/www/mysite.io/core/Classes/Lang.php on line 90"
    $lang = array_shift(explode(',', $raw))
    исправьте на
    $array=explode(',', $raw);
    $lang = array_shift($array);
    Дело в том, что array_shift не только возвращает элемент массива, но и изменяет оригинальный массив, поэтому данные в эту функцию нужно передавать по ссылке, а если вы не объявляли переменную, то будет передано значение, а не ссылка.

    PHP Notice: Undefined offset: 1 in /var/www/mysite/data/www/mysite.io/core/Classes/Router.php on line 29, referer: mysite.io/en/
    list($lang, $requestUrl) = explode('/', $root, 2);
    Проверяете массив $root, вероятно после explode он имеет только один элемент, а необходио 2.
    Пройдите это место дебаггером, и все сразу станет понятно.
    Ответ написан
    8 комментариев
  • PHP - PHPQuery код - который вернет поле с HTML страницы JS товара?

    @Vitsliputsli
    PHP тут совсем не при чем, вы же сами пишите, что нужно чтобы отработал javascript на странице, используйте решения исполняющие javascript: Selenium, PhantomJS или что-то вроде этого.
    Либо, возьмите запрос, который делает ajax, отправляйте его из PHP и обрабатывайте ответ.
    Ответ написан
    Комментировать
  • Как обновить часть информации из базы данных на странице не перезагружая ее?

    @Vitsliputsli
    Как минимум, вы ничего не делаете с данными пришедшими через Ajax.
    success: function(data) {
    console.log(data);
    }})
    Это выведет полученные данные в отладочные консоль браузера и только. Кстати, воспользуйтесь ей и увидите ответ сервера
    Ответ написан
    Комментировать