• На каком этапе обучения вы начинали искать свою первую работу?

    @Vitsliputsli
    Будет ли полезно на начальном этапе своего обучения стать рабом и получить заветный опыт или же толку от такого рабства будет мало, ведь в голове пока ещё пустота

    Чем раньше, тем лучше. Обучаться за счет работадателя - однозначно выгоднее. Обучаться на реальных задачах гораздо эффективнее. Желательно, чтобы была большая команда, так научитесь работать в команде и сможете увидеть в работе людей с разным опытом и отношением к работе, и меньше шансов, что погрязнете в неправильных подходах.
    Ответ написан
    Комментировать
  • Не отправляет форму в телеграм?

    @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 комментарий
  • Как сделать сравнение диапазонов дат в mysql?

    @Vitsliputsli
    оптимальнее, с точки зрения производительности, будет так:
    SELECT 1
    FROM `table`
    WHERE :start <= `final` AND :final >= `start`
    LIMIT 1
    Ответ написан
    2 комментария
  • Как сделать мультиязычность сайта?

    @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 комментариев
  • Можно ли изменить разрешение экрана?

    @Vitsliputsli
    В Linux с помощью xrandr можно, причем на абсолютно любое.
    Ответ написан
    Комментировать
  • PHP - PHPQuery код - который вернет поле с HTML страницы JS товара?

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

    @Vitsliputsli
    А что хотите получить? Если нужно дописывать в файл введенные пользователем строки, то не нужно никакой form, допиливайте ajax. Если нужно после ввода пользователя уходить на http://films, то не нужен никакой ajax, поправьте action и сделайте submit в form.
    Ответ написан
    Комментировать
  • Как обновить часть информации из базы данных на странице не перезагружая ее?

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

    @Vitsliputsli
    В модели хранится бизнес-логика (она же domain), т.е. по-сути все самое интересное в модели. Вам нужно более внимательно изучить mvc
    Ответ написан
    Комментировать
  • Как создать таблицу, для хранения истории изменений?

    @Vitsliputsli
    Наверное, самое оптимальное сделать поле с временем изменений. Если оно заполнено, то это история, если не заполнено, то актуальное состояние. Чтобы не усложнять запросы, создать триггеры на выборку, update/delete, выполняющие операции с этим полем, а для пользователя его как бы и нет, кроме специфических вопросов по истории. И, конечно, настроить партиционирование таблицы чтобы актуальное и история хранились физически отдельно.
    Ответ написан
    Комментировать
  • Возможна ли утечка внешнего IP-адреса компьютера, находящегося в локальной сети?

    @Vitsliputsli
    Вероятно вы имели ввиду что-то другое, а не ip. IP вы посредством вашего провайдера сообщаете всем с кем связываетесь, иначе не получите ответа. Это открытый идентификатор, и первое с чего начнут искать. Затем СОРМ сольет ваш mac адрес и локальный адрес, а провайдер ваше физическое расположение. Почему-то мне кажется, что когда очень понадобится, то по СОРМу получат первоисточник информации и в сети ТОР, конечно, шифрование должно вставлять палки в колеса, но кто даст гарантию. А ведь есть ещё цифровые отпечатки устройств. Так что смиритесь, если кого-то ещё не забрали, так это потому что он просто не интересен.
    Ответ написан
  • Как делать релиз при hotfix?

    @Vitsliputsli
    Очень бы помогло более подробное описание цели такой хотелки. Если большое кол-во тегов мешает, так не устанавливаете их вовсе, а последнюю версию подтягивайте по имени ветки, а не тегу. Или же удаляйте ставшие ненужными теги.
    Ответ написан
    Комментировать
  • Можно ли как то подгрузить модули по url?

    @Vitsliputsli
    А в чем именно проблема? В webpack есть import/export, есть еще и require.
    Синтаксис разве что другой, что-то вроде (лучше уточните в документации):
    https://site.com/module.js: export function module module() { ... }
    И загрузка:
    import {module} from "https://site.com/module.js"
    Ответ написан
    Комментировать
  • Как починить отсутствие интернета (локальная сеть присутствует)?

    @Vitsliputsli
    Судя по ip r отсутствует шлюз для интернета. Вероятно, потому что неверно указано слово gateway в /etc/network/interfaces.d/enp2s0.
    Но непонятно, почему это работало... Может вручную шлюз прописывали и он работал до первой перезагрузки?
    Ответ написан
    1 комментарий