Autor | Zpráva | ||
---|---|---|---|
Jiri Bednar Profil * |
#1 · Zasláno: 23. 5. 2009, 14:54:14
Ahoj,
narazil jsem na problem s uvozovkamy. Kdyz dam do promene napr: $a = "ahoj "haha" ";, tak to hodi chybu. Pomoci funkce strtr jsem chtel nahradit vnitrni uvozovky timto \", ale bohuzel vyskoci chyba, vi si s tim nekdo rady? |
||
gygabyte Profil * |
#2 · Zasláno: 23. 5. 2009, 14:56:05
$a = 'ahoj "haha"'; |
||
Majkl578 Profil |
#3 · Zasláno: 23. 5. 2009, 14:56:46
musis to zapsat rovnou escapovane:
$a = "ahoj \"haha\" "; popripade to dat do apostrofu: $a = 'ahoj "haha" '; |
||
gmvasek Profil |
#4 · Zasláno: 23. 5. 2009, 14:57:20 · Upravil/a: gmvasek
Jak píšeš, uvozovky se musí odznačit zpětným lomítkem. Ale to udělej přímo v té proměnné a né až pomocí strtr.
<?php $a = "ahoj \"haha\" "; nebo $a = 'ahoj "haha" '; ?> edit: lol |
||
Jiri Bednar Profil * |
#5 · Zasláno: 23. 5. 2009, 15:37:06
Tento problem se vyskytuje v mem CMS, a pochybuji ze uziatel toto bude automaticky delat po napsani uvozovek. A kdyby to bylo takto
$a = 'ahoj "haha" '; tak misto um¨vozovek nekdo napise apostrof a je to v haji. |
||
nightfish Profil |
#6 · Zasláno: 23. 5. 2009, 15:43:01
Jiri Bednar
http://phpfashion.com/escapovani-definitivni-prirucka jinak zrovna znalost escapování v PHP bych u někoho, kdo tvoří "vlastní CMS", očekával |
||
Jiri Bednar Profil * |
#7 · Zasláno: 23. 5. 2009, 16:33:22
nightfish
Diky |
||
Časová prodleva: 4 dny
|
|||
Jiri Bednar Profil * |
#8 · Zasláno: 27. 5. 2009, 15:20:18
Bohuzel se problem vyresil castecne.
Problem vznika v tom, ze prevadi i znaky < > a proto ze TinyMCE je potrebuje pro style, tak po prevedni nefunguji. Da se funkce htmlspecialchars upravit pouze pro uvozovky? Nebo existuje jina funkce? DIK |
||
Ait Profil * |
#9 · Zasláno: 27. 5. 2009, 16:35:20
addslashes() |
||
Majkl578 Profil |
#10 · Zasláno: 27. 5. 2009, 16:44:48
Ait
to tezko |
||
Yur4Y Profil |
#11 · Zasláno: 27. 5. 2009, 19:40:39
Veď použite str_replace, nie?
$text = str_replace('"', '\\"', $text); //resp. ekvivalentný zápis $text = str_replace("\"", "\\\"", $text); |
||
Majkl578 Profil |
#12 · Zasláno: 27. 5. 2009, 19:44:04
Yur4Y
Ait vy jste snad asi uplne navedeni? radite tu kraviny a houby o tom vite. jak muzes replacovat uvozovku, kdyz ten parse error vrati jeste pred tim (pri vytvareni retezce)? myslete trochu |
||
Yur4Y Profil |
#13 · Zasláno: 27. 5. 2009, 19:58:49 · Upravil/a: Yur4Y
Nemám tušenie, ako ten redakčný systém autora témy funguje a s čím má vlastne problém. Veď dostal hore 3 príspevky o escapovaní úvodzoviek/apostrofov v reťazci. Ale pýtal si "htmlspecialchars pouze pro uvozovky", nech sa páči. Raz som sa stretol s riešením, keď sa dáta neukladali do DB, ale rovno sa vytváral PHP súbor. Tam boli funkcia addslashes() alebo to moje riešenie ideálne. Opakujem, neviem, ako je to riešené v spomínanom CMS.
Majkl578 Prosím, nemohli by ste nabudúce upozorňovať na chyby trošku kľudnejším tónom? :-/ |
||
panther Profil |
#14 · Zasláno: 27. 5. 2009, 20:02:03
Yur4Y
„Majkl578 - Prosím, nemohli by ste nabudúce upozorňovať na chyby trošku kľudnejším tónom? :-/“ spíš by sis mohl nejdřív zkusit, jestli je tvoje „rada“ funkční ;-) |
||
Yur4Y Profil |
#15 · Zasláno: 27. 5. 2009, 20:22:06 · Upravil/a: Yur4Y
Ja sa asi budem opakovať, ale Jiri Bednar hľadal funkciu, ktorá nahradí úvodzovku za čosi iné. Či to bude \", " alebo čokoľvek, je moja rada funkčná a úvodzovku nahrádza. Pokiaľ je problém už pri zápise reťazca, tam vážne žiadna funkcia neexistuje, treba to escapovať hneď pri písaní kódu alebo použiť HEREDOC syntax. Ospravedlňujem sa, ale nemohol som tušiť, že autor prehliadne 3 príspevky so správnym riešením, tak som si problém vyložil po svojom.
|
||
Časová prodleva: 15 let
|
0