Cizi php soubory

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
saimons
Člen | 293
+
0
-

Chtel bych se zeptat na to jak resit zabezpeceni cizich php souboru. Mam rozjety cely web na nette ale pouzivam plugin do tiny_mce na upload fotek a potreboval bych pouzit zabezpeceni z nette. Sticilo by mi pouze zjistit jestli je uzivatel prihlasen nebo ne a pakud ne tak presmerovat. Ty soubory pro upload jsou uplne oddelene a v jine slozce.

Ondřej Mirtes
Člen | 1536
+
0
-

A co si na ten upload fotek vytvořit vlastní Presenter, podobně jako je třeba TexylaPresenter?

Tharos
Člen | 1030
+
0
-

Nevím, jak je tomu přímo u TinyMCE, ale předpokládám, že obsahuje nějaký „PHP connector“ (anebo jak to správně nazvat) což je skript, se kterým editor ajaxově komunikuje. Proto by neměl být problém na začátek toho skriptu připojit něco ve smyslu:

<?php
require_once(dirname(__FILE__).'/......../libs/Nette/loader.php');
$user = Environment::getUser();
if (!$user->isAuthenticated()) {
	die();
}
?>
Ondřej Mirtes
Člen | 1536
+
0
-

Já bych se bál, že tohle nebude fungovat. Nette v tomhle místě nebude mít napojení na aplikaci, tzn. možná ani ne na sessions, cache, vlastní třídu Permission apod., takže bych to nedělal.

Tharos
Člen | 1030
+
0
-

No, já to takhle s úspěchem používám u jiného wysiwygu. :) Ale než jsem to pustil do světa, otestoval jsem snad všechny v úvahu připadající kombinace přihlášení/nepřihlášení a vše fungovalo podle očekávání. V mém případě, kdy jsou aplikace i connector k wysiwygu na stejné doméně, má skript v connectoru k dispozici úplně stejné cookie, takže i session a spol. Ale určitě je to třeba individuálně otestovat.

saimons
Člen | 293
+
0
-

diky za iformace, udelal jsem to takhle a vypada ze to funguje dobre:

<?php

	require_once('../../../Nette/loader.php');
	$user = NEnvironment::getUser();
	if (!$user->isAuthenticated()) {
		header("location:http://neco.cz/");
        die();
	}
?>

Editoval saimons (8. 3. 2010 22:01)

MartyIX
Člen | 217
+
0
-

saimons napsal(a):

diky za iformace, udelal jsem to takhle a vypada ze to funguje dobre:

<?php

	require_once('../../../Nette/loader.php');
	$user = NEnvironment::getUser();
	if (!$user->isAuthenticated()) {
		header("location:http://neco.cz/");
        die();
	}
?>

Mohl by mi prosim nekdo vysvetlit, proc je potreba volat jeste funkci die? Bez ni priklad nefunguje korektne.
Uz parkrat jsem si vsiml, ze Nette jakoby bezi nejak dvakrat..

Editoval MartyIX (30. 9. 2010 23:39)

westrem
Člen | 398
+
0
-

MartyIX napsal:
Nette jakoby bezi nejak dvakrat..

??

proc je potreba volat jeste funkci die

Pretoze pomocou:

header("location:http://neco.cz/");

Iba nastavujes hlavicku, ktoru spracuvava browser, a kedze chces presmerovanie okamzite, tak hned killnes script.

saimons
Člen | 293
+
0
-

Tak jsem presel na Nette 2 a zjistil jsem ze timto zpusobem nezle zabezpecit cizi kody? Nedokazu timto zpusobem nacist identiu. Nevimte jak by se to dalo vyresit?

<?php

        require_once('../../../Nette/loader.php');
	$user = NEnvironment::getUser();
	if (!$user->isLoggedIn()) {
            header("location:http://www.neco.cz/");
            die();
	}
?>

Editoval saimons (25. 2. 2011 12:38)

saimons
Člen | 293
+
0
-

Tak uz jsem na to prisel, je potreba jeste pripojit slozku sessions. tak to muze byt nasledovne Nette 2:

<?php
        require_once('../../../Nette/loader.php');
        $session = NEnvironment::getSession();
        $session->setSavePath('../../../../app/sessions/');

        $user = NEnvironment::getUser();
	if (!$user->isLoggedIn()) {
            header("location:http://www.neco.cz/");
            die();
	}
?>