4e4en Posted December 4, 2004 Report Posted December 4, 2004 (edited) Man būtu vajadzīgs koda paraugs kas atfiltrē nost visus simbolus neieskaitot ciparus no 0 līdz 9 un manējais ko es uztaisīju ir šitāds, bet manuprāt viņš nav drošs un var saturēt kādu caurumu piemēram XSS vai kādu citu un kods ir te function filter($data) { $data=ereg_replace("[a-zA-Z]","",$data) $data=ereg_repalce("<>{}[];:'\"\\/|+=_-)(*&^%$#@!~`","",$data); $data=ereg_repalce(" ,.?","",$data); return $data; } un izmanto šādi: $id=filter($_GET['id']); Vai kāds var ieteikt kādu citu variantu kur atļauj tikai ciparus no 0 līdz 9 un PILNĪGI visus pārējos atfiltrē?? Edited December 4, 2004 by 4e4en
Aleksejs Posted December 4, 2004 Report Posted December 4, 2004 Regulārās izteiksmes galīgi nav mana stiprā puse, bet, ja vajag tikai ciparus, tad: ereg_replace('![0-9]','',$data);
bubu Posted December 5, 2004 Report Posted December 5, 2004 $data = preg_replace('/[^\d]/', '', $data);
bubu Posted December 9, 2004 Report Posted December 9, 2004 ja vajag ciparus izmanto intval() Tas neko nefiltrēs. intval() mēģinās pārkonvertēt doto stringu uz integeru, bet ja būs kāds burts pa vidam, tad nekas nesanāks.
Venom Posted December 9, 2004 Report Posted December 9, 2004 (edited) ā) - stringam jābūt ciparam, e.g. $_POST['x']=='23', pārbaudāms ar if ($_POST['x']*1) (ar izņēmumu, ja tas var būt =='0', || $_POST['x']==='0') jo ja viens no multiplikātoriem būs strings, tas tiks pārkonvertēts par 0 (būtībā, var arī plusēt 0) bē) jādabon vienalga kādus ciparus no stringa, e.g. ja pārbauda seriāņiku: $len=strlen($_POST['x']); $number=''; while(--$len>-1) if ($_POST['x']{$len}==0 || $_POST['x']{$len}*1) $number.=$_POST['x']{$len}; Edited December 9, 2004 by Venom
Aleksejs Posted December 9, 2004 Report Posted December 9, 2004 (edited) Es arī sākumā gribēju ieteikt intval, bet problēma rodās, ja jāapstrādā, piemēram, 30 simbolu garas ciparu virknes - tādā gadījumā intval nedos pareizu rezultātu. vai šāda problēma ir aktuāla šī jautājuma autoram, tas jau ir cits jautājums. P.S. XSS laikam domāts Cross Site Scripting Edited December 9, 2004 by Aleksejs
Recommended Posts