Помните поля на страницах? - PullRequest
1 голос
/ 14 апреля 2011

У меня есть это: main.php:

ID: <input name="id" id="id" type="text" size="20" value="<?php echo $_POST['id']; ?>"><br>
Password: <input name="password" id="password" type="password" value="<?php echo $_POST['password']; ?>" size="20">

Файл main.php - страница индекса.

Файл main.php - это форма с действием = "main.php"

Когда я перехожу из main.php в console.php, я не получаю значения id и пароль.

Когда я перехожу из main.php в plugins.php, я не получаю значения idи пароль.

Из main.php вы можете попасть в plugins.php и console.php.Но тогда вы не получите значения.

Я знаю, почему это происходит.

Как это исправить?Как я могу сделать так, чтобы при переходе на console.php или plugins.php поля оставались в памяти?

Сессии слишком сложны для изучения.Есть ли другое решение?

Ответы [ 2 ]

3 голосов
/ 14 апреля 2011

Слишком сложно? Проще говоря, в верхней части каждой страницы, с которой вы хотите использовать сеансы, используйте session_start(). Теперь вы хотите сохранить что-то в сеансе?

#page1
session_start();
$_SESSION['foo'] = 'bar';

#page2
session_start();
echo $_SESSION['foo'] #echoes bar

unset($_SESSION['foo']); #destroy foo
#if you want to discard the entire session, use
session_destroy(); #going down! 

Итак, в вашем случае, может быть что-то вроде:

#main.php
session_start();
if (isset($_POST['id'], $_POST['password'])) {
    $_SESSION['id'] = $_POST['id'];
    $_SESSION['password'] = $_POST['password'];
}
#rest of main.php

#console.php and plugins.php
session_start();
if (isset($_SESSION['id'], $_SESSION['password']))
    #do stuff

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

Для получения дополнительной информации:

1 голос
/ 14 апреля 2011

1) Учим занятия.И никогда не передавайте чей-то пароль.Вы должны хешировать пароль и сравнить его с хешированным значением в вашей базе данных.Когда вы проверили совпадение, вы можете сохранить в сеансе переменные, которые аутентифицированы пользователем - вам больше не нужно знать, какой пароль они отправили.

2) Поймите, что когда вы отправляете HTML-форму,action формы - единственная страница, которая может делать что-либо напрямую с параметрами опубликованной формы.

...

Старайтесь не отказываться от изучения этих вещей - они были созданы длясделайте вашу жизнь проще, а не сложнее.

Пример классов аутентификации PHP для использования

...