2016-08-21 50 views
0

首先,這是我第一次編寫PHP代碼,所以請原諒我的新手。php post multiple buttons

我有一個登錄表單,有3個提交按鈕(post method),名爲login,註冊並忘記了。如果我選擇登錄按鈕,PHP代碼中的登錄功能被調用,但是,對於註冊和忘記按鈕也是如此。它幾乎就像工作的唯一提交按鈕是登錄按鈕。在這一點上我最好的猜測是有id/name不正確。爲了簡潔起見,我刪除了CSS部分。任何正確的方向點將不勝感激。

<?php 
function login(){ 
//do stuff 
echo "Login"; 
} 

function register(){ 
// do stuff 
echo "Register"; 
} 

function forgot(){ 
//do stuff 
echo "Forgot"; 

} 

if($_SERVER["REQUEST_METHOD"] == "POST") { 
    if(isset($_POST['login'])) { 
    login(); 
    } 
    if(isset($_POST['register'])) { 
    register(); 
    } 
    if(isset($_POST['forgot'])) { 
    forgot(); 
    } 
} 
?> 

<html> 
<head> 
<meta charset="utf-8"> 
<title>Login Page</title> 
</head> 
<body> 
<div id="login"> 
<h1><strong>Welcome!</strong> Please login.</h1> 
<form action="" method="post"> 
<fieldset> 
<p><input type="text" name="username" required value="Username" onBlur="if(this.value=='')this.value='Username'" onFocus="if(this.value=='Username')this.value=''"></p> 
<p><input type="password" name="password"></p> 
<p><input type="submit" name= "login" value="Login"></p> 
<p><input type="submit" name= "register" value="Register"></p> 
<p><input type="submit" name= "forgot" value="Forgot Password"></p> 
</fieldset> 
</form> 
</div> <!-- end login --> 
</body> 
</html> 
+1

我剛剛測試過,對我來說所有的按鈕都起作用。也許我不明白你的問題?根據我按下哪個按鈕,我在功能中獲得這些單詞。 –

+0

你的代碼也適合我。 – RanjanaLK

+0

我將其複製到另一個文件中,它也可以工作,但不能用我的原始代碼。所以我不確定我做了什麼讓它不起作用。對不起,感謝您的幫助。 – user3254596

回答

2

HTML表單不能包含類型的多於一個的輸入「提交」(這意味着他人不會作用)

寄存器忘記是鏈接,而不是按鈕。 相反,你可以使用:

<a href="/register.php">Register</a> 

另一種方法是使用JavaScript,使這些按鈕作爲鏈接。

+0

以及如何使用** a **標籤發送數據? –

+0

當用戶嘗試註冊恢復密碼時,不需要發送任何數據 –

+0

@ErfanGholamian但有用於登錄。 –

0

將我的代碼複製並粘貼到另一個文件後。它沒有任何問題。多個提交按鈕沒有任何問題。