登录并重定向到网页

时间:2012-06-18 10:44:33

标签: php html

我有一个网站,其中一部分应该通过登录来阻止 我使用了一个登录表单,可以在网络上的任何地方找到(参见Redirect to home page after login php

我更新了一些元素(使用$ _SESSION等)

所以我的登录页面是index.html

我已经把

<?php
session_start();
if(!$_SESSION['username'] = $username){
header("location:index.html");
}
?>

在login_success.php文件的开头 从该文件中,您可以访问该网站的所有其他页面。

我现在的问题是:

我必须在我网站的每个页面的开头放置“session_start()等”

并且每个页面都必须有.php而不是.htm吗?

(我试图保留.htm,但如果您知道页面的名称,那么无需登录即可访问这些页面)

如果你知道更好的网站登录保护脚本,请告诉我,最好是在php中。

感谢您的帮助。

6 个答案:

答案 0 :(得分:1)

您必须将“session_start()等等放在网站每个页面的开头

每个页面都必须有.php扩展名

答案 1 :(得分:1)

是的,你需要在每一页都有它。

每个页面都必须是.php。

一种常见的方法是让一些'config.php'具有session_start();和其他配置/常见的东西。

所以页面看起来像是:

<?php

include('config.php');

?>

一般来说,将所有内容都设为.php更清晰,更改html文件的扩展名不会对任何内容产生任何影响。并允许您根据需要向其他人介绍php。

答案 2 :(得分:1)

是的,您必须将该代码放在每个页面中。您可以将其放在一个文件中,并将其包含在需要登录的所有其他文件中。

您可以访问所有页面,因为条件部分中的代码错误。您不是比较,而是为会话变量分配值。

使用以下代码:

<?php
session_start();
if($_SESSION['username'] != $username){
header("location:index.html");
}
?>

为了预防,请记住,在header()

之前,它不能回显任何输出

答案 3 :(得分:0)

放这个脚本:

<?php
session_start();
if($_SESSION['username'] != $username){
header("location:/index.php");
die("you should be login")
}
?>

在名为 check.php

的php文件中

并在每个非公开的页面中添加:

<?php
include_once("check.php");
?>
<html>
.....

答案 4 :(得分:0)

我的两分钱:

  • 在用户登录时设置Cookie。
  • 生成html的每个php文件都应该有一个check_login函数或者类似的东西来检查用户是否已经登录 - 如果是,则生成页面,如果没有重定向到登录页面。

要重定向到其他页面,您可以使用<? header("location: http://.........."); ?>

答案 5 :(得分:0)

更好的解决方案是使用一个使用单个index.php(或startup.php等)的框架来处理页面请求。然后,在处理页面请求之前,您必须在此start_session()check_login()index.php进行一次...