• Почему не работает require в open server?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Почему не работает require в open server?
    Скорее всего по тому, что какой-то косяк с путями... Попробуйте так: include __DIR__.'mysql/mysql.php';
    Ответ написан
    Комментировать
  • Для чего meta name="viewport" ( я тестирирую сайт после того как прописала медиавиражения то вроде все ок)?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Для чего meta name="viewport"?
    Для того, что бы мобильные не масштабировали сайт в "полноформатный" режим. Не могу сказать, "как оно там будет работать конкретно у Вас", но от этого мета-тега хуже не станет точно, если вёрстка адаптивная.

    P.S. Если у Вас нет парка устройств, но есть необходимость протестировать вёрстку досконально - рекомендую воспользоваться для этих целей каким-нибудь специализированным серверисом, например таким, подобные сервисы обычно обходятся гораздо дешевле чем покупка парка устройств, если конечно Вы не представитель какой-то крупной компании.
    Ответ написан
    4 комментария
  • Как открывать веб страницу только на определенных девайсах?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Вариантов несколько:
    1. Как Вам уже предложили - подключить всех сотрудников внутреннюю сеть предприятия, и тогда (не)показывать эту форму в зависимости от IP. Либо просто купить у провайдера каждому "белый IP" и ориентироваться по ним.
    2. Вынести эту форму на страницу, которую знают только сотрудники. Для надёжности - можно сделать таких страниц несколько (на каждого сотрудника по одной) и выдать каждому свой адрес.
    3. Поставить сотрудникам в браузер какой-нибудь плагин, который будет менять/добавлять HTTP-заголовки и основываясь на этом - показывать им форму, на вскидку, что-то подобное я нашел тут. Возможно вместо плагина - существуют какие-то другие решения подобного рода (наверняка есть, но с названиями пока подсказать не могу).
    Ответ написан
    Комментировать
  • Как обрезать белый фон средствами php?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Кажется есть... Первая и вторая.
    Ответ написан
    Комментировать
  • Как лучше сделать фон (по макету): присвоить div'у background-image или создать div с параметрами слоя?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Что более оптимально?
    Если есть возможность задать фон без картинки (в пределах разумного конечно, т.к. если бросаться в крайности - то картинки можно и CSS'ом рисовать) - то оптимальнее картинки не использовать. Меньше файлов -> меньше запросов + меньше объём страницы = быстрее загрузка.
    Ответ написан
    2 комментария
  • Как убрать символ ?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Вариантов несколько:

    0. Вам нужно убедиться, что открывается именно этот файл, напямую, а не какой-то другой файл подключает этот, или же этот файл подключает какой-то другой (в результате чего и возникает данный символ)

    1. Сменить редактор на какой-либо другой, например: VisualStudio Code, Atom, Блокнот (WIndows) или GEdit (Linux), vi(m)/nano, Atom и другие. Посмотреть, как обстоят дела в этом редакторе, если так же - попробовать сменить кодировку файла на однобайтовую (например, cp1251) и проверить результатат.

    2. Создать новый файл (пустой), и проверить что с ним всё хорошо и этого символа там нет, после чего перенести код из старого файла в этот.

    3. Убедиться, что у вас нет каких либо прокси, которые могут (зачем-то) вставлять этот символ (это конечно уже где-то близко к паранойе, но всё же, например NodeJS иногда выборочно портит кодировку когда выступает в качестве реверс-прокси)

    4. Если ничего из выше перечисленного не помогло - вызвать священника-экзорциста, что бы изгнал нечисть из компьютера или (альтернативный вариант) прислать этот файл суда.
    Ответ написан
    Комментировать
  • Как в бд хранить ссылку на картинку?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Text?
    Я думаю, CHAR'а или VARCHAR'а с соотв. длинной будет более чем достаточно для этих целей.
    Ответ написан
    Комментировать
  • Как правильно использовать Git при работе над SPA приложением одному разработчику?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Здравствуйте.
    Здравствуйте.

    Разрабатываю SPA приложение на JavaScript и php (в будущем замена на Node.js) на сервере для реализации API.
    Что именно Вы разрабатываете и на чём - значения не имеет, если исходный код представляет из себя файлы.

    Перед реализацией какой-то новой фичи или рефакторинга приходится делать просто ручной бекап файлов и на клиенте и на сервере, а порой еще и структуру базы.
    Вместо этого - просто берёте и делаете новую ветку.

    Подскажите пожалуйста, как было бы наиболее эффективно внедрить GIT, что бы упростить все вышеописанное?
    Для наиболее эффективного внедрения Git - обычно используют его установщик (инсталлятор, пакет и т.п.) под соответствующую операционную систему.

    Использую Atom, но без проблем могу перейти на любой другой свободный редактор/IDE.
    Git никак не связан с редакторами и/или IDE, можете использовать что угодно или вообще сторонний Git-клиент, типа TortoiseGit (и прочих подобных).

    То есть хотелось бы одним коммитом сохранить и JS и PHP код.
    Вы можете сохранять одним коммитом любое количество файлов (если сильно углубиться в подробности, то дельты изменения файлов, но это Вам не очень интересно, я думаю).

    Разработку веду сразу на рабочем vps используя ftp плагин для Atom, который позволяет редактировать файлы на сервере, как локальные.
    Можете поставить Git в т.ч. и на удалённый сервер и обновлять там файлы проекта с помощью "push"а, но, с учётом конктекста Вашего вопроса, я бы всё-таки порекомендовал для начала разобраться с Git'ом получше, а сервер для разработки всё-таки ставить локально и не лохматить бабушку.

    P.S. А для начала, рекомендую Вам посмотреть какие-нибудь видео-уроки от доморощенных экспертов, на тему "как использовать Git", коими, я уверен, Ютуб завален до краёв.
    Ответ написан
    5 комментариев
  • Как добавить тег в первое значение foreach?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Как добавить в div еще один class, но только для первой картинки?

    Простой вариант:
    1. Над foreach'ем создать переменную булева типа или просто счётчик
    2. Присвоить ей по умолчанию значение, например, false или 0.
    3. В foreach'e проверять значение переменной, если оно == flase или == 0 => делать что-то (добавлять класс например)
    4. В конце foreach'а изменить значение переменной на true, увеличить её значение на 1 или что-то в таком духе.

    А ещё можно попробовать использовать цикл for, с "ествественным" счётчиком.

    P.S. Есть масса других вариантов, например, создавать переменную в конце foreach'а в начале проверять на её существование и так далее, но смысл везде будет примерно одинаковый и решение в большей степени зависит от Вашей фантазии и установленных правил написания кода.
    Ответ написан
    Комментировать
  • Какой стек выбрать для простейшего CRM?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Поддерживаю автора предыдущего ответа, г-на Sanes. От себя добавлю, что если Вы хотите избежать избыточности - можете использовать, как Вы же сами и указали: lumen, silex и т.д., хотя лично я в этом особого смысла (в контексте вопроса) - пока не вижу.

    Что посоветуете по фронтенду? Vue? Есть ли там какие-то наборы компонент по аналогии с ExtJs.
    Я конечно могу ошибаться (на счёт ExtJS), но по моему, ExtJS - это набор копонентов, а Vue - это JS-фреймворк, что само по себе несколько разные вещи... Компоненты для VueJS есть, их много, в т.ч. готовых, они бывают самые разные и скорее всего, какие-то таблицы, календари, кнопки и прочую белиберду для Vue уже либо адаптировали, либо написали, либо [что-то ещё], но от этого аналогом ExtJS он не стал.

    Особенно удобные гриды интересуют.
    Удобные гриды есть сами по себе, их масса и к Vue или ExtJS'у они обычно отношения не имеют (хотя, вполне могут быть представлены как компонент VueJS или адаптированы специально под него), например: DataTables.

    Такое vue может или всё с 0 ручками там пилить надо будет?
    Как я уже говорил ранее, в режиме "из коробки" в Vue нет вообще никаких "компонентов" (я имею в виду компонентов аки jQuery UI и ему подобных), он для другого предназначен. А может или нет... - скорее может, чем нет. Но можно и "ручками".

    Если всё с 0, то где можно посмотреть бесплатные макеты-вёрстки аля админка? Я не дизайнер просто.
    Как бы это странно не прозвучало, но в поисковике. Там этого добра - тонна, "по рублю за пучёк", например: раз, два, три и т.д.

    P.S.
    Но тут наверное мне нужен микрофреймворк. С lumen/slim/symfony4 - что было бы проще или лучше?
    По моему, Symfony-4 это всё же не микрофреймворк... Это всё тот же старый добрый симфони, после "серьёзной липосакции" по умолчанию. Микрофреймворк от авторов Symfony -- это Silex.
    Ответ написан
    1 комментарий
  • Защита и хранение паролей. Как правильно?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Насколько надежен этот хеш? Реально ли получить исходный пароль зная хеш? Возможно это в принципе?
    Надёжность хэша зависит от алгоритма хэширования.

    Я думаю это довольно надежная защита. Но как это реализовать?
    Я тоже думаю, что это довольно надёжная защита от брутфорса паролей, что в целом никак не говорит о защите во всём остальном. Как реализовать - самые простые варианты:
    а) Записывает с какого IP была неудачная попытка входа с датой и временем события в БД (или любое другое хранилище, которые Вы используете), при попытке ввода пароля - проверяете, сколько неудачных попыток ввода с этого IP была за прошедшие N времени, если больше чем X - попытка ввода пароля блокируется
    б) Аналогично пункту А, но проверяете не IP адрес, а логин, по которому пытаются залогинится
    в) Сочетание пунктов А и Б
    г) Масса других вариантов, коих просто прорва, включая применение гугл-капчи, систем распознавания ботов а так же различные сочетания методов защиты и всяческих извращений, в т.ч. выше описанные.

    Реально ли получить исходный пароль зная хеш? Возможно это в принципе?
    Сам по себе хэш - это не необратимый тип шифрования, если вопрос в этом. Иными словами, хэш-алгоритмы какой либо "расшифровки" не подразумевают априори. Но, реально существуют готовые таблицы хэшей для md5 (я думаю, что и для других алгоритмов хэширования они существуют тоже и то, что Вы уже догадались, что таблица представляет из себя исходные данные и результат их хэширования), с помощью которой в некоторой степени "расшифровать" md5 можно (ну если конечно не брать во внимание тот факт, что совершенно разные комбинации могут в итоге давать одинаковый хэш, т.к. кол-во комбинаций бесконечно, а кол-во вариаций хэша всё-таки имеет какое-то конечное значение).

    Я подумал начать изучать криптографию, чтобы улучшить защиту и хранить не хеш пароля, а хеш шифра пароля.
    Осталось дело за малым:
    1. Изучить (Вам) криптографию на уровне достаточно для реализации поставленных задач, в т.ч. для написания собственных криптографических алгоритмов (методов шифрования), о которых говорилось тут:
    Безусловно, нужно еще этот метод шифровки придумать, но это уже другой вопрос.

    2. Решить задачу безопасного хранения приватного (закрытого) ключа, который обязательно понадобиться в данном случае

    P.S. Судя по контексту Вашего вопроса, Вы пытаетесь создать какую-то "мега-защиту" в одном месте, упуская из внимания то, что защита формы для ввода пароля и этого механизма в целом (у нас же про это идёт речь?) - это ~1% от общей безопасности среднестатистической системы, и примеров тому - масса. Например, есть просто масса примеров того, когда у крупных почтовых провайдеров внезапно "утекала" база данных пользователей, в т.ч. с их паролями (хэшированными, разумеется) и связано это было не с брутфорсом (и ему подобными деяниями) явно, есть всякие там Heartbleed, от которой "официально" пострадали очень крупные компании, за сетевой безопасностью в которых следили люди разбирающиеся в данном вопросе куда лучше, чем Вы, я и все остальные участники данного вопроса - вместе взятые... и т.д. [очень много разных примеров]. Вы же всерьёз не думаете, что цель любого хакера заключается в том, что бы подобрать или получить какой-то отдельно взятый пароль и (даже если его цель заключается именно в этом, внезапно), что этот самый хакер будет до потери пульса "биться лбом о стену" в попытках получить этот самый злополучный пароль путём брутфорса по форме авторизации или чем-то подобным и в результате неудачной попытки вся его "хакерская деятельность" на этом и остановится?
    Ответ написан
    Комментировать
  • Как работать одновременно с несколькими экземплярами класса?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Видится мне, что ответы на Ваши вопросы легко находятся поисковиком, в т.ч. поиском на Тостере... Например: раз, два, etc.
    Ответ написан
  • Чем передать видео с камеры ноута?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    На вскидку, вариантов несколько:
    1. Вы можете настроить (или запустить) закрытую трансляцию, как Вам уже рекомендовали выше, через какой-то готовый сервис, позволяющий вести трансляцию в закрытом режиме (кажется, GoodGame так умеет), воспользовавшись программой OBS.

    2. Вы можете поднять свой собственный RTMP-сервер и транслировать с него. Как это сделать описано например тут. Проблему с NAT'ом - можно решить либо путём приобретения "белого" IP, либо с помощью проброса трафика через другой сервер, у которого "белый" IP уже в наличии, в т.ч. можно воспользоваться различными бесплатными VPN (для этих целей существует масса программ, в т.ч. различные Hamachi, Garena и т.п.), либо же пробросить трафик через VPS/VDS, по VPN, SSH или любым другим удобным способом (на VPS к слову, можно заодно и сайт поднять, с плеером который будет отображать происходящее + сделать защиту доступа к нему).
    Ответ написан
    2 комментария
  • Замедление системы определенной программой?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Подскажите, пожалуйста, если ли такие программы, которые определяют как сильно загружает и замедляет систему, определенная программа? Например: запускаем тест - программа выдает цифру оценки системы - 94.3%, после установки антивируса и повторном тест - цифра оценки системы уже 91.2%.
    Вы же понимаете, что грузят систему не "программы", а конкретны процессы, причём они могут быть как частью отдельной программы, так и не иметь к ней никакого отношения?

    Например, Вы установили сначала антивирус. Замерили нагрузку на систему, и... например, нагрузка стала +10% (условно). А потом Вы установили программу которая постоянно что-то скачивает с интернета, антивирус в этом случае усиленно сканирует весь трафик, занимая всё больше и больше процентов процессорного времени, памяти так далее. Какая программа в этом случае будет давать нагрузку, по факту? Антивирус, который формально её создаёт, или программа которая заставляет антивирус работать в усиленном режиме?

    Другой пример - Chrome, на "холостых" оборотах обычно потребляет 300-400Мб памяти, но стоит вам там открыть с пол дюжины вкладок, как вдруг потребление памяти может легко перевалить за 1Гб, а если открывать в этих вкладках ещё и "тяжелые" сайты, то и нагрузка на процессор может резко подскочить, а если ещё и непрерывно что-то скачивать, то и нагрузка на жесткий диск тут же даст о себе знать.

    Иными словами, высчитать "нагрузку от программы" можно только очень и очень условно, и даже не "примерно".

    P.S. А если Вы хотите посмотреть, сколько процесс потребляет системных ресурсов в данный момент - для этого есть обычный "Диспетчер задач".
    Ответ написан
    2 комментария
  • Как в git скрыть директории для некоторых сотрудников?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как обычно компании решают данную проблему?
    Обычно эту проблему решают одним из следующих способов:
    1. Подбором сотрудников которые ничего не тащат
    2. Наличием специалист(а, ов) по безопасности
    3. Git submodules
    4. Разными репозиториями
    Ответ написан
    Комментировать
  • Как дать доступ только в определенную папку и больше никуда?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Прописать в ChrootDirectory /var/www/site_dev/assets. не могу, поскольку права на запись в /var/www/ нужны многим группам пользователям.
    Не совсем понимаю, как права других пользователей связаны с Chroot'ом, в Вашем случае... Ну да не суть.

    Есть вариант забирать кроном каждую секунду фаилы из /home/%u/ и перемешать в кнечную папку, но это както не правильно.
    Крон изначально запускается 1 раз в минуту (минимум) и не очень приспособлен для того, что бы делать что-то каждую секунду. В этом случае, проще было бы написать скрипт с бесконечным циклом и не забивать крон как минимум 60-ю заданиями (что бы они запускались через секунду). А если правильнее - использовать для этого какую-то систему синхронизации, например, Rsync.

    А ещё можно попробовать mount --bind, не знаю, поможет ли это в Вашем случае, но попробовать стоит.
    Ответ написан
    Комментировать
  • Стоит ли минифицировать и склеивать файлы, если есть http2 и gzip?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Стоит ли минифицировать и склеивать файлы, если есть http2 и gzip?
    GZIP тут играет довольно малую роль, к тому же, он был (и есть) и в HTTP1.0/1.1. К минификации он тоже никак напрямую не относится, от слова совсем. Минифицированные файлы становятся меньше с GZIP'ом, в сравнении с неминифицированным, сжатые тем же GZIP'ом (при прочих равных условиях).

    Кроме того, действительно ли такая оптимизация в наше время важна?
    Это риторический вопрос. Что-то из области: "Действительно ли так важен мизинец на ноге, или можно его отрезать?"

    Если да, то посоветуйте нормальные, не "смузи-хипсторские" решения, которые не требуют отдельного сервера с целым зоопарком технологий в придачу?
    Единственная известная мне технология, которая требует какого сревера - это модуль "Google PageSpeed", который подключается к Apache'у или "вкомпилировывается" в Nginx. При этом, отдельного сервера он не требует, достаточно того, что установлен в 95% случаев (Nginx и/или Apache). Но, Вы приспокойно можете минифицировать и сжимать файлы и без него, используя для этого массу готовых решений которые не требуют вообще никакого сервера и работают обычно локально, например решения на базе NodeJS (gulp) - модулей просто тонны, но если хотите, могу поискать за Вас. А так же, есть масса онлайн-сервисов занимающихся тем же самым, которые так же, не требуют наличия чего либо, кроме разве что браузера.

    P.S. Gulp (и прочие подобные ему инструменты) умеют так же и склеивать JS и "сжимать" картинки и минифицировать CSS и проводить массу действий подобного характера, в зависимости от Ваших потребностей. "Настроить" достаточно 1 раз, потом можно использовать готовую болванку в неограниченном кол-ве проектов.
    Ответ написан
    6 комментариев
  • Какие расценки на копипаст контент-менеджера?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
  • Как безопасно пересобрать nginx в Ubuntu 16.04?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Самый простой и "безопасный" способ - соберите Nginx на другой машине с нужными параметрами, сделайте из него пакет и протестируйте его работоспособность. Это на 100% безопасно будет.

    Чуть более опасно (в т.ч. с точки зрения "засрать сервер") - собрать Nginx где-то в стороне (например, в домашней папке) и запустить его оттуда руками. Если всё работает как надо - можете воткнуть его на законное место.

    Альтернативный и безопасный вариант - скачать уже собранный кем-то Nginx с нужным Вам модулем.

    P.S. Конфиги обычно не затираются (на моей памяти такого не было ни разу), но это не должно служить поводом не сделать их бекап.
    Ответ написан
    Комментировать
  • Оповещение что на веб страничке что то поменялось(поехало)?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Судя по описанию, Вы говорите о юнит-тестировании HTML. Судя по всему, в одном из ответов здесь, есть ответ и на Ваш вопрос.
    Ответ написан
    Комментировать