用户登录后从php更改IFrame src

时间:2014-09-17 02:19:56

标签: php html iframe

所以,首先我是HTML / PHP / Javascript的新手,所以请耐心等待。

我的index.html文件

上有以下内容
 ...
 <body>
     <div id="content">
          <iframe width="100%" height="100%" frameborder="0" src="home.html" name="content_frame"/>
     </div>
 </body>
 ...

如您所见,它是一个包含其他页面的简单IFrame。另一个页面home.html有一个登录表单。用户登录后,我想将上面的IFrame的src更改为另一个页面。我只是不知道该怎么做,我搜索了一段时间但没有得到很多结果(我真的不明白我得到的那些,tbh)。

PHP登录截至目前为止:

<?php
ob_start();
session_start();

$username = $_POST['username'];
$password = $_POST['password'];

... //gets user/pass from mysql database, bla bla bla 

if($hash != $hash2) // Incorrect password.
{
    //go back to login page
    header('Location: ../index.html');

}else{ // Successful login.

    session_regenerate_id();
    $_SESSION['sess_user_id'] = $userData['id'];
    $_SESSION['sess_username'] = $userData['username'];
    session_write_close();

    //change iframe src to home page
    //???? how?
}

&GT;

2 个答案:

答案 0 :(得分:1)

您无需在PHP登录页面上执行任何操作。当用户登录时,您正在激活两个会话变量$ _SESSION ['sess_user_id'],$ _SESSION ['sess_username']。因此,您可以检查是否设置了这两个变量中的任何一个,然后决定加载哪个iframe。

首先将index.html重命名为index.php,以便它可以运行php来做出决定,并通过在页面顶部添加以下行来启动会话:

<?php session_start(); ?>

然后将当前iframe行编辑为以下内容:

<?php if( isset($_SESSION['sess_user_id'] || isset($_SESSION['sess_username']) ) { ?>
    <iframe width="100%" height="100%" frameborder="0" src="some-other-page.html" name="content_frame" />
<?php } else { ?>
        <iframe width="100%" height="100%" frameborder="0" src="home.html" name="content_frame" />
<?php } ?>

这是最简单的方法。

答案 1 :(得分:0)

我在我的网站上做的是检查用户是否在线我使用这个PHP代码:

class Init {
  public static $logged_in = false;
  $session = intval($_SESSION['sess_user_id']);
      if(empty($session)){
            self::$logged_in = true;
      } else {
            self::$logged_in = false;
      }
}

在使用iframe的网站上,您可以检查用户是否已登录,如果是,则显示主页,如果没有显示其他页面。

<?php  if(Init::$logged_in){ ?>
  <iframe width="100%" height="100%" frameborder="0" src="nothome.html" name="content_frame"/>
<?php } else { ?>
  <iframe width="100%" height="100%" frameborder="0" src="home.html" name="content_frame"/>
<?php } ?>