За последние 24 часа нас посетили 16637 программистов и 1650 роботов. Сейчас ищут 2014 программистов ...

1 запрос в 2 таблицы + матчасть

Тема в разделе "MySQL", создана пользователем ArsNet, 6 дек 2016.

  1. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну давай допустим рассмотрим такую ситуацию волшебную, когда некий мощный волшебник похожий на гаррипоттера решил подменить айди и прикинуться гермионой, а тут раз и логин с паролем.

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

    Так что если ты такой сценарий допускаешь, то можешь на логин с паролем забить и пойти пересматривать свой сценарий =) Потому что этого допускать нельзя.

    ключ и значение в сессии он удаляет, да. Сессию как таковую не разрушает. Для этого есть специальная функция session_destroy(). Важно называть вещи своими именами. Это важно не только в программировании.

    если тебе надо прервать к фигам всё выполнение всего скрипта, то да. Но зачем? И если ты хочешь сделать редирект, то лучше пользоваться заголовком header("Location: http://example.com/myOtherPage.php"); но всё равно лучше не рвать ничего, а проектировать свой скрипт так, чтобы его не надо было прерывать.
     
    denis01 нравится это.
  2. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
    Хорошо тогда каким образом ты предлагаешь защитить страницу от прямого обращения извне? Например http://blabla.bla/mail.php
     
  3. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну вот допустим вот так, что я в конфиге сервера принудительно все запросы направляю на index.php такой вот я хитрован.
     
    denis01 нравится это.
  4. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
    Не так дело не пойдет. Нужна проверка на существование пользователя и авторизирован ли он
     
  5. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    она обязательно должна быть. Но проверка на авторизованность пользователя никак не связана с тем, что все запросы должны идти на один index.php.
     
    ArsNet и denis01 нравится это.
  6. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
    Все запросы внутри сайта и так идут на index этот идет на login вне сайта. Короче авторизировался хуячим через index. Не авторизировался ? нафиг с index. пиздуй на login.php
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    зачем? =)

    не, ну хозяин барин, но смысла в этом нет. Не авторизовался - смотри login.php, а не пиздуй на login.php

    а что за движок сайта?
     
    ArsNet и denis01 нравится это.
  8. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
    самописный с нуля
     
  9. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а писан кем? тобой?
     
    ArsNet нравится это.
  10. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
  11. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    круто. старайся дальше, понимание как лучше делать придёт с опытом и шишками. :D
     
    ArsNet нравится это.
  12. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
    ну вот и пытаюсь тыкаюсь мыкаюсь. пробую дописываю переписываю
     
  13. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    подумай над этим.
     
    ArsNet нравится это.
  14. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
    ты предлагаешь перекинуть в index.php а в него уже интегрировать login.php?
    Код (Text):
    1. <?
    2. if(!isset($_SESSION['id'])){
    3. include("login.php")
    4. }
    5. ?>
    Но мне необходимо чтобы чтобы пользователю отображалась только форма авторизации и ни кокой информации с самого сайта.
     
  15. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в индекс.пхп должен жить только ну скажем так роутер. Файлы страниц где-то ещё.
     
    ArsNet нравится это.
  16. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
    Ну он у меня впринципе так и живет. Все на сайте выведено через index.php?page=blablabla только вот авторизация и проверка отдельно
     
  17. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    тебе это не нужно
    тебе нужно вместо $_GET['page'] использовать $_SERVER['REQUEST_URI']
     
    ArsNet нравится это.
  18. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
    Хм... Интересно а поподробнее с этого момента можно
    --- Добавлено ---
    Если я понимаю правильно, то Вместо $_GET['page'] использовать $_SERVER['REQUEST_URI'] и из него уже вытаскивать значение переменной page ?
     
  19. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    да. он там всегда. не нужен рерайт урла в переменную.
     
    ArsNet нравится это.
  20. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
    Спасибо сейчас попробуй что из этого получится. А еще что нить подсказать можешь пользительного?

    А как саму переменную вытащить с него?
     
  21. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Не надо вытаскивать, урл и есть $_SERVER['REQUEST_URI'].
    Используй parse_url() функцию

    учи английский, а то даже значиение названия переменной от тебя ускользает. :D Они ж не просто так называются.
     
    ArsNet нравится это.
  22. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
    А че не так с английским?
    --- Добавлено ---
    Чет я понять не могу. мне вытащить значение переменной page?

    сделал вот так:
    Код (Text):
    1. $page = $_SERVER['REQUEST_URI'];
    2. $page = parse_url('page');
    3. var_dump($page);
    Выводит:
    array (1){["path"]=>string(4) "page"}

    Как теперь switch организовать не догоню никак
     
  23. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    =) чета тебя заглючило
    var_dump( $_SERVER['REQUEST_URI'] );
    var_dump( parse_url( $_SERVER['REQUEST_URI'] ) );

    во!
     
    ArsNet нравится это.
  24. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
    Меня еще и не так накрыть может )))

    Ну вот туплю жестко. Мне желательно 1 раз носом ткнуть как правильно зато на всегда запомнится.
    Вывел он мне string(20)"/main.php?page=glav array(2){["path"]=>string(9)"/main.php"["query"]=>string(10)"page=51840"}

    Что теперь и как с этим делать?
     
  25. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    тебе надо не "/main.php?page=glav" запрашивать, а просто /glav
    но роутить запросы на главную точку входа, где ты и будешь потрошить реквест_ури
     
    ArsNet нравится это.