#php #session #logic
#php #сессия #Логические
Вопрос:
Вот идея …….У меня есть index.php ……. Приложение имеет только одну страницу, как и стена facebook, если пользователь вошел в систему, он может видеть свою «стену», но если он не вошел в систему, он видит страницу регистрации ……..
Должен ли я поместить все эти логины в index.php ? или мне нужно разделить два index.php … один из них logined_index.php, и notLogined_index.php ??
Более того, как я могу предотвратить кого-либо, кто не зарегистрирован в index.php ? Спасибо.
Ответ №1:
Если ваше приложение останется небольшим, нет необходимости в отдельном файле. Вы можете использовать что-то вроде этого:
<?php
session_start();
if (!isset($_SESSION['uid']) | $_SESSION['uid']=='') $_SESSION['uid']=0;
if($_SESSION['uid']!=0) {
if (/* user logs out */) {
session_destroy();
/* show register/login form */
}
else {
/* main page code goes here */
}
}
else {
if (/* register details entered */) {
if (/* register details valid */) {
/* register the user and display it all went successful */
}
else {
/* wrong register info - display error */
}
}
else if (/* login details enetered */) {
if (/* user exists and login correct */) {
$_SESSION['uid'] = /* set the id of the logged user */;
/* log user in and redirect to main page */
}
else {
/* wrong login info - display error */
}
}
else {
/* show register/login form */
}
}
?>
Это всего лишь простая компоновка кода для построения.
Ответ №2:
Я предлагаю вам поместить страницу входа в отдельный файл и перенаправлять туда с каждой страницы, требующей входа, например, с этой:
<?php
// at the very beginning of index.php
if($not_logged_in){
// redirect user to a login page
header('Location: /login_please.php?return_to='.urlencode($_SERVER['REQUEST_URI']));
die();
}
?>
Ответ №3:
Вы должны понимать, для какой сессии.
Если это одностраничное приложение, вы могли бы создать свой index.php выступать в качестве контроллера и может создавать отдельные шаблоны или представления для входа и регистрации.
И проверьте, что запрашивает пользователь, если ему не разрешен доступ к этой странице без входа в систему, проверьте сеанс и перенаправьте их на регистрацию или вход в систему. если они уже вошли в систему, перенаправьте их на свою стену или защищенную страницу.
для примера
session_start()
if(isset($_SESSION['user_id']))
{
//user is logged in and redirect them to main page
}
else
{
//ask him to register or log in
}