• Тестовое задание на 80 часов разработки???

    @Silm
    На хабре это только топик называется "Тестовое задание", а вообще там подразумевается, что человек его выполняет находясь на испытательном сроке и получает оплату.

    Так что если вам таких условий не предлагают, то отправляйте их куда подальше.
    Ответ написан
    Комментировать
  • Простейший PHP framework для сайта визитки?

    @Silm
    Slim Framework
    Lumen Framework
    Ответ написан
    Комментировать
  • Можно ли так обезопасить PHPMyAdmin на сервере?

    @Silm
    Во первых переименуйте. Во вторых добавьте базовую аутентификацию на папаку с phpmyadmin в дополнение ко встроенной в него авторизации. Иногда ее можно настроить прямо в панели хостинга или погуглите как это сделать в ручную: "базовая http-аутентификация".

    Ещё, вместо phpmyadmin можно использовать adminer. Представляет из себя 1 фай, который можно загрузить по FTP куда угодно и, насколько помню, для авторизации требует кроме логина и пароля ввести еще и имя базы.

    https://www.adminer.org/
    Ответ написан
    1 комментарий
  • Как сделать 1 шаблонную страницу, содержащую разные запросы к БД?

    @Silm
    Епрст... а нафига?

    Опишите чего вы хотите достичь, 120% что это делается по другому...

    И почему монга? Есть ли обоснование?
    Ответ написан
    Комментировать
  • Какую бесплатную cms выбрать для интернет магазина с количеством от 10 000 до 15 000 товаров?

    @Silm
    Да в общем то любой популярный специализированный магазинный движок с необходимыми модулями подойдет. Сравните сами, с чем вам приятнее работать. 10-15к товаров этож мало.
    Ответ написан
    Комментировать
  • Не работает функция imagecreatefromjpeg на Denwer'e что делать?

    @Silm
    Начнем с того, что избавимся от Denwer.

    Во вторых убедимся, что даем функции то чего она хочет: "valid Image resource". Потому что в сообщении об ошибке у вас ясно написано, что получает она что то иное.
    Ответ написан
    Комментировать
  • Получить значение в переменной и продолжить работу?

    @Silm
    Рекурсивная функция.
    пример из документации php:
    function recursion($a)
    {
        if ($a < 20) {
            echo "$a\n";
            recursion($a + 1);
        }
    }

    php.net/manual/ru/functions.user-defined.php

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

    @Silm
    А как же вы хотите чтобы в кириллической кодировке windows-1251 отобразился символ которого в ней нет?

    И почему вообще у сайта кодировка windows-1251, тем более что надо отображать не содержащиеся в ней символы?
    Ответ написан
  • Как "подружить" цыклы записи Wordpress?

    @Silm
    Вы делаете всю "грязную работу" прямо в файле шаблона.

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

    @Silm
    А зачем вам многомерный массив?

    Записывайте куда нибудь, лучше в БД, собранные изображения. Записывайте адрес изображения и md5 хеш от него. Потом по хешу будет удобнее искать дубли или конкретные изображения. Дальше можете делать с этим списком что угодно, можно удалять из него использованные адреса или ставить на них метки или число использования и тп
    Ответ написан
  • PHP кавычки, одинарные и двойные, как правильно?

    @Silm
    про шаблоны и фреймворки знаю, но мне-бы подтянуть вначале чистый php

    Тогда воспользуйтесь альтернативным синтаксисом управляющих конструкций:
    <?php 
    /// некий код
    ?>
    
    <table cellspacing="1" width="100%">
    <?php while ($dbGetUsersResult = mysql_fetch_array($dbGetUsers)): ?>
        <tr>
          <td><?=$dbGetUsersResult['id']?></td>
          <td><?=$dbGetUsersResult['name']?></td>
          <td><?=$dbGetUsersResult['height']?></td>
          <td><?=$dbGetUsersResult['sclass']?></td>
          <td><a href="#" id="delete-link" data-id="<?=$dbGetUsersResult['id']?>">X</a></td>
        </tr>
    <?php endwhile?>
    </table>


    php.net/manual/ru/control-structures.alternative-s...

    Кроме того! Зайдите вот сюда: php.net/manual/ru/function.mysql-fetch-array.php и прочитайте что написано в самом верху внутри большого розового прямоугольника.
    Ответ написан
    Комментировать
  • MVC php на пальцах?

    @Silm
    Просто говоря MVC - физическое разделение кода на три основные логические части: Model, View, Controller с которыми мы обязуемся работать определенным образом в целях облегчения процесса разработки.

    В файлах моделей описываются данные и происходит основная их обработка. Логично, что тут мы работаем и с базой данной.

    В отображениях (View) располагается так называемый "шаблон". Как правило это файлы с HTML версткой и PHP логикой отвечающей за отображения конкретных элементов. Например, тут нельзя делать запрос к БД, но можно написать цикл, который будет отображать блоки верстки с новостями.

    Контроллеры связывают между собой модель и отображение. Они определяют какие надо получить данные, запрашивают их у моделей, собирают их вместе и передают в отображение.

    Пример в студию
    Итак. Допустим нам надо отобразить страницу с постом в блоге. Представим что страница у нас состоит из текста поста, названия сайта и списка похожих публикаций.

    Запрос попадает в нужный контроллер (контроллер постов). Он начинает собирать нужные данные:
    • Контроллер достает из настроек название сайта.
    • Контроллер обращается к модели отвечающей за посты, в ней содержатся различные методы, отвечающие за работу с постами (вывод списка постов, отображение одного поста, редактирование поста итп), каждый метод может делать различные запросы к БД и производить необходимые манипуляции с данными. В данном случае мы вызываем метод getPost() который получает id поста, делает выборку из БД и возвращает результат.
    • Данные из модели возвращается в контроллер. Если пост с переданным id не был найдет, именно контроллер перенаправит пользователя на страницу с кодом 404.
    • Но в нашем случае пост был найден и теперь контроллер берет из полученных данных название поста и обращается к модели ответственной за получение похожих публикаций, она на основе полученного названия возвращает массив из похожих названий статей и их id (все что нужно в нашем примере для отображения списка ссылок).
    • Контроллер собрал все что было нужно и теперь берет заданный нами файл шаблона отображения и передает туда все необходимые данные.
    • В отображении мы отображаем название сайта в тайтле, внутри верстки выводим наш пост, а по массиву похожих публикаций приходимся циклом отображая его как список ссылок.
    • Страница с постом успешно отображена.

    Это такой, упрощенный пример. Но надеюсь дает общее представление о том, за что отвечает каждая из частей и как они работают вместе.

    Чтобы понять, что еще может делать каждая из частей и как вообще это выглядит, изучите документацию и примеры по одному из популярных PHP фреймворков, например, таких как Yii и Laravel.
    Ответ написан
  • Качество кода ради производительности?

    @Silm
    Есть смысл оптимизировать в ущерб удобству и понятности либо небольшие критичные части, либо то, что больше трогать в будущем не придется. Но с последнем можно и не подгадать.
    Ответ написан
    Комментировать
  • Как вывести 1 случайное значение из многомерного массива?

    @Silm
    Ну если структура массива известна и она такая как в примере, то можно:
    $i = mt_rand(0, count($array) - 1);
    $j = mt_rand(0, count($array[$i]) - 1);
    echo $array[$i][$j];


    функции array_rand() и rand() на практике выдают предсказуемые значения. Это может быть не принципиально, если, задача, например, выводить на странице сайта 1 случайное изображение каждый раз. Но если надо вывести множество изображений в случайном порядке или, скажем, распределить ряд элементов на случайные группы, то могут быть заметны паттерны.
    Ответ написан
    3 комментария
  • Как добавить класс к тэгу body с помощью php?

    @Silm
    <body class="<?=isset($class) ? $class : ''?>">
    ...
    </body>

    Переменной $class должно быть ранее присвоено имя класса. Если переменная не определена класс не добавляется.

    Сперва читайте мануал.
    Ответ написан
    2 комментария
  • Обучение удаленное или своими силами?

    @Silm
    Информации в свободном доступе достаточно. Кому то платить смысла нет, как и нет каких то секретов и тайн в этом деле.

    Смотрите бесплатные курсы, читайте книги общего назначения. Постоянно и много практикуйтесь. Читайте тематические блоги, задавайте вопросы.

    Конкретно по PHP пригодится: www.phptherightway.com
    Ответ написан
    Комментировать
  • 3 else или 2 if?

    @Silm
    1. Группу пользователя получаем не из сессии, а из БД
    2. Выводим нужный html блок как угодно, но только не через вложенные if
    Ответ написан
    Комментировать
  • Объясните человеческим языком, что такое веб-фреймворк на языке php?

    @Silm
    Вам проще почитать документацию пары тройки популярных фреймворков, сразу все поймете.

    При разработке сайта всегда появляются рутинные задачи. Если пишите сами, то вам надо написать роутинг, надо написать подгрузку классов, MVC, конфигурирование, обертку к БД, обертку к кешу, ..., да даже кучу мелких функций для работы со строками. Либо собрать все это их готовых библиотек.

    В фреймворке все это уже собрано, подробно описано и задокументировано. Хороший фреймворк старается минимально обязать вас к чему то и предоставить максимум гибкости и возможностей. Если вам так надо, можете игнорировать большую часть возможностей фреймворка, а можете вместо каких то его частей использовать сторонние или свои.

    PHP веб фреймворк - это каркас приложения, набор инструментов, набор деталей, набор стандартов, в какой то мере - рабочее пространство.

    Проводя аналогию, если бы PHP разработчик, который все проекты пишет с нуля, был плотником: ему бы пришлось в какой то степени овладеть кузнечным делом, чтобы выковать себе инструмент. Инструмент он изобретал бы сам, поэтому самодельной, уникальной, отверткой не получилось бы закрутить стандартный саморез. И скорее всего в каждом проекте появлялась бы парочка саморезов нового типа + отвертки под них, не совместимые с предыдущими. По той же причине ни у кого бы не получилось с ходу собрать/разобрать/починить его изделие.

    Самостоятельно бы пришлось изобретать и многие технологии деревообработки. Само собой они бы уступали технологиям проверенным временем и тысячами других мастеров, поэтому изделия получались бы массивными, хрупкими и в целом сомнительного качества.

    Ну и так далее.
    Ответ написан
    Комментировать
  • Как скрыть и показать содержимое на bootstrap?

    @Silm
    Ответ написан
    Комментировать