2012-06-27 2 views
0

Добрый день,PHP переменные сессии и GET запрос

Я создаю веб-страницы, пользователи логин под названием «index.html», который данные сообщения на сайте «home.php», когда пользователь отправляет форму с «индексом .html «. Теперь, когда я вхожу в «home.php», я могу получить опубликованные переменные, проверить их на базе базы данных и проверить подлинность пользователя. Как только я нахожусь в файле «home.php», я хотел бы, чтобы пользователь выдал запрос GET на сайт «home.php» для отображения разных данных. Есть ли способ сделать это и поддерживать аутентификацию?

Сейчас я получаю уведомление о том, что переменные POST не определены. (Очевидно, что так как я ничего не разместить)

Notice: Undefined index: pass in C:\xampp\htdocs\home.php on line 7 

Спасибо, Matt

+0

Вы пытаетесь получить $ _POST ['pass'] в своем коде? Это ошибка E_STRICT (я думаю, теперь ее классы E_STRICT). Вы можете опустить сообщение об ошибке, если вы действительно хотели – Sammaye

+0

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

+0

Это еще большая проблема, понимание ... – Sammaye

ответ

1

ли это

$pass = isset($_POST['pass']) ? $_POST['pass'] : null; 
1

Вы можете, например, сделать это:

echo "<form method='post' action='home.php?parameter1=".$variable1."'>"; 

Тогда у вас есть как POST и GET переменные.

Редактирование: Но я думаю, что неправильно понял вас, используя переменные SESSION, чтобы сохранить аутентификацию через страницы.

2

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

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

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

Как только вы создадите свой токен, вы захотите сохранить его в месте перекрестного запроса; который может быть либо сессией, либо переменной cookie. Это в первую очередь предпочтение, но в любом случае вы должны убедиться, что он доступен только из HTTP-запроса, а не для JS-запроса, чтобы предотвратить XSS (межсайтовый скриптинг).Проверьте этот artickes на сеансы и печенье:

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

Смежные вопросы