PHP логин и регистрационная форма - PullRequest
0 голосов
/ 04 марта 2012

Я новичок в php .. Я просто хочу спросить, как проверить, является ли пользователь логином или нет ..

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

Это должно сначала подсказать мне форму входа, потому что я еще не вошел в систему ..

Как бы я это сделал ?? Пожалуйста, помогите мне .. Спасибо заранее ...

Ответы [ 4 ]

3 голосов
/ 04 марта 2012

Вот один подход.

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

session_start();

Затем, когда пользователь входит в систему с действительными учетными данными, сохраните некоторую информацию в глобальном массиве $ _SESSION. Например, если у вас есть функция входа в систему ($ username, $ password), которая возвращает строку из вашей пользовательской базы данных (или пользовательского объекта):

if ($user = login($username, $password)) {
    $_SESSION['user'] = $user->id;
    // Probably store some other stuff about the user here too
}

Чтобы проверить, вошли ли вы в систему:

if (!empty($_SESSION['user'])) { /* .. */ }

И выйти из системы:

$_SESSION['user'] = false;

Или

unset($_SESSION['user']);

Очевидно, что это упрощенно, и вы, вероятно, захотите взглянуть на такие вещи:

  • Изменение идентификатора сеанса по умолчанию с помощью функции session_id ($ id)
  • Создание объекта или серии функций вокруг вашей сессии
  • Автоматическое заполнение и обновление информации о вашем пользователе

Но это только начало.

Также см .:

2 голосов
/ 04 марта 2012

Взгляните на PHP Сессии .Вы можете использовать $ _SESSION для хранения постоянной информации о пользователях, независимо от того, зарегистрированы они или нет.

0 голосов
/ 04 марта 2012

Вы должны проверить, какая форма была отправлена ​​в вашем php-коде, используя атрибут name ваших форм.Так что, если ваша форма входа имеет name="loginForm", а регистрация имеет name="regisForm", то в вашем коде сделайте это

  if(isset($_REQUEST['loginForm'])) {

     ...//do something with loginForm
  }
  else if(isset($_REQUEST['regisForm'])) {

  ..//do something with regisForm

 }
0 голосов
/ 04 марта 2012

Вы должны хранить информацию о том, вошел ли пользователь в систему или нет, таким образом, чтобы вы могли проверять ее на каждой последующей странице.Обычно это делается с помощью так называемых сеансов - подробностей было бы слишком много для этого ответа здесь - я настоятельно рекомендую вам узнать о сеансах в PHP.Другим (более простым) способом было бы сохранить тот факт, что пользователь вошел в cookie , но это обычно не так хорошо, как это может быть легко подделано.Но использование куки может быть быстрым и грязным подходом, пока вы не изучите детали переменных сеанса.В любом случае вы должны узнать больше для достижения своей цели здесь.Вы можете обнаружить, что легко выглядящие задачи могут стать довольно сложными, когда вы начнете их реализовывать.Чем проще для пользователей, тем больше работы должен выполнять кодер.Но это также делает программирование интересным в долгосрочной перспективе ... Не сдавайтесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...