Manußl PHP | ||
---|---|---|
P°edchßzejφcφ | Dal╣φ |
PHP a HTML majφ hodn∞ spoleΦnΘho: PHP generuje HTML, a HTML mß informace, kterΘ budou poslßny PHP.
Je vφce situacφ, pro kterΘ je zak≤dovßnφ d∙le╛itΘ. Za p°edpokladu, ╛e mßte string $data, kter² obsahuje °et∞zec, jen╛ mßte nezak≤dovan² a chcete ho poslat, je t°eba se zab²vat t∞mito relevantnφmi problΘmy:
HTML interpretace. Pokud specifikujete nßhodn² (obecn²) °et∞zec, musφte ho dßt do uvozovek a cel² ho zpracovat funkcφ htmlspecialchars() (aby se odstranily/p°evedly specißlnφ znaky jazyka HTML).
URL: sestßvß z n∞kolika Φßstφ. Pokud chcete, aby va╣e data byla interpretovßna jako jedna polo╛ka, musφte je zak≤dovat pomocφ urlencode().
Poznßmka: Je chybou pou╛φt urlencode() pro $data, proto╛e prohlφ╛eΦe samy zaji╣╗ujφ zpracovßnφ dat shodnΘ s funkcφ urlencode(). V╣echny oblφbenΘ prohlφ╛eΦe to d∞lajφ korektn∞. Uv∞domte si, ╛e toto nenφ zßvislΘ na pou╛itΘ metod∞ (nap°. GET nebo POST). V╣imnete si toho v╣ak pouze v p°φpad∞ GET, proto╛e po╛adavky POST jsou obvykle skrytΘ.
Poznßmka: Data jsou v prohlφ╛eΦi zobrazena tak, jak bylo zam²╣leno, proto╛e prohlφ╛eΦ bude sprßvn∞ interpretovat specißlnφ symboly.
Po odeslßnφ, a╗ ji╛ pomocφ GET nebo POST, data budou zak≤dovßna zp∙sobem urlencode pro p°enos a nßsledn∞ p°φmo dek≤dovßna v PHP. Tak╛e v∙bec nepot°ebujete provßd∞t ╛ßdnΘ zak≤dovßnφ/dek≤dovßnφ ruΦn∞, v╣e je provßd∞no automaticky.
Poznßmka: V tomto p°φpad∞ ji╛ opravdu vytvß°φte GET po╛adavek, proto je nutnΘ data k≤dovat ruΦn∞ pomocφ urlencode().
Poznßmka: Musφte takΘ pou╛φt htmlspecialchars() na cel² URL, proto╛e URL je zde hodnotou HTML atributu. V tomto p°φpad∞ prohlφ╛eΦ nejd°φve odstranφ specißlnφ znaky a pak zpracuje URL. PHP sprßvn∞ pochopφ posφlan² URL, proto╛e jste data zak≤dovali pomocφ urlencoded().
M∙╛ete se v╣imnout, ╛e symbol & v URL je nahrazen &. P°esto╛e to v∞t╣ina prohlφ╛eΦ∙ opravφ. pokud na to zapomenete, nenφ to v╛dy mo╛nΘ. Tak╛e pokud vß╣ URL nenφ dynamick², musφte pou╛φt htmlspecialchars().
Kdy╛ odesφlßte formulß°, lze namφsto standardnφho tlaΦφtka pou╛φt obrßzek pomocφ tagu jako
<input type="image" src="image.gif" name="foo"> |
Proto╛e $foo.x a $foo.y jsou v PHP neplatnΘ nßzvy prom∞nn²ch, jsou automaticky p°evedeny na $foo_x a $foo_y. Tzn. teΦky jsou nahrazeny podtr╛φtky.
Aby v²sledky odeslßnφ va╣eho formulß°e byly umφst∞ny v poli (array), nazv∞te elementy <input>, <select> nebo <textarea> tφmto zp∙sobem:
<input name="MyArray[]"> <input name="MyArray[]"> <input name="MyArray[]"> <input name="MyArray[]"> |
<input name="MyArray[]"> <input name="MyArray[]"> <input name="MyOtherArray[]"> <input name="MyOtherArray[]"> |
<input name="AnotherArray[]"> <input name="AnotherArray[]"> <input name="AnotherArray[email]"> <input name="AnotherArray[phone]"> |
Poznßmka: Specifikace klφc∙ polφ je v HTML nepovinnΘ. Pokud klφΦe nespecifikujete, pole bude vypln∞no podle po°adφ element∙ ve formulß°i. Nß╣ prvnφ p°φklad obsahuje klφΦe 0, 1, 2 a 3.
Viz takΘ Funkce pro prßci s poli a Prom∞nnΘ z vn∞j╣ku PHP.
Tag pro vφcenßsobn² v²b∞r v HTML konstruktu umo╛≥uje u╛ivatel∙m vybrat vφce polo╛ej ze seznamu. Tyto polo╛ky se posφlajφ do handleru pro formulß°. ProblΘm je v tom, ╛e se zpracovßvajφ pod stejn²m jmΘnem. Nap°φklad:
<select name="var" multiple> |
var=option1 var=option2 var=option3 |
<select name="var[]" multiple> |
Uv∞domte si, ╛e pokud pou╛φvßte JavaScript, m∙╛e p°idßnφ [] do nßzvu elementu zp∙sobit problΘmy p°i pokusu odkazovat element jeho jmΘnem. Tehdy pou╛ijte Φφselnou identifikaci elementu, nebo nßzev prom∞nnΘ uzav°ete do apostrof∙ a pou╛ijte ho jako indexaci do pole element∙, nap°φklad:
variable = documents.forms[0].elements['var[]']; |
P°edchßzejφcφ | Dom∙ | Dal╣φ |
Pou╛φvßnφ PHP | Nahoru | PHP a COM |