Jac*_*ack 2 javascript php preg-match
我试图if在命令的else功能中使用一个功能preg_match.
$month1data 从CURL获取并已检查工作.
以下代码是:
global $attempt;
$attempt = mysql_escape_string($_GET['attempt']);
if (preg_match('/<td colspan=8(.*)<\/table/s', $month1data, $matches)) {
//Content found do stuff here
unset ($ch);
unset ($cache);
unset ($firstmonthdata);
unset ($matches);
} else { // start else preg match
if ($attempt = '3') { //start if attempt = 3
echo 'failed 3 times - showing error';
echo '<script type="text/javascript">
<!--
window.location = "http://www.website.com/error.php?error=2"
//-->
</script>';
} // end if attempt = 3
else { //start if attempt dont = 3
echo 'keep trying for 3 times';
$attempt = $attempt +1;
echo '<script type="text/javascript">
<!--
window.location = "http://www.website.com/page.php?email=' . $email . '&password=' . $password . '&attempt=' . $attempt . '"
//-->
</script>';
}// end if attempt dont 3 else
} // end else preg match
Run Code Online (Sandbox Code Playgroud)
但是无论何时加载页面,它都会直接指向错误页面:
"http://www.website.com/error.php?error=2"
Run Code Online (Sandbox Code Playgroud)
我看了几个其他帖子,但看不出有什么问题,是否有可能以这种方式实现这些方法,或者只是缺少什么?
它应该是:
if ($attempt === '3') {
^^^
Run Code Online (Sandbox Code Playgroud)
你要分配3给$attempt.
或者甚至更好,因为似乎没有涉及数据库:
$attempt = (int) $_GET['attempt'];
...
if ($attempt === 3) {
Run Code Online (Sandbox Code Playgroud)
编辑:除此之外,您最好使用会话进行此类尝试检查,因为访问者可以轻松地操作查询字符串.
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |