Autor | Zpráva | ||
---|---|---|---|
ajajaj Profil |
#1 · Zasláno: 10. 2. 2013, 13:34:05
Ahoj, nefunguje mi ternarni operator a nevim proč, nevíte, prosím, někdo čím by to mohlo být? děkuji
$menuli .= "<li><a id=\"#m-{$row["xxx"]}\" href=\"{$row["xxx"]}\" title=\"{$row["yyy"]}\">". htmlspecialchars(stripslashes(($row["aaa"]=1 ? $row["aaa"] : $row["nnn"]))) ."</a></li>"; |
||
juriad Profil |
#2 · Zasláno: 10. 2. 2013, 13:37:30
Asi chceš porovnávat a ne přiřazovat:
$row["aaa"]==1 A jako vždy, není to chyba PHP (nefunkční ternární operátor), ale tvá (nefunguje mi ternární operátor, tak jak ho chápu já). |
||
ajajaj Profil |
#3 · Zasláno: 10. 2. 2013, 14:22:01 · Upravil/a: ajajaj
samozřejmě, proto jsem napsal "mi" jako "můj", o funkčnosti ternárního operátoru jsem nikdy nepochyboval... ;)
sypu si popel na hlavu... a díky jinak verze pro dislektiky jako jsem já... ;) htmlspecialchars(stripslashes(empty($row["aaa"])? $row["nnn"] : $row["aaa"])) |
||
Majkl578 Profil |
Stripslashes nepoužívej, postrádá to smysl a akorát to nežádoucím způsobem mění obsah, htmlspecialchars je pro ochranu výstupu postačující.
A k verzi pro dislektiky, jde to i jednoduššeji: $row["aaa"] ?: $row["nnn"] |
||
ajajaj Profil |
#5 · Zasláno: 10. 2. 2013, 19:58:15 · Upravil/a: ajajaj
|
||
Alphard Profil |
#6 · Zasláno: 10. 2. 2013, 20:03:35
ajajaj [#5]:
Zpětná lomítka se vám přidávají 2x, viz Nejčastější potíže s PHP (FAQ) » Lomítka ve vstupních hodnotách, pak použitejete jen mysql_real_escape_string() a už nebudou lomítka přebývat. |
||
ajajaj Profil |
myslel jsem že mám vypnutý.. ale kontrolou jsem zjistil, že ne... tady je zakopanej pes. Děkuji
ptám se teď zkušenějších, co je lepší, mám je vypnout, nebo nechat zapnutý? jsem zvyklý vše escapovat. prozatím jsem je vypnul. prý se má tato direktiva zrušit, takže to tak bude asi lepší... |
||
Majkl578 Profil |
Automatické escapování (tj. magic_quotes) určitě nepoužívat. Data se mají escapovat dle kontextu, nic jako spolehlivé globální ošetření neexistuje, právě kvůli neznalosti kontextu, v jakém budou data použita. To platí jak pro vstupní data (např. do databáze, tam se používá pouze mysql_real_escape_string), tak pro ta výstupní (např. výstup do HTML, kde se používá htmlspecialchars).
|
||
Časová prodleva: 13 let
|
0