2010-08-28 4 views
1

Проверьте, произошел ли POST. Если это так, проверьте учетные данные; если правильно, то перенаправление на целевую страницу; если это неверно, тогда отобразите сообщение об ошибке на странице формы. Затем выведите форму.PHP form test

+4

я чувствую, что я должен быть оплачен, чтобы ответить на этот вопрос – Galen

+0

только так вы знаете: Это все для самообразовательной цели. –

ответ

1

В своей самой основной форме:

if (!empty($_POST)) 

Другие способы:

// check if one of the fields are present; 
if (!empty($_POST['password'])) 

// attach a hidden field then 
<input type="hidden" name="myHidden" value="yes"> 
if ($_POST['myHidden'] == 'yes') 

// give a name and value to the submit button, then 
<input type="submit" name="subBtton" value="Send"> 
if ($_POST['subButton'] == 'Send') 
+0

спасибо, что это сработало –

+0

Это определяет, есть ли данные в массиве сообщений, он не проверяет, какой метод http был использован. Это не верно. – Incognito

+0

это то, что я искал ... спасибо –

1

Лучше делать это в объектно-ориентированном образом, я делаю это, как это в моих проектах:

//check if user logged in 
if(isset($_POST['sign_in'])): 
    try 
    { 
     $userlogin = new User(); 
     $userlogin->loginusername = mysqli_real_escape_string($link, $_POST['username']); 
     $userlogin->password = mysqli_real_escape_string($link, $_POST['password']); 
     $userlogin->login(); 
    } 
    catch(Exception $e) 
    { 
     header("Location: ".$siteurl."login.php?login=failed"); 
    }//end of catch exception 
endif;//end of if user logged in 

в функции login() в моем классе пользователя. Я проверяю, правильно ли введен логин пользователя, если он не будет генерировать исключение (ошибка). Witch will b e catch (см. catch (исключение ...)). Я затем перенаправить на другую страницу, но вы можете сохранить сообщение об ошибке в переменной, как это:

$feedback = $e->getMessage(); 

, а затем просто эхо $ обратной связи в любом месте на странице

EDIT: это мой Войти функция в моем класс пользователя (только думал, что я хотел бы добавить его, а)

public function login() 
    { 
     global $link; 
     $sql = mysqli_query($link, "SELECT userid, unique_id, username, password FROM user_extra WHERE username='".$this->loginusername."' AND password='".md5($this->password)."'"); 
     //there can only be one user with this username and password 
     if(mysqli_num_rows($sql) == 1): 
      $result = mysqli_fetch_object($sql); 
      //sessions 
      $_SESSION['userid'] = $result->userid; 
      $_SESSION['username'] = $result->username; 
      $_SESSION['unique_id'] = $result->unique_id; 

      //cookies 
      $expire=time()+60*60*24*30; 
      setcookie("userid", $result->userid, $expire, "/"); 
      setcookie("password", $result->password, $expire, "/"); 
     else: 
      throw new exception("Login failed"); 
     endif; 
    }//end of function login