为什么我的变量似乎总是为0?

Rob*_*Rob 1 php

这是我的代码:

if (isset($_POST['addmonths'])){
    if (!empty($_POST['months'])){
        if (is_numeric($_POST['months'])){
            $monthtoadd = $_POST['months'];
            if ($monthstoadd == 0){
                mysql_query("UPDATE users SET months='lifetime' WHERE username='$lookupuser'");
                echo "Successfully set " . $lookupuser . " to lifetime" . $monthstoadd;
            }elseif ($monthstoadd > 0){
                $monthstoadd = $monthstoadd*2592000;
                mysql_query("UPDATE users SET months=months+'$monthstoadd' WHERE username='$lookupuser'");
                echo "Successfully added " . $monthstoadd . " months to " . $lookupuser . "'s paid time.";
            }else{
                echo "Error.";
            }
        }else{
            echo "Months need to be numeric. If you're trying to set lifetime, use 0.";
        }
    }else{
        echo "You didn't enter anything.";
    }
}
Run Code Online (Sandbox Code Playgroud)

无论我输入什么号码,它似乎总是把它设置为终身,然后它不会回应它$monthstoadd之后,这就是帮助我看看为什么它不起作用.我无法想象我的生活.如果我没有输入任何内容,它会You didn't enter anything.像它应该的那样回声,如果它不是数字,它Months need to be numeric. If you're trying to set lifetime, use 0.就像它应该的那样回声.

有人有主意吗?

Tom*_*nFL 6

第4行:

$monthtoadd = $_POST['months'];
Run Code Online (Sandbox Code Playgroud)

应该是$ monthstoadd(注意缺失的s)

  • @Andrey:解释语言也可以明确表示变量声明; 他们往往不喜欢. (3认同)
  • 这就是为什么我喜欢编译语言,编译器永远不会放过这个 (2认同)

Eri*_*sen 6

$monthtoadd = $_POST['months'];
Run Code Online (Sandbox Code Playgroud)

应该

$monthstoadd = $_POST['months'];
Run Code Online (Sandbox Code Playgroud)