2012-06-18 75 views
0

我有一个网站,该网站的一部分,应与登录 我用它到处都可以找到网络上的登录表单被封锁(见Redirect to home page after login php登录并重定向到网页

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

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

我已经把

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

在beginni ng这个文件中的login_success.php文件 您可以访问该网站的所有其他页面。

我的问题是现在:

我必须把“在session_start()等等。”在我的网站

的每一页的开头和做的每一页必须有.PHP代替.htm?

(我试图保持的.htm但比网页仍然没有登录访问,如果你知道这个网页的名称)

如果你知道一个网站的登录保护更好的剧本,请让我知道,最好在PHP中。

感谢您的帮助。

回答

1

业,你需要有它的每一页。

每页都需要.php。

一个常见的方法是有一些'config.php',它将有session_start();和其他配置/常见的东西。

所以页面看起来像:

<?php 

include('config.php'); 

?> 

一般来说它的清洁剂都作为.PHP,并改变你的HTML文件的扩展名也不会造成任何影响了。并允许您根据需要向其他网页介绍您的PHP。

1

你必须把“在session_start()等等。”在您的网站上

每一页每一页的开头必须有PHP扩展

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> 
..... 
+0

网页仍然会被发送,并且浏览器可以忽略302.也许在某处添加“die”? – FakeRainBrigand

+0

你确定这个'if(!$ _ SESSION ['username'] = $ username){'是正确的吗? – shadyyx

+0

@shadyyx抱歉,我没有看到它 – mgraph

0

我的两分钱:

  • 设置cookie当用户登录
  • 每个PHP文件生成的HTML应该有一个函数check_login或类似的东西来检查用户是否已经登录 - 如果他是,生成页面,如果没有重定向到登录页面。

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

1

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

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

使用下面的代码:

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

只是为了以防万一,记住,头之前一定不能呼应任何输出()

0

更好的解决方案是使用使用一个单一指标的一些框架。 PHP(或startup.php等)来处理页面请求。那么在处理页面请求之前,您必须在index.php之前只需要start_session()check_login()一次...