0
我想让我的注册脚本只接受字母和数字,但是我迄今为止所尝试的任何内容都无法使用。它仍然不会接受。PHP preg_match不允许使用
这是到目前为止我的代码
if ($_POST['first'] != "" && preg_match("%^[-a-zA-Z æøå\/]+$%", $_POST['first']) == true && strlen($_POST['first']) > 0) {
$input_first = mysqli_real_escape_string($con,$_POST['first']); }
else { header("Location: ../register.php?n=2"); exit; die(); }
我在做什么错?
在此工作,https://eval.in/716341。这些字符是否会到达服务器?你不需要所有这些检查。由于正则表达式中的“+”,你知道有一个值,所以它不会是空的,长度将大于1. – chris85
如果你的模式和你的字符串是UTF-8编码,你需要设置[the 'u' modifier](http://php.net/manual/en/reference.pcre.pattern.modifiers.php)。注意你的测试是多余的'!=''''和'strlen> 0'是相同的,你的正则表达式因为你的'+'量词禁止一个空值。 – julp