Autor Zpráva
filiphk
Profil
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
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
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
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
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>&nbsp;</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
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
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
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
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.
Toto téma je uzamčeno. Odpověď nelze zaslat.