Autor Zpráva
tcladin
Profil
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 *
soubor musí mít příponu php (funkce.php), ne .txt.
Alphard
Profil
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
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
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 *
„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
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 *
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á.
tcladin_neprihlasen
Profil *
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 *
tcladin_neprihlasen
do souboru .htacess ne do .httacess
AM_
Profil
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
include "funkce.txt" ;
když už, tak include "./funkce.txt";

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0