2012-12-28 106 views
9

我想將註冊表和登錄表單放在同一頁面上。如何在同一頁面上放置兩個表單?

if (!empty($_POST)) ... 

所以,我需要這樣的東西:
他們都開頭

if (!empty($_POST_01))... // regForm 
    and 
if (!empty($_POST_02))... //loginForm 

而且如何防止執行第一種形式,如果第二個忙,反之亦然(在兩個用戶點擊)
我的想法是創建起動過程的簡單變量,例如$x = 1和在過程$x = 0的端部,所以:

if ((!empty($_POST_01)) And $x = 0)... 

也許有更好的辦法。

+1

所以你的問題不在於如何把兩個HTML表單元素在同一頁上,但如何處理請求來源於用相同的PHP pgae提交不同的表單,不是嗎? – ppeterka

+0

@ppeterka,是的,就是這樣。 – Alegro

回答

27

你可以做兩種形式有2個不同的動作

<form action="login.php" method="post"> 
    <input type="text" name="user"> 
    <input type="password" name="password"> 
    <input type="submit" value="Login"> 
</form> 

<br /> 

<form action="register.php" method="post"> 
    <input type="text" name="user"> 
    <input type="password" name="password"> 
    <input type="submit" value="Register"> 
</form> 

或者做

<form action="doStuff.php" method="post"> 
    <input type="text" name="user"> 
    <input type="password" name="password"> 
    <input type="hidden" name="action" value="login"> 
    <input type="submit" value="Login"> 
</form> 

<br /> 

<form action="doStuff.php" method="post"> 
    <input type="text" name="user"> 
    <input type="password" name="password"> 
    <input type="hidden" name="action" value="register"> 
    <input type="submit" value="Register"> 
</form> 

然後你的PHP文件就可以用作一個開關($ _ POST [ '行動'] )...此外,他們不能同時點擊兩個鏈接或同時發出請求,每個提交都是一個單獨的請求。

你的PHP然後將繼續與開關邏輯或有不同的PHP文件做了登錄過程,然後註冊程序

+0

關於爲什麼他需要這樣做會更好一些的描述會很好,但除此之外+1 – ppeterka

+0

cristi_b,我有想法知道。謝謝。我想 - 解決了。順便說一句,原因是 - 一致的設計。 – Alegro

+0

你可以實現我的版本或Neal建議的,一個帶有2個提交按鈕(註冊和登錄)的表單 –

6

那麼你可以讓每個表格轉到不同頁面。 (這是優選的)

或對上了一定的投入和基礎的職位不同的值:

switch($_POST['submit']) { 
    case 'login': 
    //... 
    break; 
    case 'register': 
    //... 
    break; 
} 
+0

是啊,相同的頁面,不同的提交按鈕與不同的值在同一表單上...有點比我的解決方案 –

+0

我注意到這裏,當屏幕上出現答案時,它已經'''投票!!? – Alegro

1

希望這會幫助你。假設登錄表單有:用戶名和密碼輸入。

if(isset($_POST['username']) && trim($_POST['username']) != "" && isset($_POST['password']) && trim($_POST['password']) != ""){ 
//login 
} else { 
//register 
} 
+0

你知道當你假設會發生什麼,對吧? – Neal

+0

如果註冊表格也有用戶名和密碼字段呢?我認爲註冊表格_does_通常有這些... – ppeterka

+0

@ppeterka,是的,這兩種形式都有用戶名和密碼字段 – Alegro

3

給提交按鈕兩種形式不同的名稱和使用PHP來檢查哪個按鈕提交數據。

形成一個按鈕 - BTN1 形成兩個按鈕-btn2

PHP代碼:

if($_POST['btn1']){ 
    //Login 
}elseif($_POST['btn2']){ 
    //Register 
} 
相關問題