2014-12-18 6 views
3

Я знаю, что это может быть очень глупый вопрос, но, пожалуйста, имейте в виду, что это мой первый проект в области веб-разработки и программирования
Я разрабатываю веб-сайт производителя CV
Я сделал этот интерфейс с помощью предопределенного шаблона: , и как только пользователь вошел в систему, я перенаправляю на другую страницу myResume.php, где он должен ввести свою информацию, и вот, вот интерфейс: . Теперь возникает мой вопрос: как я должен отслеживать пользователя после входа в систему? Я имею в виду, как я могу убедиться, что никто не видит эту страницу, если он не вошел в систему первым? Используя мой дизайн, каждый может видеть страницу myResume с помощью определенного URL-адреса, например: http://www.example.com/myResume.php
Reformulation: возможно ли ограничить перенаправление myResume.php только из файла login.php?
СпасибоОтслеживать пользователя на моем сайте

+5

сеансовое печенье! –

+0

http://www.formget.com/login-form-in-php/ –

+2

Вы пытались выполнить поиск по ключевым словам «php», «login», «authentication» или их комбинацию? Я уверен, что Google и Stack Overflow будут иметь множество результатов. –

ответ

2

Я просто сделал это как 2 дня назад для сайта я создаю.

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

Следующим шагом под login.php будет настройка переменной $_SESSION['user_id'] в php. Это соответствует сеансу пользователя для сеанса сервера. Эта переменная - это помощь на стороне сервера с ключом доступа, хранящимся в локальных файлах cookie, для соответствия сеансу пользователю. What is a Session?

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

session_start(); 
if(empty($_SESSION['user_id'])){ 
    header('Location: login.php'); 
} 

Если вы хотите выйти из системы, вы делаете что-то вроде этого. Вы отправляете их в logout.php, а в файле logout.php вы просто имеете это утверждение.

session_start(); 
session_destroy(); 
header('location: login.php'); 

Вы должны начать свою сессию на каждой странице, прежде чем сможете, используйте, установите, уничтожьте переменные сеанса.

2

Ответ на сессии: PHP manual on sessions

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

Посмотрите tiztag tutorial on sessions или a sitepoint tutorial on sessions

HTH

+0

Спасибо за ваш ответ, так что теперь, используя сеанс, достаточно проверить для session_is_registered (username)?Если он не зарегистрирован, я перенаправляю пользователя на страницу входа в систему? Еще раз спасибо –

+1

Нет, сеанс - это особое место для хранения данных. Если вы просто убедитесь, что там, то это не скажет вам, что на самом деле в нем. Мы обращаемся к нему как к ассоциативному массиву, поэтому сначала (если вы работаете в php) вам нужно его запустить, тогда вам нужно сохранить в нем данные пользователя. Как только они там, вы можете установить такие переменные, как (снова в php) $ _SESSION ['isValidUser'] (например), которые могут прочитать каждая другая страница, и посмотреть, должны ли они позволить пользователю иметь доступ или нет. Есть соображения о размере (большинство серверов позволяют вам иметь максимум 4000 символов), но сначала сначала. – gedq

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