Задать вопрос
Ответы пользователя по тегу PHP
  • Как можно форму обратной связи отправить в html документе?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - отсутствует открывающий тег формы, в котором должно быть прописано куда отправляются данные, то есть какой файл будет их принимать, ну и метод отправки.
    Во вторых - если это html файл - весьма вероятно что в нем php код работать не будет, по умолчанию файлы html не обрабатываются интерпретатором, а выводятся "как есть", то есть все увидят ваш кусок кода как текст.

    Ну и так, по мелочам:
    - mail() не гарантирует отправку емэйла, только передает сообщение локальному smtp серверу, что будет дальше с сообщением абсолютно неизвестно. Для отправки почты есть более надежные скрипты, например phpMailer, нормально обрабатывающие все ошибки и способные работать с внешними smtp.
    - зачем админскую почту получать из формы - загадка, просто пропишите ее в скрипте как переменную или константу, светить ее всем подряд совершенно не обязательно
    -
    $method = $_SERVER['REQUEST_METHOD']; ... if ( $method === 'POST' ) {...
    зачем это переопределение из пустого в порожнее? Просто трата памяти.
    - else if ( $method === 'GET' ) {... тоже не сильно понятно зачем. Если не пост, то мало вероятно что метод будет delete или update, совершенно ненужная проверка, тем более что отправлять крупный массив данных методом гет (например из поля комментария) - плохая идея. Кроме того, если я просто открыл страничку - это тоже метод гет, но ваших переменных там не будет, просто в лог посыпятся варнинги об отсутствии переменных.
    - Код проверки переменных - отдельная грустная песня. Кроме того что есть filter_input, сама идея проверять переменные в цикле хреновая. Их у вас 4 штуки, все с разными требованиями, как по типам, так и по свойствам. Каждую надо проверить. Код станет длиннее, но гораздо более безопасным и читабельным.
    - <img src="img/aaa.png"... пути к ресурсам обычно пишутся от корня сайта, для того чтобы ресурсы не зависели от пути где лежит сам скрипт (<img src="/img/aaa.png"...).

    Самое главное вы так и не написали - что не работает то?
    Ответ написан
    Комментировать
  • В чем ошибка авторизации?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Хранить пароли в открытом виде - полный ахтунг.
    2) Как уже указали - скобки в селекте не нужны
    3)
    выпадает ошибка ERROR 1 т.е. ошибка существования логина, хотя он есть
    "а вот тут ты не прав малой"(с), не ошибка существования логина, а пустой результат исполнения запроса. Что вызвано именно кривым запросом.
    Ответ написан
    1 комментарий
  • В каких случаях при разработке сайта на PHP лучше использовать не MVC (и его подобия), а какой-нибудь другой подход?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    сайт с одной формой и 3 статичными страничками вполне может обойтись без какой-либо архитектуры вообще. А так - любой подход оправдан только если удовлетворяет требованиям проекта, например практичнее разбить его на микросервисы, что впрочем не исключает MVC.
    Ответ написан
    Комментировать
  • Почему когда выполняю php код через консоль он выводит весь файл, а на код ему плевать?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    хм, короткие теги и незнание того что консольный конфиг - отдельный файл?
    Ответ написан
    1 комментарий
  • Php как лучше написать роуты в mvc?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    если уж совсем по уму -
    '/clients/message/send' => 'message/sendMessageToClients'
    или
    '/message/send/clients' => 'message/sendMessageToClients'
    , в зависимости от того что у вас первично - мессажи или клиенты / менеджеры
    Ответ написан
    2 комментария
  • Где найти простой скрипт авторизации PHP7+MySQL+SESSION+COOKIES?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Весь интернет перерыл в поисках простейшей авторизации на PHP7 и MySQL с сессиями и куками
    Ну, для начала, писать "скрипт" на 7 пыхе - явно изврат, ибо как то уже совсем уныло писать на лапшекоде и без архитектуры, ибо нормально это должно быть что-то типа:
    class UserController extend BaseController 
    {
    ....
    public function loginAction(){
        $user = $this->currentUser();
        $user->login($this->params->post('login'),$this->params->post('pass'));
        if($user->isLoggedIn()){
            redirect($someURL);
        }
        else{
             doErrorStuff();
        }
    }
    }
    Ответ написан
    Комментировать
  • Не получается реализовать форму обратной связи через php. В чем может быть ошибка?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Оформите код нормально
    2)
    Письмо на почту не отправляется, форма не работает
    Так вы определитесь, форма не работает или письмо не отправляется?
    3) Форма волшебная ваша где? Код приводите полностью, иначе загадка что вы там наворотили.
    Ответ написан
    2 комментария
  • Как отправить данные в формате json,если приходит html?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Инструменты разработчика-> network->смотрите свой запрос, что там навозвращалось->думаете
    Ответ написан
  • Вылазит ошибка, как исправить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Читаем правила и оформляем нормально код
    2) Не ошибка, а предупреждение
    3) "Ошибка" легко ищется поисковиком или думается головой
    4) Для тех кто все еще в танке и 19 веке - в массиве отсутствует индекс msg (хорошая практика - проверять нужные поля на существование/непустоту)

    UPD: 5) Плохая практика - использовать глобальные переменные внутри функции.
    Ответ написан
    1 комментарий
  • Есть ли смысл передавать $_POST в качестве параметра?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
  • Как расчитать рабочее время?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых вынести настройки отдельно, вряд ли у вас все работают в разнобой, по этому $workDayStart и далее можно вынести в константы или статические свойства хелпера и не передавать туда 10 параметров. $unit тоже можно сделать опциональным параметром со значением по умолчанию, скорее всего он в большинстве случаев в часах.
    Дальше - перевести часы/дни в минуты и считать, чистая арифметика, логики практически ноль.
    Ответ написан
    Комментировать
  • Почему не работает отправка формы?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    не работает
    Все работает, другое дело что вы допускаете ошибки, и код делает не то что вы ожидаете.

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

    Что нужно сделать:
    Во первых оформить вопрос чтобы его можно было прочесть и понять.
    Во вторых привести ошибки: 1) из консоли браузера, если таковые есть, 2) из логов сервера, или как более логичный для разработчика вариант - включить вывод ошибок и посмотреть в чем проблема.
    Ответ написан
    3 комментария
  • Как можно получить сколько дней в этом году php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    date('z',strtotime('31.12.2001'));
    или проверить на високосность, параметр "L".
    Ответ написан
    Комментировать
  • Не получается сделать сравнение числа из базы данных и input. Ниже подробности. Как?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Создается рандомное число $data['randomNumber'], отправляется на email и базу данных.
    Пока все логично.

    Если все хорошо, то отправляет на другую страницу
    Хм, а если плохо? И что такое "хорошо" в вашем коде?

    $one = $data['code'];
    $two = $data['randomNumber'];
    И вот тут вопрос: откуда у вас взялись $data['code'] и $data['randomNumber']?
    Как только вы сообразите откуда их взять сразу все заработает.
    Ответ написан
    Комментировать
  • Почему возникает ошибка в PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) установить вывод ошибок в индексном файле/единой точке входа:
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);

    2) читать ошибки во вкладке нетворк.
    Ответ написан
    1 комментарий
  • Как параллельно вывести из 2х баз данные?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Не надо называть контроллером то, что им не является.
    2) Если у вас 2 дб - не надо в одном объекте их инициализировать, нужно создать 2 объекта (по 1 на дб) со своими настройками.
    3) WHERE id - просто шикарное условие.
    4) $_POST, $_GET и вообще сырые данные приходящие с фронтенда в запросы вставлять категорически нельзя. Во первых их надо хотя бы базово валидировать, во вторых для этого есть prepared statements.
    5) Чем вообще обусловлено разделение данных на 2 базы? Похоже что вы что-то не так делаете изначально, на уровне проектирования структуры данных.
    Ответ написан
    5 комментариев
  • Искажается хеш из MySQL при проверке пароля - как поправить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Первый вардамп не проходит, во втором (где сам генерит и сам проверят ) - все нормально.
    Соль?

    Что мешает вывести во втором варианте дамп полученного хеша и посмотреть чем отличается от того что лежит в мускуле?
    Ответ написан
  • Можно ли формировать sql запрос таким образом?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) id = 'value' это наверное `fieldname` = 'value'?
    2)
    на php получаем этот массив, перебираем массив и записываем в строку ($str) значения "id = 'value'"
    можно заменить на implode(',', $array);, но это все равно плохо, см. пункт 3.
    3) Вставлять переменные проверенные яваскриптом на фронтенде в запрос - ОЧЕНЬ плохая идея, данные во первых надо проверять на стороне сервера, а во вторых использовать подготовленные запросы, иначе в один прекрасный день все ваши данные превратятся в тыкву.
    Ответ написан