19

登録フォームとログインフォームの両方を同じページに配置したい。
どちらも次のように始まります。

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)...

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

4

6 に答える 6

49

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ファイルを持っています

于 2012-12-28T14:52:56.033 に答える
9

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

または、特定の入力とそのベース投稿に異なる値を設定します。

switch($_POST['submit']) {
    case 'login': 
    //...
    break;
    case 'register':
    //...
    break;
}
于 2012-12-28T14:51:07.667 に答える
1

これがあなたを助けることを願っています。ログインフォームには、ユーザー名とパスワードの入力があると仮定します。

if(isset($_POST['username']) && trim($_POST['username']) != "" && isset($_POST['password']) && trim($_POST['password']) != ""){
//login
} else {
//register
}
于 2012-12-28T14:52:09.527 に答える