Autor | Zpráva | ||
---|---|---|---|
Vouty Profil |
#1 · Zasláno: 4. 4. 2013, 21:05:28
Zdravím
Narazil jsem na nějaké značky a nějak nechápu jejich význam v kódu. třeba @ if(!isset($_SESSION['prihlasen']) and @$_SESSION['prihlasen']!=1){ echo "<h1>Tato stránka je jen pro registrované</h1>"; } jaký má význám? dalším takovým znakem je vykřičník ! děkuji za odpověď |
||
Amunak Profil |
@ potlačuje chyby, nedoporušuji používat. V tomto případě to nejspíš mělo potlačit chybu ohledně neinicializovaných session nebo tak něco, ale ani nevím, jestli by to fungovalo, a je hloupost to používat, protože pak vám kód nefunguje a nevíte proč. Chybová hlášení jsou největší přítel programátora.
! je výraz značící negaci, tedy z výrazu, který se vyhodnotí jako true , udělá vykříčník false . Např:
if(!isset($promenna)) echo '$promenna neni inicializovana'; Další znaky na které můžete narazit je třeba && a || , což je logické AND (resp. OR).
|
||
Joker Profil |
#3 · Zasláno: 4. 4. 2013, 21:21:38
Vouty:
„proč je před $_SESSION zavináč?“ Chtělo by se říct: Protože autor pořádně nevěděl, co dělá. Ta podmínka česky říká „Pokud hodnota $_SESSION['prihlasen'] není nastavena a zároveň je různá od 1“. Takže ta druhá část je úplně zbytečná, jelikož proměnná nemůže zároveň nemít hodnotu a mít hodnotu 1. Ohlevně významu jak píše Amunak, @ potlačuje chybové hlášky a neměl by se používat a ! je negace. |
||
Vouty Profil |
#4 · Zasláno: 4. 4. 2013, 21:22:24
&& a || používám :)
2 3 4if(!isset($_SESSION['prihlasen']) and @$_SESSION['prihlasen']!=1){ echo "<h1>Tato stránka je jen pro registrované</h1>"; } tohle mi normálně funguje ;) |
||
tiso Profil |
#5 · Zasláno: 4. 4. 2013, 21:26:35
Vouty: „tohle mi normálně funguje ;)“
To je síce pekné, ale keď ideš do obchodu pre chleba, tiež si ho nedáš do igelitky, ruksaku a kufra, stačí ti igelitka. |
||
Vouty Profil |
máte lepší řešení?
|
||
Joker Profil |
#7 · Zasláno: 4. 4. 2013, 21:34:44
Vouty:
„máte lepší řešení?“ if (!isset($_SESSION['prihlasen'])) { echo "<h1>Tato stránka je jen pro registrované</h1>"; } |
||
Virtus Profil |
#8 · Zasláno: 4. 4. 2013, 21:38:26
Za předpokladu, že v $_SESSION['prihlasen'] se může vyskytnout i jiná hodnota než 1, by ta podmínka měla vypadat takto:
if( ( !isset( $_SESSION['prihlasen'] ) ) || ( isset( $_SESSION['prihlasen'] ) && ( $_SESSION['prihlasen'] != 1 ) ) ) |
||
Someone Profil |
#9 · Zasláno: 4. 4. 2013, 21:40:07
Virtus:
Pokud by (ne)přihlášení záviselo na hodnotě v proměnné prihlasen tak stačí if(isset($_SESSION['prihlasen']) && $_SESSION['prihlasen'] == 1) { // přihlášen } else { // nepřihlášen } |
||
Amunak Profil |
Co se týče problematiky přihlašování, tak stačí mít jednu session ve které je třeba uživatelské jméno (které nejspíš stejně bude potřeba na každé stránce i vypisovat) a když nikdo není přihlášen, tak mít tuto session nenastavenou. Stačí to pak kontrolovat jediným isset (viz. [#7]) a máte zároveň k dispozici vždy i uživatelské jméno.
|
||
Časová prodleva: 11 let
|
0