我有一个网站,其中一部分应该通过登录来阻止 我使用了一个登录表单,可以在网络上的任何地方找到(参见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中。
感谢您的帮助。
答案 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)
我的两分钱:
要重定向到其他页面,您可以使用<? header("location: http://.........."); ?>
答案 5 :(得分:0)
更好的解决方案是使用一个使用单个index.php(或startup.php等)的框架来处理页面请求。然后,在处理页面请求之前,您必须在此start_session()
内check_login()
和index.php
进行一次...