• Как правильно прописать путь к файлу через require_once?

    Stalker_RED
    @Stalker_RED
    Backslash (обратная косая) \ в путях к файлам используется, в основном, в виндовс. На линуксе это не прокатит. К счастью винда почти везде понимает и обычный слеш, так что можно писать
    d:/penServer/domains/bk/views/footer.php. Если хотите быть увереным в том, что путь будет правильным на любой платформе, используйте DIRECTORY_SEPARATOR.

    Вы можете указывать пути или относительно текущего файла (__DIR__), как у вас в примере, или относительно корня сайта ($_SERVER['DOCUMENT_ROOT']), или относительно какой-то папки, путь к которой вынесен в конфиг.

    А классы так подключать - вообще моветон. Почитайте про автолоадеры, например.

    Примеры применения:
    1. Допустим, сейчас исполняется файл D:/OpenServer/dummysite/index.php
    И мы хотим подключить файл D:/OpenServer/dummysite/templates/footer.php
    Тогда можно написать так: require __DIR__ . '/templates/footer.php'

    1. Допустим, сейчас исполняется файл D:/OpenServer/dummysite/admin/index.php
    И мы хотим подключить файл D:/OpenServer/dummysite/templates/footer.php
    Тогда путь из первого примера будет ссылаться на D:/OpenServer/dummysite/admin/templates/footer.php
    Чтобы это исправить, придется писать require __DIR__ . '/../templates/footer.php'
    Или
    require $_SERVER['DOCUMENT_ROOT'] . '/templates/footer.php'

    Еще универсальнее:
    require $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR . 'footer.php'
    Ответ написан
    2 комментария
  • Как реализовать частичное редактирование?

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    При редактировании сделать hidden поле и установить ему значение - 1, а при создании поста значение - 0, и при редактировании проверять - если поле hidden = 1 то поле "картинка" может быть пустым и это не вызывает ошибку, просто валидация пропускается, иначе если hidden = 0 то нужно обязательно указать загружаемую картинку. Таким образом при редактировании у тебя скрипт не будет просить картинку.
    Тут ветвление скрипта в любом случае получается.
    Ответ написан
    Комментировать
  • Как реализовать частичное редактирование?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Сейчас в коде работа с $_FILES идет хардкодом, значит надо перейти к гибкой загрузке - если $_FILES пуст, то ничего с ним не делать и работать с остальными данными формы, если в нем есть image - то уже работать с файлом
    Ответ написан
    1 комментарий
  • Почему не работает сессия?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    Все нормально с сессией, проблема в $_POST['submit'], у тебя не задано для него никакого значения, то есть в var_dump($_POST['submit']); выводится как пустая строка (string '' (length=0)). Ты же его проверяешь просто if($_POST['submit']), в этом случае выражение $_POST['submit'] вычисляется как Boolean значение, значит что и пустая строка и null и 0 считаются как FALSE, подробнее --> тут <--. Чтобы все заработало надо либо задать value для button submit с некоторым значение не равным нулю, либо проверять на стороне PHP другим способом, например:
    if(isset($_POST['submit'])){
    
    }
    //или просто 
    if($_POST){
    
    }
    Ответ написан
    1 комментарий
  • Как решить проблему редактирования значений в таблице?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    Прикрути JS. При нажатии редактировать, всплывает модальное окно с формой редактирования, кнопка сохранить отправляет AJAX в php-обработчик, который обновляет записи в бд, возвращает результат, JS обрабатывает ответ, и редактирует таблицу и скрывает модальное окно.
    Ответ написан
    Комментировать
  • Как решить проблему редактирования значений в таблице?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    После редактирования и субмита формы через пост запрос, на бэке делаете всю обработку данных, а затем редирект на страницу редактирования. Это во первых предотвратит повторную отправку при F5, а во вторых у вас нормально заполнятся поля.
    Ответ написан
    Комментировать
  • Как реализовать редактирование записи из БД при клике на ссылку?

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    if(isset($_GET['edit'])){
    
      // Соединиться с БД, взять из неё все данные поста по id переданному в GET
      // Загрузить форму где в input value="..." вставлять данные из БД, чтобы форма заполнилась
      // При отправке формы выполнить запрос типа UPDATE, отправить в базу новые данные по этому посту
      
    }
    Ответ написан
    Комментировать
  • Как реализовать редактирование записи из БД при клике на ссылку?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    обернуть весь блок формой, сделать инпуты с данными, сделать их hidden, по кнопке скриптом показать инпуты, по другой вернуть все состояния обратно.
    Ответ написан
    2 комментария
  • Как реализовать редактирование записи из БД при клике на ссылку?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    1) преобразование текста в инпут и добавление кнопок можно сделать на js ( переносить содержимое divа с текстом в textarea и добавлять кнопки)
    2) на кнопку еdit/update повесить обработчик на js, который будет собирать содержимое из инпутов, отсылать их через POST на бекенд и там уже сохранять в базу.
    Ответ написан
    Комментировать
  • Как правильно реализовать вывод записи из БД на сайт?

    @dimuska139
    Backend developer
    У тебя в $art не просто ассоциативный массив, а массив из ассоциативных массивов. Так что тебе в шаблоне нужен цикл, либо обращайся по индексу:
    <div class="text">
        <div class="article">
          <h2><?php echo $art[0]['title']; ?></h2>
          <p><?php echo $art[0]['text']; ?></p>
        </div>
      </div>
    Ответ написан
  • Как эффективно выучить PHP?

    @0x131315
    ИМХО ключевое в php, когда имеешь базу - это не сам язык, а понимание того, какую роль он выполняет, и какое место в архитектуре эта роль занимает.
    Что касается php, то это в первую очередь скриптовый язык, созданный специально для связи Фронта с Беком, т.е. основная его функция - предоставление доступа к БД сервиса для html и js-кода, работающих на фронте.

    На сегодняшний день php решает следующие задачи:
    -доступ к БД
    -вспомогательные вычисления
    -шаблонизация
    -связь с внешними сервисами
    -предварительное кеширование

    Нужно в первую очередь понять как работает Веб, что такое фронт и бек, как они взаимодействуют, что такое хит, что такое ajax, как происходит идентификация посетителя (в частности как работают сессии и куки). Это основные моменты.

    ООП стоит учить и использовать сразу, благо основные идеи ООП просты и доступны каждому. А вот всякие паттерны и хитрости лучше отложить - постигнешь их по мере надобности.
    Все, что тебя отделяет от ООП - это автозагрузка, освой composer, и написание кода станет лёгким и приятным занятием.

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

    Очень важно изучить php.net
    Не обязательно штудировать всё, но стоит как минимум взглянуть что там вообще есть.
    Этот сайт - нечто вроде документации по STDLIB языка, в ходе практики ты к нему будешь возвращаться ещё тысячи раз.
    Многие задачи, которые ты планируешь решить велосипедом, уже решены за тебя, и входят в язык - нужно просто знать про то, что язык умеет из коробки, а что нет.

    Очень важно поработать с фреймворками и репозиторием composer: большинство из задач, которые встанут перед тобой, уже кем-то решены, и существует либо готовая библиотека, либо как минимум публичный интерфейс, который ты можешь реализовать, чтобы не натворить архитектурных ошибок.
    Посмотри на symfony, почитай стандарты PSR.
    Большинство задач решается декомпозицией алгоритма, и сборкой приложения из готовых библиотек или PSR-интерфейсов. Остаётся только это всё сконфигурировать, и дописать немного кода для склейки всего этого в единое приложение.

    Т.к. php - это прокладка между html и БД, обязательно нужны основы html, SQL, и практика по развертыванию, проектированию, и управлению какой-либо СУБД.
    Наиболее популярная и простая СУБД - MySQL, на ней и сконцентрируйся. Намного позже, когда будет опыт, обязательно попробуй postgres - это намного более совершенная СУБД, но она сложнее MySQL, и новичкам с неё начинать не стоит.
    Особо углубляться в sql не стоит, т.к. в чистом виде с ним будешь работать мало, по большей части взаимодействие с БД сведётся к установке ORM-библиотеки, например doctrine2. Вот ORM стоит изучить плотнее, они предоставят тебе простой и приятный доступ к данным в БД, и обеспечат лёгкие миграции состояния БД.

    Что касается курсов - они очень ценные, особенно для новичка. Быстро вводят в строй.
    Но на практике все это выливается в год-два кодинга ради кодинга, что не особо эффективно.
    Обязательно нужна практика, желательно боевая.
    Советую либо посетить фриланс-биржу, и начать выполнять чьи-то хотелки, либо попробовать устроится, можно на удаленку, в какое-нибудь агентство, которое клепает сайты, и начать выполнять самые простые боевые задачи.
    Такая практика прокачает тебя намного быстрее, и не позволит забыть то, что выучил. Но без курсов она будет однонаправленна: в реальной работе разработчики используют лишь малую часть из того, что может php, но знать нужно все - это сделает тебя профессионалом.
    Поэтому нужно комбинировать практику с курсами.

    Очень сильно поможет хороший редактор кода, например phpstorm - он будет подсвечивать твои ошибки, предоставит интерактивные подсказки по коду, и позволит быстро инспектировать код большого проекта, параллельно работая с ФС сервера, БД и docker-контейнерами. Серьезно ускоряет и упрощает работу.
    Ответ написан
    4 комментария
  • Как эффективно выучить PHP?

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    Пока не лезь в ООП вообще, напиши простенький блог на процедурах, потом перепиши на функциях и только потом смотри на ооп, НЕ прыгай через базовые навыки сразу к сложному!
    Ответ написан
    7 комментариев
  • Как эффективно выучить PHP?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Во-первых, грешно знать одну парадигму. Учите и процедурный подход, и объектно-ориентированный и функциональный. Во-вторых, читайте учебники, они намного полезнее курсов и видео-уроков. В-третьих, самое эффективное обучение - это работа в профессиональном коллективе над реальными задачами.
    Ответ написан
    3 комментария
  • Как спозиционировать элемент?

    dom1n1k
    @dom1n1k
    Внимание, вопрос: зачем тут изгаляться с псевдоэлементами, если можно (и нужно!) скруглить и стилизовать сам элемент?
    Ответ написан
    Комментировать
  • Как спозиционировать элемент?

    uiworks
    @uiworks
    https://jsfiddle.net/L0hnedgs/
    <div class="circle">
      <span class="circle__number">
        1
      </span>
    </div>

    .circle {
      width: 100px;
      height: 100px;
      border-radius: 100px;
      background-color: red;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    
    .circle__number {
      color: #fff;
      font-size: 70px;
      font-weight: bold;
    }
    Ответ написан
    Комментировать