2010-06-27 3 views
1

Вот не мой код:Почему моя переменная всегда кажется 0?

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."; 
    } 
} 

Независимо от того, какой номер я вхожу, всегда кажется, чтобы установить его на всю жизнь, а потом не эхо $monthstoadd после него, что только там, чтобы помочь мне увидеть почему он не работает. Я не могу понять это для жизни меня. Если я ничего не введу, это echos You didn't enter anything., как и предполагалось, и если его не число, это echos Months need to be numeric. If you're trying to set lifetime, use 0., как и предполагалось.

У кого-нибудь есть идеи?

ответ

6

Линия 4:

$monthtoadd = $_POST['months']; 

Должно быть $ monthstoadd (обратите внимание на недостающую сек)

+0

Тьфу. Его всегда маленькое дерьмо я пропускаю. Спасибо, приятель – Rob

+2

Вот почему я люблю скомпилированные языки, компилятор никогда не позволит этому идти – Andrey

+3

@ Andrey: Интерпретированные языки также могут быть явными в описании переменных; они просто не склонны быть. –

6
$monthtoadd = $_POST['months']; 

должен быть

$monthstoadd = $_POST['months']; 
+1

вот почему я люблю скомпилированные языки, компилятор никогда не позволит этому идти – Andrey

Смежные вопросы