我的用户有一个cookie,其中包含一个名为code的字符串,代码只是随机数字或6到15个字符长的字母。在收到代码之后,我如何检查以确保代码长度在6到15个字符之间并且只包含数字和字母?
使用正则表达式是最好的方法吗?
答案 0 :(得分:1)
有两种简单的方法可以做到这一点。一个是使用正则表达式:
$length = strlen($cookie);
if (6 <= $length && $length <= 15 && preg_match('/^[a-zA-Z0-9]*$/', $cookie)) {
//...
}
另一个是使用内置的ctype_alnum函数,它正是这样做的(确保字符串是字母数字):
$length = strlen($cookie);
if (6 <= $length && $length <= 15 && ctype_alnum($cookie)) {
//...
}
答案 1 :(得分:0)
答案 2 :(得分:0)
php的正则表达式很快,这是一个简单的选择器的例子:
"/^[a-zA-Z0-9]{6,15}$/"
但是@amosrivera对于strlen
更快是正确的。如果cookie数据插入页面(echo $_COOKIE['key'];
),则XML实体无关紧要,因为用户只能损害他们自己的页面。如果cookie存储在数据库中并为所有用户显示,则完全不同。