Итак, прежде всего я довольно новичок в 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, имеет форму входа. После входа в систему я хочу изменить src IFrame выше на другую страницу. Я просто понятия не имею, как это сделать, я искал некоторое время, но не получил много результатов (я действительно не понимал те, которые я получил, 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 } ?>