Č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 845 korisnika na forumu :: 37 registrovanih, 9 sakrivenih i 799 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: A.R.Chafee.Jr., Andrija357, Arahne, Boris BM, Brana01, cavatina, cenejac111, CikaKURE, Dimitrije Paunovic, Dimitrise93, doktor1964, Dovla, dushan, galerija, Georgius, Kubovac, kybonacci, ladro, Lieutenant, Litostroton, maiden6657, Marko Marković, mercedesamg, mik7, mikrimaus, Mlav, mnn2, nebkv, NikolaGTR, Panter, ruger357, Stoilkovic, vathra, voja64, YugoSlav, ZetaMan, zlaya011