web-dev-qa-db-ja.com

同じページに2つのフォームを配置する方法は?

同じフォームに登録フォームとログインフォームの両方を配置します。
両方とも次で始まります:

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

だから、私は次のようなものが必要です:

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

また、2番目のフォームがビジーの場合に最初のフォームが実行されないようにする方法、およびその逆(ユーザーが両方をクリックする)
私の考えは、プロセスの開始時に単純な変数、たとえば$x = 1およびプロセスの最後に$x = 0、 そう:

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

おそらく、もっと良い方法があります。

11
Alegro

2つの異なるアクションで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ファイルはswitch($ _ POST ['action'])として機能します... ...さらに、両方のリンクを同時にクリックしたり、同時にリクエストしたりすることはできません。各送信は個別のリクエストです。

あなたのPHPは、スイッチロジックを続行するか、ログイン手順を実行してから登録手順を実行する別のphpファイルを作成します

36
cristi _b

各フォームをdifferentページに移動させることができます。 (望ましい)

または、特定の入力に対して異なる値を設定し、それに基づいて投稿します。

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

両方のフォームの送信ボタンに異なる名前を付け、PHPを使用して、どのボタンがデータを送信したかを確認します。

フォーム1ボタン-btn1フォーム2ボタン-btn2

PHPコード:

if($_POST['btn1']){
    //Login
}elseif($_POST['btn2']){
    //Register
}
5
mark kasina

これがお役に立てば幸いです。ログインフォームにユーザー名とパスワードの入力があると仮定します。

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

この最も簡単な方法を使用できます。

<form action="validator.php" method="post" id="form1">
    <input type="text" name="user">
    <input type="password" name="password">
    <input type="submit" value="submit" form="form1">
</form>

<br />

<form action="validator.php" method="post" id="form2">
    <input type="text" name="user">
    <input type="password" name="password">
    <input type="submit" value="submit" form="form2">
</form>
0
Rayobeats