用户登录后,将IFrame-src从php更改为


Change IFrame src from php after user login

所以,首先我对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?
}

?>

您不必在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 } ?>

这是最简单的方法。

我在我的网站上做什么来检查用户是否在线我使用这个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 } ?>