Ответы пользователя по тегу PHP
  • Белый экран вместо сайта, почему?

    @Yan-s
    Это значит что произошла ошибка. Надо включить отображение всех ошибок и предупреждений, все логи. Сперва добиться успешного открытия обычного html файла, потом отдельного, тестового php файла. В результате станет ясно в каком узле проблема.
    Ответ написан
    Комментировать
  • Достаем данные из php массива?

    @Yan-s
    Если до users добрались и поместили, например в отдельную переменную, то
    $users[0]->last_name
    Ответ написан
    Комментировать
  • PHP. Как получить определенный div с внешней страницы по div id или classname?

    @Yan-s
    Ищем php dom.
    Применяем соответствующие библиотеки, их много. Например https://github.com/Imangazaliev/DiDOM
    Ответ написан
    Комментировать
  • Как исправить ошибку?

    @Yan-s
    Если $request может быть null, то сперва сделайте проверку в if этой переменной на null.
    Если там не может быть null, то разбирайтесь с какой стати он там оказался.
    Ответ написан
    Комментировать
  • Может ли модель работать с массивом _POST и записывать данные в сессию?

    @Yan-s
    Модель не должна зависеть от способов ввода/вывода. Она не должна знать ничего о способе предоставления (веб, декстоп, ...) приложения в котором она работает. Сейчас вы хотите, чтобы она обрабатывала HTTP запрос, а завтра вам понадобится предоставить возможность запускать эту же логику командой из консоли, например.
    Ответ написан
    Комментировать
  • Как перебрать массив с помощью foreach и вывести только уникальные значения?

    @Yan-s
    $input = [
        ['id' => 41132],    
        ['id' => 41132],  
        ['id' => 35777],  
        ['id' => 41132],  
        ['id' => 41132], 
        ['id' => 35777],
    ];
    
    $uniqIds = [];
    foreach ($input as $item) {
        $uniqIds[$item['id']] = null;
    }
    
    $uniqIds = implode(', ', array_keys($uniqIds));
    var_dump($uniqIds); // string(12) "41132, 35777"
    Ответ написан
    Комментировать
  • Как отобразить комментарий под статьёй, под которой его написали, через PDO PHP?

    @Yan-s
    Возможно, это ужасный код, но я только месяц с этим знаком, извините.

    Да это ужасный код. Тем более для месяца изучения, за который документацию можно было прочитать раз 5 целиком.
    $_SERVER['QUERY_STRING']
    Вместо этого:
    php.net/manual/ru/reserved.variables.get.php
    php.net/manual/ru/language.variables.external.php

    while ($comment = $comments->fetch(PDO::FETCH_OBJ))

    Крайне не рекомендуется мешать HTML разметку с логикой к ней не относящейся. Тем более с логикой работы с БД. Разметка должна быть в отдельном файле.

    Хорошие практики для начинающих:
    getjump.github.io/ru-php-the-right-way
    Ответ написан
  • Что из себя представляет, и как правильно выводить слой представления в MVC?

    @Yan-s
    Есть разные трактовки этой концепции. И в общем то она не обязательно подразумевает разделение на файлы.

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

    Не всё должно относится к модели, представлению или контроллеру. Ваш класс, например, обслуживает представление, но сам им не является.

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

    @Yan-s
    Стоит ли использовать фреймворки, или писать чистый проект с нуля?

    Стоит. Либо собирать фреймворк из готовых компонентов. Но никак не писать их с нуля.

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

    У вас очень оптимистичные ожидания. Получить даже тысячу посетителей в день - уже будет серьезным вызовом.

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

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

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

    Что можете посоветовать? Если брать фреймворки, какие удобнее? Никогда не работал с ними в PHP, потому и интересуюсь.

    Могу посоветовать не спешить и поизучать сначала фреймворки и архитектуру ПО.
    Посмотрите вот эту серию видео https://www.youtube.com/watch?v=w4iqxN0nfTs
    Почитайте Совершенный код, Чистая архитектура и в таком духе.
    Попробуйте Симфони и Ларавел.
    Ответ написан
    Комментировать
  • Почему use не понимает внутри function?

    @Yan-s
    php.net/manual/ru/language.namespaces.php

    я не понимаю о чем вы, что за методы

    php.net/manual/ru/language.oop5.php

    Вы должны вынести use из метода и класса или не использовать use.

    PS
    Для тех кто в танке и желает там остаться: переместите use Dompdf\Dompdf; в верх файла, в строку перед сlass ...
    Ответ написан
    4 комментария
  • Возможно ли средствами PHP сохранить страницу сайта, как картинку?

    @Yan-s
    На PHP это довольно болезненно.

    Сервисы с api есть, можно сходу несколько нагуглить
    https://snapito.io/webshot-doc/
    https://www.s-shot.ru/?ya.ru
    Ответ написан
    Комментировать
  • Где лучше практиковаться, чтобы научиться всеми фишками патерна?

    @Yan-s
    Что за вопрос где? На работе, например.

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

    @Yan-s
    Для сайта? Никак. PHP работает на сервере, отправляет данные на запрос и вообще не представляет что с ними дальше происходит.

    Просто на js похожее уже осуществленно, а именно, белый экран.
    но она не записывает тех кто нажал

    При помощи JS фиксируете нажатие и отправляете на сервер информацию о нажавшем. Гуглите AJAX.

    Но защита на js обходится банальным отключением js.
    Ответ написан
    Комментировать
  • Как связать скрипт с работой в бд?

    @Yan-s
    А вы думаете можно что то дописать и всё чудесным образом начнет работать с БД?

    У вас должна быть БД, в которой должны быть таблицы с определенной структурой. Эту структуру должны спроектировать вы под нужды вашего проекта. Логика работы с БД и запросы будут строится исходя из этой структуры.

    В PHP выполняется подключение к базе, полученные данные обрабатываются, валидируются, фильтруются, строится и выполняется запрос.

    Гуглите SQL, PHP и MYSQL, PHP PDO.

    Кроме того. Крайне не желательно перемешивать в коде PHP и разметку. Если вы добавите сюда еще и SQL будет совсем плохо. Почитайте про MVC.
    Ответ написан
    Комментировать
  • Как сделать на PHP генерацию рандомного числа?

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

    Две ошибки:
    1. В строке echo $result, " ", "баллов" <br/>; - Здесь <br/> должен быть внутри кавычек. Все строковые значения в PHP должны быть внутри кавычек.

    2.
    <div id="random">   echo $result, " ", "баллов" <br/>;</div>
    Вы совершенно не различаете PHP и HTML. Чтобы сделать вставку PHP в HTML первый надо заключить в <?php ?>.

    Другие косяки
    - rand() - дает плохой рандом, имеет проблемы на разных платформах. Вместо нее следует использовать mt_rand() а для криптографически безопасных значений random_int()
    - echo $basik, " ", "начислено"; излишне писать , " " вы можете прижать пробел к следующему значению echo $basik, " начислено"; - эквивалентно, но чище.
    Ответ написан
    Комментировать
  • Похожи ли Яп-ы PHP и C / C++?

    @Yan-s
    В вузе, за весь курс языка, именно самому языку вас научат на таком уровне, который вы можете получить за 1-2 недели чтения справочника/руководства/доки. Вот алгоритмам, сверх этого, да, научат, но их суть в разных языках одна.

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

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

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

    @Yan-s
    Начните с основ, почитайте документацию php.net

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

    У меня есть 6 переменных

    У вас 1 переменная. В которой лежит массив php.net/manual/ru/language.types.array.php значений.

    узнать номер переменной

    Это не номер переменной, это индекс массива.

    Зная эту информацию задача сразу же разбивается на две: найти наименьшее число в массиве и найти его индекс.

    Далее, изучив список функций языка для работы с массивами php.net/manual/ru/ref.array.php вы бы нашли несколько способов найти наименьшее значение и его индекс. А еще раньше, из php.net/manual/ru/language.types.array.php вы бы узнали как можно обходить массивы получая и значение и его индекс, на тот случай если бы захотели реализовать алгоритм сортировки или поиска минимального значения самостоятельно.
    Ответ написан
    Комментировать
  • Как обработать данные input PHP?

    @Yan-s
    Чтобы решить вашу задачу на сервере, сперва необходимо отправить на него данные, чтобы он мог ими оперировать. По другому никак. Далее в ход идут те самые $_GET, $_POST и if else про которые, с ваших слов, вы знаете.
    Ответ написан
    Комментировать
  • Какая то проблема с json?

    @Yan-s
    У вас в JS числа сравниваются как строки.
    Ответ написан
    Комментировать