Ответы пользователя по тегу PHP
  • Как раскодировать php input после axios post?

    @granty
    Согласно RTFM, php://input недоступен с типом содержимого enctype="multipart/form-data".

    php://input это простой файл, данные из него читаются просто:
    $buff = '';
    $fp = fopen("php://input", "rb");
    while (!feof($fp)) $buff .= fread($fp, 1024);
    fclose($fp);

    json должен присылаться с Content-type: application/json, и согласно RFC4627 он должен присылаться в Unicode (UTF-8 по умолчанию):
    JSON text SHALL be encoded in Unicode. The default encoding is UTF-8.

    Можно смотреть реальную кодировку json из заголовка, например Content-type: application/json; charset=utf-16), если присылается правильный заголовок. Можно и автодетектить кодировку по первым 4-м байтам.
    Ответ написан
    1 комментарий
  • Как организовать вывод рандомно?

    @granty
    Нужно вывести их в шаблоне, только чтобы каждый раз при посещении страницы, они менялись местами

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

    @granty
    Этот кусок php-кода посылает на емайл portovjack@gmail.com (он закодирован в "cG9ydG92amFja0BnbWFpbC5jb20=") сообщение об успешной установке шелла на сайте.

    Как видно из сообщения $body, сам PHP-шелл находится в модуле http:// $web$path, ищите это письмо в логах почтового сервера, оно было отправлено через почтовик хостера.
    Или смотрите последние даты изменения php-файлов движка сайта - сам шелл там.
    Ответ написан
    Комментировать
  • Как исключить отрицательное значение при вычитании?

    @granty
    Сделайте проверку по-другому:
    $result  = 1000;
    $subtract = rand(100,150);
    if ($result >= $subtract) {
      $result = $result - $subtract;
    }else{
      echo 'Ошибка: Число уйдет в минус';
    }

    скорее всего можно сделать проверку "красивее", но непонятно что вы там обсчитываете.
    Ответ написан
    1 комментарий
  • Как сделать редирект с данными через header?

    @granty
    Если запрос принял и обработал скрипт 1.php, то он может сделать
    include('2.php');
    и подключить скрипт 2 для дальнейшей обработки данных.

    Через заголовок header('Location: //site.com/2.php?param=val'); можно передать только GET-параметры. Но они прилетят в браузер, который тут же отфутболит их обратно на сервер, и скрипт 2.php вынужден будет заново обрабатывать данные из GET-запроса.
    Какой смысл гонять пользователя через редиректы, если проще сразу полностью обработать данные скриптом 2.php или 1.php?

    Не совсем понятно, что вы пытаетесь сделать...
    Ответ написан
    Комментировать
  • Не удается отправить в БД введенные на сайт данные. Как исправить?

    @granty
    1. Если поле называется client_name
    <input type="text" name="client_name">
    то на сервере и ловите его под этим же именем:
    $name = trim($_REQUEST['client_name']);

    2. У вас 2 формы < form> - в одной поля , а во второй - только кнопка < submit>.
    При нажатии на кнопку отправляется вторая форма, но в ней нет полей с данными. Поэтому на сервер ничего не присылается. Перенесите кнопку "Записаться" в первую форму, а вторую форму вообще уберите.

    А вообще, FanatPHP прав. Вы читаете какие-то неправильные сайты.
    Ответ написан
  • Как правильно отдать файл с одного сайта другому?

    @granty
    Сисадмины не просто так сделали публично доступный и внутренний сайты компании - а именно для того, чтобы внутренние файлы компании бесконтрольно не утекли в паблик.

    CMS(система управления контентом) вашего публичного сайта должна иметь возможность загружать файлы так, чтобы на них автоматически появлялись ссылки со страниц сайта. По крайней мере, на ваш публичный сайт должен быть доступ по ftp (надо знать логин и пароль) - можно вручную загрузить файлы и поправить страницы сайта так, чтобы на них появились ссылки на скачивание/просмотр этих файлов.

    Решение: либо залить файлы по ftp, либо - через функционал CMS. Лучше спросить у сисадминов или того, кто у вас занимается поддержкой публичного сайта, чтобы случайно не нарушить "корпоративную этику" :)
    Ответ написан
  • Как и для чего используется php://input?

    @granty
    Данные и так передаются по POST (или GET), но есть нюансы их обработки на стороне сервера.

    1. POST и GET данные в виде parameter=value&param2=val2 автоматически обрабатываются сервером и заполняются глобальные массивы $_POST/$_GET/$_REQUEST:
    $_POST['parameter'] = value;
    $_POST['param2'] = val2;

    GET-параметры при этом ещё и автоматически декодируются по urldecode().
    Через php://input можно получить "сырые" необработанные данные.

    2. Методом POST можно прислать, например, объект JSON, указав 'Content-type: application/json; charset=utf-8'. При этом массив-обёртка $_POST будет пуста, тк не присылается Имя_Параметра, а присылается только Значение_Параметра, и сервер не обрабатывает такие данные автоматически.
    Получить такие данные можно только через php://input, так как глобальные массивы $_POST/$_GET будут пустыми.
    Ответ написан
    Комментировать