Autor | Zpráva | ||
---|---|---|---|
filiphk Profil |
#1 · Zasláno: 29. 7. 2008, 06:26:51 · Upravil/a: filiphk
Ahoj,
u formuláře používám následující kód k odstranění všech znaků vyjma a-z: $text = preg_replace('/([^A-Za-z]+)/','',$text); I přes tuto podmínku mi však "propouští" tyto znaky: <, >, &. Je možné do té podmínky nějak připsat, aby nedovolil ani odeslání zmíněných třech znaků? |
||
Paja Profil |
#2 · Zasláno: 29. 7. 2008, 07:34:33
ahoj, podle mě to propouštět jiné znaky než A-Za-z nemůže .. chyba bude zřejmě někde jinde .. zkus poslat celé ošetření toho formuláře
|
||
filiphk Profil |
#3 · Zasláno: 29. 7. 2008, 07:40:52
No, ošetřen ho mám jen takto. Zbylé znaky řeším druhou podmínkou:
function nosign($sign) {$sign = Str_Replace(Array("Q","q","<",">","&"),"",$sign); return $sign;}; $text = nosign($text); Raději bych to však měl vše v jedné, pokud je to možné. |
||
Paja Profil |
#4 · Zasláno: 29. 7. 2008, 07:44:26 · Upravil/a: Paja
tohle funguje pokud se nemýlím .. problém je s odesíláním formuláře a zpracováním těch hodnot .. pošli samotné zpracování -> ošetření $_GET
|
||
filiphk Profil |
#5 · Zasláno: 29. 7. 2008, 07:48:38 · Upravil/a: filiphk
Tady je kód toho formuláře, pokud ti to pomůže:
<form action='' method='get' accept-charset='windows-1250'> <input type='hidden' name='hledat' value='slovo' />Zadejte jméno:<p> <input type='text' name='jmeno' size='25' maxlength='20' /></p><p> <input type='submit' value='hledat' /></p><p> </p></form>"; Podle mě by stačilo do preg_replace vypsat ty zbývající znaky s tím, aby byly negovány. Nevím však jak. |
||
Paja Profil |
#6 · Zasláno: 29. 7. 2008, 07:53:19 · Upravil/a: Paja
tohle je vykreslení formuláře .. ve zpracování toho $_GET je podle mě problém .. musím už jít pryč .. jen naznačím že pokud pošleš v tom formuláři znak "&" pak se to posíláním přes $_GET chápe jako ukončení proměnné .. prostě
něco.něco?prom1=hodnota&prom2=hodnota2 |
||
filiphk Profil |
#7 · Zasláno: 29. 7. 2008, 08:15:18 · Upravil/a: filiphk
Paja
Tak už jsem to vyřešil, problém byl s umístěním té podmínky v kódu. S tím "qéčkem" jsem to vyřešil takto: $text = preg_replace('/([^A-Pa-pR-Zr-z]+)/','',$text); |
||
Paja Profil |
#8 · Zasláno: 29. 7. 2008, 08:29:20
pokud chceš podmínku:
$text = "ahojqe"; if ( ereg( "^([a-pr-zA-PR-Z]*)$", $text )) echo "ok"; else echo "ko"; pokud nahrazení: $text = preg_replace('/([^A-PR-Za-pr-z]+)/','',$text); |
||
filiphk Profil |
#9 · Zasláno: 29. 7. 2008, 08:30:58 · Upravil/a: filiphk
Díky, přesně ke stejnému výsledku jsem nakonec také došel, viz editovaný příspěvek výše. :c)
Myslím, že tímto je problém vyřešen, a proto tuto diskuzi zamykám. |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0