Ответы пользователя по тегу PHP
  • Как заставить сохранять сессии в Iframe, открытом в приватной вкладке?

    PageUp
    @PageUp Автор вопроса
    Default
    А ответа так и нет.
    Даже если создать принудительно сессии через Javascript, то на первом же переходе со страницы на страницу все обнуляется.
    Сайт без сессий не работоспособный.
    Ответ написан
    Комментировать
  • Как обезопасить такой get запрос?

    PageUp
    @PageUp
    Default
    Я при передаче от клиента (приложения) данных в код php через GET делал так, создал свой уникальный ключ (любой набор символов и знаков, куча всего), он так же передается на сервер в GET запросе, а в PHP коде внутри идет проверка если значение ключа из GET совпадает с заданным в PHP файле, то только тогда GET запрос пропускать.

    Соответственно извне тебе левый GET запрос не передадут не зная ключа твоего. Но это все равно не надежно, GET запросы могут перехватывать. Что уж говорить про браузер, где все это видно прямо в адресной строке. Тут уж лучше закрытыми данными передавать
    Ответ написан
    Комментировать
  • Почему перестал работать сайт при смене php с 7.4 на 8.0.1?

    PageUp
    @PageUp
    Default
    Что бы понять из-за чего именно перестало работать нужно смотреть строки со значениями указанными в сообщениях об ошибках.

    Номера строк написаны после .php:
    Ответ написан
    Комментировать
  • Регистрация/авторизации с помощью соц сетей?

    PageUp
    @PageUp
    Default
    Что бы ID из разныхь соц.сетей не перепутались и не перемешались лучше всего создать отдельную таблицу с данными и разбить ее по названиям соц.сетей.

    Берете ID пользователя, который прилетает от соц.сети (у всех соц.сетей есть эти ID и как правило они идут первыми и основными данными). Эти ID внутренние и очень часто они не совпадают с публичными, которые видно в адресной строке, когда заходите в профиль человека в соц.сети.

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

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

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

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

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

    PageUp
    @PageUp
    Default
    $_SESSION['golos'] = $login;
    
    if($login != $_SESSION['golos'] ){
    
    }else{
    Ответ написан
  • Как устранить Undefined array key после назначения переменных через explode()?

    PageUp
    @PageUp Автор вопроса
    Default
    Кому нужно будет решение, то вот. Нашел на западном аналогичном этому сайте. Работает как надо. Все ошибки касательно explode и не назначенных переменных пропали.

    $data=explode("|", $file[0] ?? '');
    Ответ написан
  • Как создать маску для нескольких частей названия файла?

    PageUp
    @PageUp Автор вопроса
    Default
    Решение нашел сам.

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

    PageUp
    @PageUp Автор вопроса
    Default
    Разобрался сам. Всем спасибо.

    $basket[$rs[0]]=$rs[1];
    Ответ написан
    Комментировать
  • Есть ли на PHP функция разбития числа на несколько круглых частей?

    PageUp
    @PageUp Автор вопроса
    Default
    Нашел как добиться этого, но не с помощью одной функции. Вот, может кому ни будь пригодится:

    $x = 29; // само число
    $chast = 3 ;//части.
    for ($i = 1; $i < $chast; $i++)
    {
    $temp[$i] = $x - rand(1, $x);
    $x = $x - $temp[$i];
    }
    $temp[$chast] = $x;
    print_r($temp);
    Ответ написан