2012-03-02 3 views
0

PHP кода:Что не так с этой формой пароля PHP? Я не могу найти его

<?php 
    if (isset($_POST['pwsubmitted'])) { 
     $pwsub=$_POST['pass']; 
     if ($pwsub != "TEST"){ 
       $s=1; 
       $msg = "Incorrect Password"; 
       $msg2 = "Try Again"; 
      } 
     else if ($pwsub == "TEST"){ 
       $s=2; 
       $msg = "Password Accepted"; 
       $msg2 = "Your Download Is Below"; 
       $msg3 = ""; 
      } 
      // so I can see what's going on when form submit happens 
      echo "s="; var_dump($s); echo "</br>"; 
      echo "msg="; var_dump($msg); echo "</br>"; 
      echo "msg2="; var_dump($msg2); echo "</br>"; 
      echo "msg3="; var_dump($msg3); echo "</br>"; 
    } 

    ?> 

форму, размещение не показано ниже:

<div class="passform"> 
      <form id="pwform" method="post" action=""> 
      <input type="hidden" name="submitted" value="pwsubmitted" /> 
       <center> 
       <span class="titleblue">Enter The Password</span> 
       </center> 

      <input name="pass" id="pass" type="password" class="password" /> 

     <input name="submit" type="submit" class="submit" style="cursor: pointer;" value="" /></div> 
     </form> 

     </div> 

Другого Код:

<?php 
if (isset($_POST['pwsubmitted'])) { 
if ($s == 1) { Do This }; 
if ($s == 2) { Do This }; 
} 
<?php if(!isset($POST['pwsubmitted'])) { 
?> 
<HTML FORM FROM ABOVE HERE> 
<?php } ?> 

Когда я отправить форму ... ничего случается. Исходная форма сохраняется, как если бы переменная post pwsubmitted не была установлена. Есть две разные вещи, которые случаются, либо сообщение msg попробуйте снова, либо оно покажет контент. Ничего не происходит.

Что я сделал неправильно?

ответ

6

В вашем HTML у вас есть это поле ввода

<input type="hidden" name="submitted" value="pwsubmitted" /> 

В вашем PHP вы используете

if (isset($_POST['pwsubmitted'])) { 

Но имя этого поля является submitted. Попробуйте

if (isset($_POST['submitted'])) { 
+0

DOH ... Я чувствую себя настолько глупо. Какая идиотская мисс. Работает сейчас. Спасибо, Аарон! –

+0

Плюс, это плохая переменная для тестирования. Если они отправили форму, то вход, который вам нужно убедиться, был опубликован, это вход 'pass'. Вам не нужно другое поле, вы можете просто использовать 'if (isset ($ _ POST ['pass']))', и вы ДОЛЖНЫ использовать эту переменную, потому что следующий код полагается на нее. –

1

Вы должны проверить $ _POST ['submitted'] (имя, а не значение ввода).

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