1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

вопрос про доступ к странице

Тема в разделе "Web Coding", создана пользователем umjammer, 5 фев 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. umjammer

    umjammer

    Регистр.:
    4 июн 2007
    Сообщения:
    283
    Симпатии:
    19
    Скажите пожалуйста как организовать следующий механизм:
    Есть страница с формой(например test.ru/?add)
    После заполнения данной формы человек должен попасть на следующую страницу (например forms.html). Нужно сделать так, чтобы нельзя было попасть на страницу forms.html путем простого набора ее адреса в браузере (test.ru/forms.html). Доступ к ней должен осуществляться только с конкретной страницы.
     
  2. Voldurike

    Voldurike Писатель

    Регистр.:
    1 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    Переменная _SERVER["HTTP_REFERER"]
    содержит полный адрес откуда пришел пользователь на эту страницу к примеру:http://****/voldurike/main.php

    Задай проверка, чтобы переменная содержала нужный адрес и все
     
  3. bueno

    bueno Читатель

    Заблокирован
    Регистр.:
    7 май 2007
    Сообщения:
    236
    Симпатии:
    69
    пологаю тут стоит подумать над алгоритмом сначала..
    самому писать лень, тут хорошая статья на тему..
    http://dklab.ru/chicken/nablas/17.html

    а так, а принимающем скрипте пишешь что то типа
    PHP:
    if(empty($_SERVER["HTTP_REFERER"]) or !eregi('адрес_откуда_должен_быть переход'$_SERVER["HTTP_REFERER"])){
        
    header('Location: адрес_скажем_страницы_с_формой');
        exit();
    }
    // тут действия
     
    umjammer нравится это.
  4. itex

    itex

    Регистр.:
    15 ноя 2007
    Сообщения:
    274
    Симпатии:
    64
    У некоторых рефферы отключены, лучше делать через сессии или куки.
     
  5. umjammer

    umjammer

    Регистр.:
    4 июн 2007
    Сообщения:
    283
    Симпатии:
    19
    можно подробнее?
     
  6. bueno

    bueno Читатель

    Заблокирован
    Регистр.:
    7 май 2007
    Сообщения:
    236
    Симпатии:
    69
    так и куки могут быть отключены или ограниченны, что куда как чаще встречается..

    речь идет об этом
    http://ru2.php.net/manual/ru/ref.session.php
    например инициализируешь сессию, в скрипте с формой заносишь в нее переменную с каким-либо значением, а в принимающем проверяешь переменную на наличие и значение.. в принципе подход тот же..

    другое дело, если у тебя и форма и обработка в одном файле (имхо в идеале так и делать).. тогда просто в начале проверяешь глобальный массив $_POST на наличие нужных значений.. если есть - обрабатываешь, и реферишь скрипт сам на себя (или еще куда), чтоб $_POST очистить, если нет - показываешь форму..
    и никакой головной боли ни с куками, ни с реферами..
     
    umjammer нравится это.
  7. Datacopy

    Datacopy Писатель

    Регистр.:
    15 авг 2007
    Сообщения:
    3
    Симпатии:
    0
    bueno, а если количество таких форм динамически меняется? (например, формы генерируются в зависимости от каких-либо параметров клиента)?

    Что в таких случаях делают?
    Заводить массив таких переменных?

    Просто как тогда потом узнать какому элементу массива соответствует какая-то данная форма?
     
  8. bueno

    bueno Читатель

    Заблокирован
    Регистр.:
    7 май 2007
    Сообщения:
    236
    Симпатии:
    69
    ну ведь генерация формы подчинена какой-то логике.. следовательно по данной логике ты и данные формы обрабатывать можешь..

    а если форм много, и ты не знаешь от какой могут прийти данные, никто не мешает передать указатель формы, например, через $_GET (<form action="?formID=formX">) или дополнительным скрытым полем (через $_POST) - <input type="hidden" name="formID" value="formX" />.. ну а при приеме данных в зависимости от указателя формы выбрать соответствующую логику..
     
  9. nami144

    nami144 Постоялец

    Регистр.:
    10 ноя 2007
    Сообщения:
    61
    Симпатии:
    19
    С точки зрения безопасности лучше всего при входе юзера на страницу назначать ему какой-нибудь ID и привязывать его к айпи и куке (сюръективно), а ID сохранять на сервере в базе, либо в файле, либо еще как. И на второй странице делать вызов функции, дающей сюръекцию на множество файлов от наших парметров и проверять его наличие. Если есть - пускать, иначе - нет. И таймаут добавить.
     
  10. bueno

    bueno Читатель

    Заблокирован
    Регистр.:
    7 май 2007
    Сообщения:
    236
    Симпатии:
    69
    nami144 и вот нафига все это?.. проверяешь точное соответствие рефу и наличие не пустого пост массива / указателя формы и все.. не совпадает и/или нет рефа и пустой пост / неизвестная форма - не обрабатываешь данные.. вот и вся тебе "сюръекция" - хер прорвешься..
     
Статус темы:
Закрыта.