Php 如何在登录前后分离应用程序逻辑?
这是我的想法。。。我有一个 index.php。。。该应用程序只有一个页面,就像facebook墙一样,如果用户登录,他们可以看到他们的“墙”,但如果他们没有登录,他们会看到一个注册页面 我应该把所有这些登录名都放在index.php中吗?或者我需要分开两个index.php…一个是logined_index.php,另一个是notLogined_index.phpPhp 如何在登录前后分离应用程序逻辑?,php,session,logic,Php,Session,Logic,这是我的想法。。。我有一个 index.php。。。该应用程序只有一个页面,就像facebook墙一样,如果用户登录,他们可以看到他们的“墙”,但如果他们没有登录,他们会看到一个注册页面 我应该把所有这些登录名都放在index.php中吗?或者我需要分开两个index.php…一个是logined_index.php,另一个是notLogined_index.php 此外,如何防止未登录index.php的用户?多谢各位 我建议您将登录页面放在一个单独的文件中,并从每个需要登录的页面重定向到该文
此外,如何防止未登录index.php的用户?多谢各位 我建议您将登录页面放在一个单独的文件中,并从每个需要登录的页面重定向到该文件,例如:
<?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();
}
?>
我建议您将登录页面放在一个单独的文件中,并从每个需要登录的页面重定向到该文件,例如:
<?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();
}
?>
您应该了解会话的目的 如果是单页应用程序,您可以让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
}
您应该了解课程的目的 如果是单页应用程序,您可以让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
}
如果您的应用程序仍然很小,则不需要单独的文件。您可以使用以下内容:
<?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 */
}
}
?>
这只是一个简单的代码布局,可供构建。如果您的应用程序仍然很小,则不需要单独的文件。您可以使用以下内容:
<?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 */
}
}
?>
这只是一个简单的代码布局