我已经回顾了这个问题的答案。我用谷歌搜索过这个。
我有一个变量在 php 5.4 ereg 上非常有效,但在最新的东西上却惨遭失败。
ereg($user.$pass, preg_replace('/\s/', '', trim($_POST['user']).trim($_POST['pass'])))
我没有高兴地尝试了以下方法:
preg_match('/^$user.$pass/',
preg_match('/{$user.$pass}/',
preg_match({$user.$pass},
preg_match('{$user.$pass}',
我不知道该怎么办。我也尝试重写代码以使用不同的输入行,但无济于事。
线路的其余部分是否也需要转义?
这个函数是否有可能不能轻松移植到最新的 php 版本中?
这是完整的代码行。它会查看用户和密码是否与此页面的用户和密码匹配并删除空格。(我可能应该在这个 if 语句之外对其进行清理。)它还检查 SESSIONS 状态。它可能有点难看,但在 5.4 中效果很好:
elseif(((!empty($_POST['user']) and !empty($_POST['pass']) and ereg($user.$pass, preg_replace('/\s/', '', trim( $_POST['user']).trim($_POST['pass'])))) 或 (isset($_SESSION['logged']) 和 ($_SESSION['logged'] === true) 和 isset ($_SESSION['user']) 和 ($_SESSION['user'] == $user))) 和 ($_SESSION['attempts'] < 5))
附加:我找到了绕过 ereg 或 preg_match 的方法。它工作得很好。