0
我已經page?vesion=1.0.1
我怎樣才能使$ _GET [「版本」]安全保障的財產以後像
$version = (float) $_GET['version'];
但這會工作,如果它1.2或1.0如果它的1.0.1
我已經page?vesion=1.0.1
我怎樣才能使$ _GET [「版本」]安全保障的財產以後像
$version = (float) $_GET['version'];
但這會工作,如果它1.2或1.0如果它的1.0.1
使用一個正則表達式,如/[0-9]+(\.[0-9]+){0,3}/
來驗證它。 preg_match
是你的朋友:
if (preg_match('/[0-9]+(\.[0-9]+){0,3}/', $_GET['version'], $match)) {
// $match[0] contains the validated version number
}
,如果我知道你想要什麼,接受什麼拒絕,我可以幫你。
編輯:用輔助版本號的數目替換正則表達式中的3;與3 0.1.2.3是允許的,但0.1.2.3.4不是
不要忘記'^'和'$'錨! '2.5.0' ; DROP TABLE ...'不是允許的好版本號。 ;-) – Wiseguy 2012-03-29 18:06:52
就像php版本5.3.0 – 2012-03-29 18:08:14
@Wiseguy無論如何,你真的應該通過mysql_real_escape_query傳遞你的數據,即使你完全確定你的變量持有 – CAFxX 2012-03-29 18:10:43