Autor Zpráva
Ofi
Profil *
Dobrý den,
mám problém, mam docela rozsáhlé stránky a protože je potřebuji rychle ale kvalitně dokončit tak používám iframe prozatím místo AJAXových obdobných řešení, kterými se budu zabývat až stránky pojedou. každopádně nevíte jak ovládat index pomocí stránky která je načtená v iframu na tom indexu?

Konkrétně : mam vytvorene sessions a kontroluji casovy delay mezi akcemi a ve chvili kdy rozdil mezi akcemi je vic jak 20 minut tak bych chtel aktualizovat cely index, jenze me se vzdycky aktualizuje jen ta stranka v iframu. Nejlepe bych toto reseni mel v php vzhledem k tomu, ze je to manipulace na zaklade sessions, ale asi to bude muset byt nejak pres JS DOM. Pls poradte. Diky.
Ofi
Profil *
Tak jsem nic na toto nenašel ale kdyby to někoho zajímalo tak jsem to vyřešil triviálně:

na tu stránku v iframu jsem testoval, jestli čas neaktivity je větší než 20 min a pokud jo přidal jsem do stránky skrytý div:

<?php
session_start();
header("Cache-control: private");

if($_SESSION['is_logged'] == 1) {
	if($_SESSION['time'] < Time()) {
		$_SESSION = Array();
		session_destroy();
		?>
		<div id="loggedOut" style="display:none">
		1
		</div>
		<?php
	} else {
		$_SESSION['time'] = Time() + 1200;
	}
}
?>


na indexové stránce jsem si vytvořil takovýto javascript:
function userLoggedOut() {
if(document.getElementById('topic').contentWindow.document.getElementById('loggedOut')) {
//refresh stránky
};
}

a funkci volám (tedy testuji vypršení času v iframu) při každé akci na indexu...

Funguje to přesně jak potřebuji, stránka se refreshuje jen po neaktivitě uživatele a následné akci v iframu...

pokud někdo zná přesto jak přistupovat z iframu k indexu, budu rád když to ukáže, tohle je totiž spíš taková objížďka že? :D
Ofi
Profil *
dodatek: omlouvám se, že jsem nedal ten druhý script do pre, ale už to nemuzu upravit...
Ofi
Profil
Jo tak sem chtěl jen dodat eště, že stačilo tohle :

<?php
session_start();
header("Cache-control: private");

if($_SESSION['is_logged'] == 1) {
	if($_SESSION['time'] < Time()) {
		$_SESSION = Array();
		session_destroy();
		?>
		<script type="text/javascript"><!--
			window.open('index.php', '_parent');
		--></script>
		<?php
	} else {
		$_SESSION['time'] = Time() + 30;
	}
}
?>


tak trochu se stydim, že mě to nenapadlo dřív ;) ale to že tu nikdo nebyl schopen odpovědět, mě trochu omlouvá :D

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: