2012-05-18 3 views
1

У меня есть следующий скрипт, но это, кажется, всегда проверка на сессии, и поэтому вторит из «пожалуйста, введите правильный код, прежде чем пользователь даже ввел код.OnClick отправить чек PHP

Я хотел бы ., чтобы в случае щелчка перед кодом фактически выстреливает и делает проверку на сессии и пост формы Как это может быть сделано в PHP

вот мой код:

<?php 

session_start(); 
    if (md5($_POST['norobot']) == $_SESSION['randomnr2']) 
    { 
     // here you place code to be executed if the captcha test passes 
      echo "Code correct - email should send now"; 

} 

else { 
     // here you place code to be executed if the captcha test fails 
      echo "Code incorect please try again"; 
    } 

?> 

Мои кнопки отправки выглядит следующим образом:

<input type="submit" id="submit_btn" class="button" value="Submit" /> 
+0

Вам кажется, не устанавливая значение сеанса к чему-либо ... –

ответ

2
<?php 
    session_start(); 
    if (isset($_POST['norobot'])) { 
     if (md5($_POST['norobot']) == $_SESSION['randomnr2']) { 
      // here you place code to be executed if the captcha test passes 
      echo "Code correct - email should send now"; 
     } 
     else { 
      // here you place code to be executed if the captcha test fails 
      echo "Code incorect please try again"; 
     } 
    } 
?> 
+0

Отлично это работает отлично. Итак 'if (isset ($ _ POST ['norobot'])) {' является обработчиком кликов? –

+0

@ sp-1986 no. проверка $ _POST установлена, чтобы убедиться, что форма была отправлена. Это не имеет никакого отношения к щелчку. – psynnott

+0

Не обработчик кликов. Это проверит, будет ли поле с именем «norobot» отправлено. Благодарю. – Dev

2

Если вы хотите проверить, если переменная сеанса устанавливается и имеет не пустое значение, вы можете сделать что-то вроде:

if(isset($_SESSION['THECODE']) && $_SESSION['THECODE']!='') 
{ 
    // THECODE is set to something 
} 

=========== =

UPDATE, как вы добавили код:

<?php 

session_start(); 
if(isset($_POST['norobot']) && isset($_SESSION['randonnr2'])) 
{ 
    if (md5($_POST['norobot']) == $_SESSION['randomnr2']) 
    { 
    echo "Code correct - email should send now"; 
    } 
    else 
    { 
    echo "Code incorect please try again"; 
    } 
} 

?> 
1

Почему бы не сделать что-то вроде этого? Проверьте, предоставил ли пользователь что-либо, а если не выполняет код.

<?php 

session_start(); 

if(isset($_POST)) 
    if (md5($_POST['norobot']) == $_SESSION['randomnr2']) 
    { 
     // here you place code to be executed if the captcha test passes 
      echo "Code correct - email should send now"; 

} 

else { 
     // here you place code to be executed if the captcha test fails 
      echo "Code incorect please try again"; 
    } 
} 

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