Autor | Zpráva | ||
---|---|---|---|
RuThaN Profil |
#1 · Zasláno: 7. 2. 2005, 18:59:24
Chtěl bych se zeptat jestli se dá nějak nastavit maximální délka textu, který se tam dá napsat a né jen velikost toho obdélníku, jako tady:
<input type="text" name="jmeno" size="15"> |
||
centi Profil |
#2 · Zasláno: 7. 2. 2005, 19:04:25
maxlength="xxx"
|
||
RuThaN Profil |
#3 · Zasláno: 7. 2. 2005, 20:51:57
Thx
|
||
RuThaN Profil |
#4 · Zasláno: 8. 2. 2005, 02:08:33
Ještě by mě zajímalo, jestli se dá nastavit aby to bralo jen čísla a né znaky, nemam knížky ve kterejch bych to našel..
|
||
Časová prodleva: 4 dny
|
|||
krteczek Profil * |
#5 · Zasláno: 12. 2. 2005, 03:45:27
k 1 dotazu, ano dá pomoci maxlenght="xxx" nicméně to jde obejít, a je to třeba ošetřit v php
snad ti to pomuze a to jestli se zadavaji cisla nebo jine zaky asi budes muset osetrit nejprve javaskriptem na strane prohlizece, a potom pro ty co ho maji vyply na strane serveru podobnou funkci v php. krteczek krteczek |
||
Leo Profil |
#6 · Zasláno: 12. 2. 2005, 10:52:18
Osobne bych maximalni delku ve formulari nenastavoval - z vlastni zkusenosti vim, jaka je to nekdy otrava pro uzivatele. Vemte si napriklad policko kam musim zadat svoje IC - neznam ho z hlavy, tak ho pres schranku zkopiruju a vlozim do policka, jenze v originalni podobe jsou tam mezery a s tema se to nevejde to povolene delky. Za normalnich okolnosti bych je pred odeslanim smazal, takhle se mi pres schranku vlozi nekompletni IC a je to otrava nejvetsi... Kontrola JS pred odeslanim ano, kontrola na serveru samozrejme, ale ne maximalni delka... Leo
|
||
RuThaN Profil |
#7 · Zasláno: 12. 2. 2005, 11:37:14
Krtezec: Jak to jde obejít? Rád věděl jak je to pravděpodobný, že se to někomu povede, jelikož by mi rozhodilo položky v databázi, který maj nastavenou pevnou délku..
|
||
RuThaN Profil |
#8 · Zasláno: 12. 2. 2005, 11:40:04
Leo: Já nějak nechápu co je to IC? Jinak samozřejmě se může stát že má někdo moc dlouhý jeden údaj proto sem se snažil to udělat dost dlouhý a kdyby ne tak např. název města se dá zkrátit v tohle případě jde jen o registraci zákazníků.
|
||
Leo Profil |
#9 · Zasláno: 12. 2. 2005, 11:49:33
IC je ICO :-) Leo
|
||
thingwath Profil |
#10 · Zasláno: 12. 2. 2005, 13:41:10
RuThan: Obejít to jde velmi jednoduše, prostě odešleš ne 15 znaků, jak je nastaveno v formuláři, ale třeba padesát. Je to stejné jako dát do parku ceduli 'Nechoďte přes trávník'. Pokud někdo neumí česky nebo to chce ignorovat, přejít přes trávník mu to nezabrání.
Vyzkoušet si to můžeš sám. Pokud to odesíláš jako GET, tak to do URL dá něco jako ?pole=maximalne_patnact_znaku_ale_ja_na_to_kaslu_a_poslu_si_jich_kolik _chci Jak vidíš, nic ti nebrání poslat toho kolik chceš, jediný hard limit je omezení délky URL. |
||
RuThaN Profil |
#11 · Zasláno: 12. 2. 2005, 15:16:57
thingwath: No myslim, že to tak to neni.. že si pleteš size to je rozměr pole a maxlength ta ti nedovolí tam naťakat víc jak patnáct znaků, jestli se to tam dá v pašovat nějak pře řádek s adresou s přes tohle omezení, tak to nevim..
|
||
thingwath Profil |
#12 · Zasláno: 12. 2. 2005, 15:24:25
Ale ne, ty vytvoříš v HTML formulář, který pak prohlížeč zobrazí. A co nutí prohlížeč aby omezil zadávání na těch 15 znaků? Jediné atribut maxlength tagu input. Ale na ten se může s klidným svědomím vykašlat. Nejsou žádné prostředky jak ho k tomu donutit. Že to většina prohlížečů respektuje, to je jejich dobrá vůle. Ale spoléhat se na to nedá.
Pokud nepoužiju prohlížeč vůbec, tak si můžu odeslat co chci. Ale do databáze s pevnou délkou si to pravděpodobně v nejhorším odsekne ta databáze sama. |
||
Leo Profil |
#13 · Zasláno: 12. 2. 2005, 15:25:34
"No myslim, že to tak to neni.. že si pleteš size to je rozměr pole a maxlength ta ti nedovolí tam naťakat víc jak patnáct znaků, jestli se to tam dá v pašovat nějak pře řádek s adresou s přes tohle omezení, tak to nevim.."
Kazdy formular zpracovava skript na serveru. A jedno ze zakladnich pouceni na kazdem kurzu PHP je to, ze musite zkostrolovat vsechny vstupy, protoze i odeslani formulare metodou POST se da velmi snadno simulovat... Leo |
||
RuThaN Profil |
#14 · Zasláno: 12. 2. 2005, 15:29:20
Ty prohlížeče jsou ale mrchy..
|
||
thingwath Profil |
#15 · Zasláno: 12. 2. 2005, 15:30:35 · Upravil/a: thingwath
Prohlížeče ne, ty to většinou dodržují. Ale kde je psáno, že musím použít prohlížeč ;-) Úmyslně obejít tohle omezení zvládne hacker ze školky, asi tak.
|
||
RuThaN Profil |
#16 · Zasláno: 12. 2. 2005, 15:37:00
Thingwath: No s hackerama asi nemá smysl soutěžit z hlediska takovýhle stránky, jelikož je to marnej boj.. Ošetřim jen pár do očí bijících dír..
|
||
thingwath Profil |
#17 · Zasláno: 12. 2. 2005, 15:49:29
Tohle není nic těžkého, krteczkovým skriptem nebo jinou metodou zkontrolovat o oříznout vstup. Pokud je požadovaná nějaká určitá maximální délka, tak to nedá skoro žádnou práci a rozhodně to neuškodí. Atribut maglength uvažuj jako prvek, kterým dáš uživateli jasně najevo, jaký formát má mít vstup (je to třeba dobré, když chci třeba rodné číslo, které má jasně daný formát, když mě to najednou nechce pustit dál, tak si zkontroluju vstup a najdu chybu, ovšem zadané číslo se stejně na serveru kontroluje).
|
||
RuThaN Profil |
#18 · Zasláno: 12. 2. 2005, 15:52:22
No ješte se nabízí otázka, že když je někdo schopnej hacknout ten vstup, proč by si nehacknul i tu maximální délku..
|
||
thingwath Profil |
#19 · Zasláno: 12. 2. 2005, 16:01:45
Jak to myslíš? Poslat delší řetězec než uvádí maxlength u inputu není problém. Zrušit ten php skript, který to kontroluje už docela problém je.
|
||
Leo Profil |
#20 · Zasláno: 12. 2. 2005, 16:09:16
Pokud v PHP skriptu dusledne kontrolujes VSECHNY vstupy (protoze velmi jednoduse se da podvrhnout treba i hodnota COOKIE), idealne regularnim vyrazem, tak mas klid, at si kdo chce co chce posila...
V tvym pripade napriklad $rv_jmeno = "/^.{,15}$/"; if (preg_match($rv,$_GET['jmeno'])!=1) { // spatny tvar jmena } else { // vstup je ok } pokud chces krome delky testovat i povolene znaky, rekneme jen pismena anglicke abededy a cislice pak jenom zmenis regularni vyraz: $rv_jmeno = "/^[a-zA-Z0-9]{,15}$/"; Leo |
||
RuThaN Profil |
#21 · Zasláno: 12. 2. 2005, 17:40:18
Nevíte jak elegantně otestovat že je zadaná jen číselná hodnota a né znaky a nebo pro změnu obráceně? Nenašel sem na to žádnou funkci na převod na netu a knížku nemám
a podmínka if (text=="0")&&(text=="1")&&2.. atd Je zbytečně dlouhá a "zaprasí", už tak šíleně dlouhej zdroják.. |
||
Leo Profil |
#22 · Zasláno: 12. 2. 2005, 17:54:35
"Nevíte jak elegantně otestovat že je zadaná jen číselná hodnota a né znaky a nebo pro změnu obráceně?"
No pomoci tech regularnich vyrazu! Leo |
||
RuThaN Profil |
#23 · Zasláno: 12. 2. 2005, 18:41:32
Leo: Omlouvám se ale nějak mi to hlava nebere a nechápu..
|
||
Leo Profil |
#24 · Zasláno: 12. 2. 2005, 20:09:03
|
||
RuThaN Profil |
#25 · Zasláno: 12. 2. 2005, 20:28:22
Dík moc, konečně se chytám..
|
||
RuThaN Profil |
#26 · Zasláno: 14. 2. 2005, 21:32:36
Tak jestli sem správně proved a pochopit tak se dá omezit až potom co uživatel zadá špatně, čili špatný výraz lze nadatlovat, ale já vypíšu chybu a nepustim ho dál.. Ale to, že ten input, prostě to písmenko místo čísla při bušení do klávesnice brát nebude se asi udělat nedá..
Hodilo by se něco ve stylu onchange neni číslo, tak to ani nezobrazuj.. V Delphi nebo C je to na jeden řádek.. |
||
Leo Profil |
#27 · Zasláno: 14. 2. 2005, 21:50:28
Samozrejme lze testovat uz pri psani - samozrejme JavaScriptem - kdy se odchytava udalost onkeypress (tusim, nutno vyzkouset, mozna onkeyup, kazdy prohlizec ma sve dny :-) a vraci se return false kdyz je to neplatna klavesa - ale opet vrele NEDPORORUCUJU. Uzivatele to zmate a splete, otazka je, co to bude delat kdyz text vlozi ze schranky, atd... Pokud chcete osetrovat uz pri psani do policka, pak jen pomocnou znackou nebo zmenou barvy textu pokud je momentalni tvar vstupu spatne... Kazpopadne to MUSITE testovat jeste jednou na SERVERU. Leo
|
||
RuThaN Profil |
#28 · Zasláno: 14. 2. 2005, 22:17:48
No na tohle si ještě nechám zajít chuť, teda pokuď to někdo nemá hotový a nevloží to sem..
|
||
Leo Profil |
#29 · Zasláno: 14. 2. 2005, 23:30:02
"No na tohle si ještě nechám zajít chuť, teda pokuď to někdo nemá hotový a nevloží to sem.."
To by pak mlsal kazdej :-) Bez prace nejsou kolace, Leo |
||
RuThaN Profil |
#30 · Zasláno: 15. 2. 2005, 00:49:30
No od už se určitě někdo našel a někam to dal, jen to najít.
Já bych se taky rád podělil, ale kdyby bylo čím.. Jediný co snad stojí na řeč.. to odesílání mailu s přílohou v pomocí php v předem daný datum. Myslim, že je to jako se všim 99% věcí už tu někdy bylo, takže příjít s něčim novym a dobrym je úkol pro génia.. |
||
Téma pokračuje na další straně.
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0