如何在else函数中使用if函数

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)

我看了几个其他帖子,但看不出有什么问题,是否有可能以这种方式实现这些方法,或者只是缺少什么?

jer*_*oen 5

它应该是:

if ($attempt === '3') {
             ^^^
Run Code Online (Sandbox Code Playgroud)

你要分配3$attempt.

或者甚至更好,因为似乎没有涉及数据库:

$attempt = (int) $_GET['attempt'];

...

if ($attempt === 3) {
Run Code Online (Sandbox Code Playgroud)

编辑:除此之外,您最好使用会话进行此类尝试检查,因为访问者可以轻松地操作查询字符串.