所以,首先我是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;
答案 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 } ?>