Autor | Zpráva | ||
---|---|---|---|
cookies Profil * |
#1 · Zasláno: 13. 1. 2010, 12:56:22
Ahoj, je nějaký rozdíl v použití těchto 2 zápisů? Je jejich funkčnost stejná? Popř. jaký je správný?
$styl = $_COOKIE['css']; if (!$styl) $styl = 'default.css'; $styl = $_COOKIE['css']; if (!isset($_COOKIE['css'])) $styl = 'default.css'; |
||
Joker Profil |
#2 · Zasláno: 13. 1. 2010, 13:30:02
cookies:
„Je jejich funkčnost stejná?“ Není. !$styl je true i v případě, kdy proměnná je naplněná, ale její hodnota je něco, co se vyhodnotí jako false (třeba false, 0, prázdný řetězec), zatímco !isset($styl) bude v takovém případě false. Jinak "správnost" těch zápisů záleží na situaci (má se testovat jen existence proměnné, nebo i hodnota false?), tipoval bych jako "správnější" ten první, ale ani jeden z nich není úplně správný. Oba vyhodí poznámku v případě, že $_COOKIE["css"] nebude definované. Dále jestli v té cookie je uložený název souboru se stylem, nebylo by od věci ověřovat, že tam skutečně je platná hodnota. Pokud někde je něco jako: <link rel="stylesheet" href="$styl"... - tak abych si nemohl do cookie dát něco jako: "><script src="zly-skript.js"></script><!-- |
||
cookies Profil * |
#3 · Zasláno: 13. 1. 2010, 13:51:04
Joker:
Jinak "správnost" těch zápisů záleží na situaci (má se testovat jen existence proměnné, nebo i hodnota false?) V souboru index.php mám zápis stylu <link rel="stylesheet" type="text/css" href="styl.php" media="screen,projection"> A ve styl.php $styl = $_COOKIE['css']; if (!$styl) $styl = 'styles/styl.css'; header ("Location: $styl"); exit; Co se ale uloží do $styl pokud vyprázdním cookies? |
||
Joker Profil |
#4 · Zasláno: 13. 1. 2010, 15:07:49
cookies:
„Co se ale uloží do $styl pokud vyprázdním cookies?“ Pro oba ty kódy v prvním příspěvku by to spadlo do toho, že se tam naplní "default.css". Nicméně v obou případech to bude generovat poznámku, že $_COOKIE['css'] je neplatný index pole. Lepší by možná bylo něco jako: $styl = isset($_COOKIE["css"]) ? $_COOKIE["css"] : "default.css"; - to nebude generovat tu poznámku. |
||
cookies Profil * |
#5 · Zasláno: 13. 1. 2010, 15:53:31
Joker:
Díky to jsem potřeboval. |
||
Časová prodleva: 14 let
|
0