Autor | Zpráva | ||
---|---|---|---|
tcladin Profil |
#1 · Zasláno: 25. 1. 2009, 22:05:16
Prosím o radu. Chtěl bych nahradit začátek skriptu stránek funkcí page_start, kde hned na začátku uvedu session_start(), ale php to nějak "ignoruje".
Zkoušel jsem na to přijít ale nejde mi to. index.php: <? include "funkce.txt" ; page_start($acesstyp,$HTTP_SESSION_VARS); ... ?> funkce.txt: <? function page_start($acesstyp,$HTTP_SESSION_VARS)//zacatek stranek { //vstup vsichni session_start(); header ("Expires: 0"); header ("Last-Modofied: ".gmdate("D, d M Y H:i:s")." GMT"); global $user; $user=$HTTP_SESSION_VARS["user"]; //vstup jen user if($acesstyp=="registered"): if(!session_is_registered("user_register") or $HTTP_SESSION_VARS["user_register"]<>"ANO"): header("Location: http://tcladin.cz/admin/login.php?location=$location"); endif; endif; } ?> díky |
||
AM Profil * |
#2 · Zasláno: 25. 1. 2009, 22:10:22
soubor musí mít příponu php (funkce.php), ne .txt.
|
||
Alphard Profil |
#3 · Zasláno: 25. 1. 2009, 22:18:29 · Upravil/a: Alphard
„soubor musí mít příponu php (funkce.php), ne .txt.“
to není pravda tcladin session_start bych volal v index.php potom ve funkci přistupujte pomocí super globálního pole $_SESSION['user'] a mělo by to jít (HTTP_SESSION_VARS je zastaralé) // jinak jsem to moc neřešil, nevím, kde se bere $acesstyp apod. |
||
Mastodont Profil |
#4 · Zasláno: 25. 1. 2009, 22:21:38
tcladin
Proboha, session_is_registered ... Kde jste ten kód vyhrabal, to je pravěk. If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered() and session_unregister(). http://cz2.php.net/manual/en/function.session-is-registered.php |
||
tcladin Profil |
#5 · Zasláno: 25. 1. 2009, 22:45:39
Alphard
díky v tom to by, Hledal sem všude jinde potože když jsem měl HTTP_SESSION_VARS přímo ve skriptu tak fachčilo. Mastodont díky mám sice PHP Version 5.2.0-8+etch1(<PHP 5.3.0), ale brzo by bylo problem. |
||
AM Profil * |
#6 · Zasláno: 26. 1. 2009, 17:52:31
„„soubor musí mít příponu php (funkce.php), ne .txt.“
to není pravda“ Ok, tak možná nemusí, každopádně je to ošklivý zlozvyk, který vede k tomu, že riskujete, že si Váš kód bude pročítat kdo chce a tak v něm snáze najde zranitelnosti. Není důvod nedat mu příponu PHP, možná to tedy neřeší diskutovaný problém, ale přinejmenším z hlediska bezpečnosti je to dost důležité. |
||
SwimX Profil |
#7 · Zasláno: 26. 1. 2009, 18:55:40
AM
„riskujete, že si Váš kód bude pročítat kdo chce“ skripty, které includuju mám v adresáři, který má v htaccessu deny from all |
||
AM Profil * |
#8 · Zasláno: 26. 1. 2009, 19:21:44
SwimX
Jasně, to asi každý rozumný člověk. Ale stejně není důvod PHP skriptům dávat příponu TXT, jednou si omylem .htaccess smažeš, při přenášení na jiný server na něj zapomeneš, poskytovatel omylem zakáže allow_override... přirovnal bych to k nerozhlížení se na přechodu protože stejně mám přednost já. |
||
Časová prodleva: 18 dní
|
|||
tcladin_neprihlasen Profil * |
#9 · Zasláno: 13. 2. 2009, 15:55:42
Ahoj tak jsem provedl opatření k vyšší bezpečnosti zdrojoveho kodu includovanych souborů.
Umístil jsem je do adresáře s souborem .httacess vložil deny from all. Měl jsem, ale zásek. Nefungovalo mi až jsem na radu od Dalibor Baník vedoucí správy systému banan s.r.o. díky dal toto: $path_parts = pathinfo($_SERVER["PHP_SELF"]); //automat pro nacteni aktualni pozice ve stromu $php_path = $path_parts["dirname"]); include $php_path"."funkce.txt"; include "www/domena/adresar/funkce.txt"; AM můj důvod dávat includovanejm souborum .txt vynikl v době, kdy jsem nepoužíval uživatelské fuknce ale potřeboval jsem, aby se skript vykonal až po naincludování(poloha souboru se skriptem ve stromu má vliv na skript). Teď již znám jiné, bezpečnější, řešení. Ale setrvačnost... |
||
tcladin_neprihlasen Profil * |
#10 · Zasláno: 13. 2. 2009, 15:56:34
tcladin_neprihlasen
do souboru .htacess ne do .httacess |
||
AM_ Profil |
#11 · Zasláno: 13. 2. 2009, 16:14:20
„můj důvod dávat includovanejm souborum .txt vynikl v době, kdy jsem nepoužíval uživatelské fuknce ale potřeboval jsem, aby se skript vykonal až po naincludování(poloha souboru se skriptem ve stromu má vliv na skript)“
Možná jsem trochu mimo, ale nerozumím tomu, jaký vliv má přípona souboru na dobu, kdy se skript vykoná (a kdy jindy by se mohl vykonat, než až po naincludování?). Poloha souboru se skriptem, pokud je includovaný, by neměla hrát žádnou roli, aktuální adresář je vždy adresář hlavního spuštěného souboru (tedy ne includovaných), nebo jsi to myslel jinak? |
||
nightfish Profil |
#12 · Zasláno: 13. 2. 2009, 17:54:14
„include "funkce.txt" ; “
když už, tak include "./funkce.txt"; |
||
Časová prodleva: 15 let
|
0