Čišćenje GET funkcije

Čišćenje GET funkcije

offline
  • Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
  • Pridružio: 13 Jun 2010
  • Poruke: 307
  • Gde živiš: Subotica

Pozdrav drugari!
Opet sam se pravio pametan i spetljao sam jedan kod koji me nervira i ne znam zašto ne radi:

function http_clean($content, $option='default') {    return trim((($option=='number') ? preg_replace("@([^0-9]\-_)@Ui", "", trim($content)) :    (($option=='word') ? preg_replace("@([^a-zA-Z\-_ ])@Ui", "", trim($content)) :    (($option=='text') ? preg_replace("@([^a-zA-Z0-9\+\-_()*!,.;\?#:'%/\" ]+)@Ui", "", trim($content)) :    (($option=='default') ? preg_replace("@([^a-zA-Z0-9\-_ ])@Ui", "", trim($content)) :    die("PHP ERROR: You must enter option into <em>http_clean($content, <strong>$option</strong>)</em>")))))); } /*************************************/ function GET($name, $option) {    return isset($_GET[$name]) ? (!empty($_GET[$name]) ? http_clean($_GET[$name], $option) : NULL) : NULL; }

Svrha ovog koda je da spreči druge bezvezne pozive i ubacivanja raznih javaskripta i HTML elemenata preko GET ili POST funkcije ali imam jedan problem.

Kada koristim funkciju na primer:
http_clean($_GET['id'], 'number');
Onda lepo radi, u stringu dozvoljava samo brojeve i znakove -_

Ali kada hoću da koristim funkciju koja je uprošćena verzija za pisanje GET funkcije:
GET('id', 'number');
-onda se jednostavno funkcija http_clean() poništava.

Zašto???

Inače funkcija http_clean() ima 4 opcije: number, word, text i default



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

možda da probaš:
return (isset($_GET[$name]) ? (!empty($_GET[$name]) ? http_clean($_GET[$name], $option) : NULL) : NULL);

dodao sam samo zagrade na početku i kraju.



offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Sta ti vraca var_dump

offline
  • Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
  • Pridružio: 13 Jun 2010
  • Poruke: 307
  • Gde živiš: Subotica

Napisano: 06 Jun 2013 15:35

_iKaC ::Sta ti vraca var_dump


Ako stavim:
// suboption je: 51fs<br>d11 echo var_dump(GET('suboption', 'number'));
onda daje rezultat:
string(11) "51fs<br>d11"
...a treba da rezultat inače bude: 5111

Treba da očisti string ali to ne radi.

Dopuna: 06 Jun 2013 15:47

Peca ::možda da probaš:
return (isset($_GET[$name]) ? (!empty($_GET[$name]) ? http_clean($_GET[$name], $option) : NULL) : NULL);

dodao sam samo zagrade na početku i kraju.

Isto... GUZ - Glavom U Zid

Ko je trenutno na forumu
 

Ukupno su 1193 korisnika na forumu :: 35 registrovanih, 6 sakrivenih i 1152 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 5.56, A.R.Chafee.Jr., airsuba, Andrija357, Apok, bojank, bufanje, djboj, Duh sa sekirom, flash12, galerija, hatman, hologram, jackreacher011011, jaeger, Leonov, ljuba, Mcdado, mercedesamg, Mercury, Milos82, milutin134, Mlav, mnn2, MrNo, ozzy, procesor, Sirius, StepskiVuk, TheBeastOfMG, Trpe Grozni, vladaa012, zbazin, ZetaMan, |_MeD_|