是我的PHP代码中的任何逻辑错误?

时间:2016-07-01 15:01:40

标签: php

这是基于$var等于$_GET['id']

的价值的小型放逐系统的一部分

当我尝试测试代码时出现问题,在第一次执行时,使用错误值$ _GET [' id'](not_numeric或< = 0)代码正确插入ip该表,但他将尝试值增加1,知道我的表中的(尝试)是int(11)没有AUTO-INCREMENT或特殊属性 所以我在表格中找到了这样的行:

id:1,ip:192.168.1.X,尝试:2

id:1,ip:192.168.1.X,尝试:4(第二次执行$ _GET的错误值[' id'])

id:1,ip:192.168.1.X,尝试:6(第三次执行$ _GET的错误值[' id'])

等等,它总是增加BY 2。

<?php
$ip="192.168.1.11";
$var=1;
if(isset($var))
{
    if(is_numeric($var) AND $var >=1)
    {
        $var=$var;
    }
    else
    {
        $var=null;
        $msg[]="::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::";
        $query="SELECT * FROM table WHERE ip = '$ip'";
        if(($result=$mysql_link->query($query)) AND ($result->num_rows > 0))
        {
            $row = $result->fetch_assoc();
            $current_score_of_attmpt=$row['attempt'];
            $new_score_of_attmpt=$current_score_of_attmpt+1;
            $result->free();
            $query = "UPDATE table SET attempt = attempt +1 WHERE ip = '$ip'";
            if($mysql_link->query($query)===TRUE) {
                $msg[]="We have Updated your score of attempt to $new_score_of_attmpt";
                $msg[]="::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::";
            }
            else
            {
                echo "Update Error: ".$query."<br>".$mysql_link->error;
            }
        }
        elseif(!($mysql_link->error)) 
        {
            $query ="INSERT INTO table (ip, attempt) VALUES ('$ip', 1)";
            if($mysqli_link->query($query)===TRUE)
            {
            $msg[]="Its Your First Attempt";
            }
            else
            {
                echo "Update Error: ".$query."<br>".$mysql_link->error;
            }
        }
        else
        {
            echo "SELECT Error: ".$query."<br>".$mysql_link->error;
        }
    }
}
else
{
    $var=null;
} 

echo "<br> the value of var = ".$var;
if(isset($msg))
{
    for($i=1; $i<=sizeof($msg); $i++)
    {
        echo "<br>".$i.") ".$msg[$i];
    }
}

1 个答案:

答案 0 :(得分:1)

我发现代码与问题无关 它执行两次的原因是 在我的HTML模板中,我忘了定义webapp图标的完整路径(URL)。 我把它留空了

<link href="" rel="icon">