За последние 24 часа нас посетили 22817 программистов и 1268 роботов. Сейчас ищут 763 программиста ...

Отправка данных при переадресации

Тема в разделе "PHP для новичков", создана пользователем eanautt, 20 июл 2017.

  1. eanautt

    eanautt Новичок

    С нами с:
    10 июл 2017
    Сообщения:
    27
    Симпатии:
    0
    Такой вопрос у меня есть страница профиля на которой проверяется авторизован ли пользователь, если нет, то средствами js выполняется переадресация пользователя на страницу входа (example.ru/login.php?act=nologin). Там передаётся get переменная со значением 'nologin'. А на странице входа проверяется
    PHP:
    1. If( isset($_get['act'])) {
    2. Echo 'вы не авторизованы';
    3. }
    Но проблема в том, что если просто пользователь введет в строке login.php?act=nologin, то пользователь увидит это сообщение (и это понятно), но мне надо, чтобы данное сообщение выводилось только в том случае, если он был переадресован
     
  2. Васяня

    Васяня Активный пользователь

    С нами с:
    2 окт 2016
    Сообщения:
    238
    Симпатии:
    32
    Адрес:
    Россия, Приморский край, г. Находка.
    А ведь можно делать переадресацию средствами php
    PHP:
    1. header('Location: твой url')
     
  3. eanautt

    eanautt Новичок

    С нами с:
    10 июл 2017
    Сообщения:
    27
    Симпатии:
    0
    Понимаете нельзя сделать редирект если хотя бы 1 символ отправлен, а мне нужно обязательно отправить перед вызовом этой функции.
    Меня интересует другая сторона вопроса, как правильно получить это на странице входа
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    можно через буфер
     
  5. eanautt

    eanautt Новичок

    С нами с:
    10 июл 2017
    Сообщения:
    27
    Симпатии:
    0
    Хорошо, можно. Но как мне редирект php поможет решить мою проблему
     
  6. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @eanautt
    А потому что ты юзеру это позволяешь делать так как :D ты используешь GET параметр.
    а почему ты проверяешь GET параметр, при проверке пользователя? Если надо проверять, то лучше проверь $_SESSION ну или $_COOKIE.
    PHP:
    1. //если в сессии нет id юзера выкидываем его на страницу
    2. if (!isset($_SESSION['id'])){
    3. header ('location: example.ru/login.php?act=nologin');
    4. } else {//иначе разрешаем просмотр содержимого
    5. //тут содержимое что вы скрываете для не авторизованных
    6. }
    ну или можно так сделать:
    PHP:
    1. //тоже самое что и выше
    2. !isset($_SESSION['id']) ? переадресация : содержимое;
    Покажи нам свой JS как он редиректит, может кто ответит по другому.
     
  7. villiwalla

    villiwalla Активный пользователь

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    PHP:
    1.  login.php?act=nologin&redirect=1
    2.  
    3. if(isset($_GET['redirect']) && $_GET['redirect'] == true) {
    4. // Вывод сообщения
    5. } else {
    6. // Любые другие дела
    7. }