• Достаточно ли безопасен этот скрипт загрузки изображений на сервер?

    SilenceOfWinter
    @SilenceOfWinter Куратор тега PHP
    та еще зажигалка...
    самый простой способ это не загружать изображение как есть, а изменить его размер с помощью gd/imagick и сохранить если модификация не вызвала ошибок. ну и выдать файлам права 0644 чтобы их нельзя было выполнить.
    Ответ написан
    5 комментариев
  • Достаточно ли безопасен этот скрипт загрузки изображений на сервер?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    черный список всегда небезопасен.
    проверять надо только по белому

    Плюс желательно переменовывать файл целиком, потому что к примеру веб-сервер апач может принять за расширение файла то, что им не является.
    Ответ написан
  • Почему последнее время в Разработке такие маленькие зарплаты?

    Judixel
    @Judixel
    Front-end Engineer
    Вы для начала устройтесь хотя бы на 10к, чтобы вас принял работодатель, поработайте месяц - второй, а потом уже думайте что можете сделать, чтобы заработать больше, если пришли за деньгами. Ни дня не работали даже верстаком, а уже пальцы гнете, что мало. Никакой разработчик не зарабатывал с первого дня сотни тысяч, все начинают с малого.
    Ответ написан
    Комментировать
  • PHP или Python для собственного WEB?

    Adamos
    @Adamos
    Если вы действительно собираетесь писать все-все с нуля, то язык безразличен, и даже разница между Django и Laravel, в сущности, невелика.
    Другое дело, что велосипеды сплошь и рядом не так эффективны и просты, как это кажется "на берегу". Поддержка их и добавление фич могут быстро оказаться дороже, а результат - хуже, чем использование готовых решений. А с ними, насколько я могу судить, у РНР получше, если речь о вебе и обычных для него задачах.
    Особенно для новичков-велосипедистов, для которых открытием оказывается, что то, что они полгода лелеяли и изобретали из головы, имеет столько готовых решений...
    Ответ написан
    1 комментарий
  • Как рассплитить строку по двум условиям с помощью регулярного выражения?

    Seasle
    @Seasle Куратор тега JavaScript
    Пока такое придумал
    const string = 'f, [, s, q, ], [abc def] jkl mno';
    const matches = string.match(/(\[[\w\s]+\])|([^\s,]+)/g);
    
    console.log(matches);  // [ 'f', '[', 's', 'q', ']', '[abc def]', 'jkl', 'mno' ]
    Ответ написан
    5 комментариев
  • Как разрешить проблему с тем что не записываются некоторые записи в базу данных?

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

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Как принимать оплату на сайте анонимно?

    Никак.

    Теоретически, есть возможность написать на сайте "для оплаты заказа перевести денех на карту номер nnnn nnnn....". Но увидев на сайте такую надпись, я бы тут же сиганул оттуда, несмотря на какие бы то ни было привлекательные цены.

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

    С точки же зрения банка - как только на Ваш счет начнут поступать переводы с разных мест - банк тут же Вам карту залочит и заинтересуется, откуда дровишки.

    Незаконная предпринимательская деятельность
    Ответ написан
    4 комментария
  • Как принимать оплату на сайте анонимно?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Это невозможно и более того противозаконно.
    Ответ написан
    10 комментариев
  • Какой Roadmap для бизнес-аналитика?

    @dmshar
    А вы хоть на"текущем месте работы" когда вам предложили - поинтересовались, в чем конкретно будут состоять ваши функции. (Странно, что PМ этого не знает, ну да ладно). А то часто оказываются, что разные люди понимают одни и те-же термины (в данном случае -"бизнес анализ") совершенно по разному. Поэтому вам не с Roadmap начинать надо, а с выяснения того, что от вас требоваться будет. Конкретно, на вашем рабочем месте. А уж ознакомившись и поняв это - думать о построении всяких путей и дорожек достижения обозначенных (недостающих!!) знаний.
    Ответ написан
    Комментировать
  • Попинайте. Работодатель сказал, что у меня код PHP устаревший. В чем именно проблемы?

    @galliard
    А я бы взял автора на работу. Да некоторые функции и конструкции синтаксиса устарели. Но при всех недочетах у его кода есть 2 весомых плюса:
    1. В нем нет серьезных архитектурных ошибок. Ну разве что die посреди логики, но это легко лечится заменой на эксепшн.
    2. Код понятный!!! Это вообще огромный плюс, который перекрывает все минусы.
    Ответ написан
    Комментировать
  • Попинайте. Работодатель сказал, что у меня код PHP устаревший. В чем именно проблемы?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В общем да, на первый взгляд этот код производит ужасное впечатление
    Тут даже не 2010-е, тут скорее 1990-е

    По пунктам
    - конструктор, совпадающий с именем класса, уже отсутствует в языке
    - в конструктор передается бессмысленная переменная дб, которая нигде не используется
    - функции вида formField() - это явно какой-то адок и инъекции
    - про mysql_query уже сказали
    - про собаку уже сказали. причём она здесь не нужна, mysql_query практически не выдаёт ошибок
    - die ( mysql_error () ); - это вообще зашквар. Я кстати однажды наблюдал результат похожего кода на тостере много лет назад, хе-хе. На боевом сайте системные сообщения об ошибках никогда не должны выводиться в браузер. Вообще, это родовая ошибка похапешников, сохранившаяся до наших дней - у них все ошибки в обязательном порядке обрабатываются здесь и сейчас. В то время как код приложения должен только выбросить ошибку, а обрабатываться все ошибки должны централизованно, в другом месте.

    Однако есть и хорошее.
    Сам по себе класс неплохой, и довольно грамотный ООП в целом.
    пожалуй, надо только подправить синтаксис, и задействовать какой-нибудь осмысленный объект $db, чтобы запрос выполнялся как-то так

    function addPlace($place) {
        $query = "INSERT INTO place
            (name,english, countryID, globalRatingID, typeID, worldPartID, datecreated,
            datelastmodified,datepublished,permissionLevel,tansliterated)
            VALUES (
            (:name,:english, :countryID, :globalRatingID, :typeID, :worldPartID, now(),now(),
            now(),:permissionLevel,:tansliterated)";
        $this->db->query($query, [
            'name' => $place->getName(),
            'english' =>$place->getEnglish(),
            // и так далее, всё массивом
        ]);
        return true;
    }
    Ответ написан
    2 комментария
  • Попинайте. Работодатель сказал, что у меня код PHP устаревший. В чем именно проблемы?

    Stalker_RED
    @Stalker_RED
    @mysql_query() уже одного этого кусочка хватает для того, чтобы сильно усомниться в скиллах.

    Функция mysql_query устарела более семи лет назад, и в современных версиях языка ее вообще нет.
    Подавление ошибок через @ - вообще шедевр. У вас, значит, запрос с ошибкой, или база упала - но ваш код это просто игнорирует и делает вид, что так и надо. Зашибись :)

    Читайте https://phptherightway.com/
    Ответ написан
    Комментировать
  • Как устроиться на начальную должность в веб?

    kirbi1996
    @kirbi1996
    Создай какое нибудь crud приложение в качестве первого проекта, для второго можешь какой нибудь магазин пиццы или книг реализовать, с личным кабинетом например, с корзиной.
    Ответ написан
    Комментировать
  • Почему упала производительность базы MySQL при переносе на новый сервер?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Самый тупой вариант: в "самой последней версии mysql" query cache отключен по умолчанию. Но если речь о конкретном запросе с воспроизводимым результатом, то наверное дело не в этом.

    Поэтому надo задавать не вопрос "почему упала в два раза после переезда", а надо разбираться с конкретным запросом.
    Вообще, вопрос конечно из серии "Дорогие учёные. У меня который год в подполе происходит подземный стук. Объясните, пожалуйста, как он происходит". Неужели так трудно задать конкретный вопрос?
    • создали два LXC контейнера... С какими характеристиками?
    • поставили последнюю версию MySQL... Какую?
    • на некоторых запросах... Каких?
    • меняли настройки базы... Какие?
    • перерыли рекомендации... Какие?


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

    Ну так-то в принципе такой гвоздик есть, называется innodb_buffer_pool_size. Но вы ведь по нему тоже пробовали стукнуть, когда "пробовали настройки"? Это же тоже важно в вопросе писать, чтобы не превращать отвечающих в гадалок на базаре
    Ответ написан
    Комментировать
  • Стоит ли переходить с win 10 на linux debian?

    paran0id
    @paran0id Куратор тега Linux
    Умный, но ленивый
    Вы работаете не в ОС, а в прикладном ПО. Соответственно, вам нужна ОС, где оно работает. Windows, MacOS например. Архитектура виндовса вас не подводит, вы непосредственно её даже не касаетесь. Проблема не в ней.
    Ответ написан
    Комментировать
  • Как сделать график?

    RAX7
    @RAX7
    chartjs
    Ответ написан
    Комментировать
  • Как сделать анализ и спроектировать сложный SQL-запрос?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    принцип очень простой.
    Я его использую при оптимизации тормозящих запросов, только в другом направлении.

    Если сложный запрос тормозит, то я по очереди из него выкидываю все джойны и подзапросы до тех пор, пока торможение сохраняется. И дальше уже занимаюсь оптимизацией упрощенной версии. Обычно это две-три таблицы.

    Тот же самый принцип при проектировании, только в обратную сторону - сначала получаем базовые данные, голый хребет, без украшений. Если из связанной таблицы мы получаем значение по первичному ключу (скажем название категории по её айди), то добавляем её в последнюю очередь, поскольку она ни на что не влияет. Начинаем с основнй таблиы с данными - и вперёд

    То есть грубо говоря сначала формируем логику, потом добавляем украшения.
    Ответ написан
    Комментировать
  • Как сделать график?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    shieldui.blogspot.com/2014/01/javascript-polar-cha...
    Гугли по словам " js chart polar spline"или radar chart
    https://reactjsexample.com/react-based-radar-chart...
    Вариантов масса
    Ответ написан
    Комментировать