2014-08-31 97 views
1

在Home.html文件中的头,我用这样

<?php 
@session_start(); 
if( $_SESSION['flag']==1) 
echo'<script>window.location="login.html";</script>'; 
?> 

的$会话功能,而在上面的代码,它只是将用户定向到,如果他们的登录文件尚未登录。


我现在想的是,如果用户还没有登录那么他们仍然能够接取Home.html文件中但有一些内容,我想隐藏的注册用户。

我使用此代码生成此:

$(document).ready(function(){ 
$check=1; 
$("span").click(function(){ 
    if($check==0) 
    { 
     $("#login").show(); 
     $("#logout").hide(); 
    } 
    else 
    { 
     $("#logout").show(); 
     $("#login").hide(); 
    } 
}); 
}); 

所以我的问题,现在,我需要在HTML文件的标题来更改(会话功能),以便它可以与合并$检查功能“

+1

如果你想隐藏用户的一些内容,当你没有加入时,为什么你不把HTML内容放在你的条件如下:if($ _ SESSION ['logedin']){echo'Your HTML Code'} – Zeeshan 2014-08-31 13:12:49

+0

是的,这就是我想要做的。我只是有点混淆如何将会话功能与Javascript结合起来。 – 2014-08-31 14:38:06

回答

2

你必须结合PHP和JavaScript有点像下面的例子:?

$(document).ready(function(){ 
    var check = <?= $_SESSION['flag'] ?>; 

    $("span").click(function(){ 
     if(check==0){ 
      $("#login").show(); 
      $("#logout").hide(); 
     } else { 
      $("#logout").show(); 
      $("#login").hide(); 
     } 
    }); 
}); 

所示示例等待$ _SESSION [‘标志’]作为整数值为$ _SESSIO N ['flag']一个字符串,你必须在引号中设置check var。

+0

我认为这是我正在寻找的,但我仍然有点混淆如何安排在JavaScript代码中,并将其结合在会话功能。 – 2014-08-31 14:36:36

+1

更新了代码示例。您不需要在我们的home.html标题中使用php重定向。但要小心!这仅用于设计目的。如果你的内容只能被登录用户看到,你应该使用正确的php代码。如果您使用JavaScript,可以在html源代码中看到内容。 – Marcel 2014-08-31 15:20:41

+0

我明白了。谢谢。 – 2014-08-31 15:50:48

3

它不是一个好主意,所有这一切与JavaScript。所有用户需要从浏览器中输入view source,他们会看到您想要隐藏的页面的所有部分。

使用PHP来决定在发送之前放入页面的内容,而不是隐藏发送的内容。

而且

<?php 
@session_start(); 
if($_SESSION['flag']==1) 
echo'<script>window.location="login.html";</script>'; 
?> 

是一个糟糕的方式做网页重定向,因为它有整个页面发送到浏览器只是为JavaScript的浏览器重定向到另一个页面。 更好的办法:

<?php 
    session_start(); 
    if(! isset($_SESSION['flag']) || $_SESSION['flag'] == 1) { 
     header('Location: login.html'); 
     exit; 
    } 
?> 

现在PHP只是将头到浏览器,告诉它去到另一个网页。另外,你不会无缘无故地运行其余的这个scritp。

+0

谢谢,它可以帮助我改进我的代码。但我仍然无法接受答案,我只是投了票。然而,有一点我更想知道,它是'使用PHP来决定在发送之前在页面中放入什么'你能给我一个更多的解释吗?再一次,谢谢。 – 2014-08-31 14:35:19