html — смена IFrame src с php после входа пользователя

Итак, прежде всего я довольно новичок в 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?
}

?>

0

Решение

Вам не нужно ничего делать на вашей странице входа в 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

Другие решения

Что я делаю на своем сайте, чтобы проверить, если пользователь в сети, я использую этот код 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 } ?>
0

По вопросам рекламы [email protected]