web-dev-qa-db-fra.com

Comment placer deux formulaires sur la même page?

Je souhaite placer le formulaire d'inscription et de connexion sur la même page.
Ils commencent tous deux par: 

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

alors j'ai besoin de quelque chose comme:

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

Comment empêcher l'exécution du premier formulaire si le second est occupé, et vice versa (l'utilisateur clique sur les deux)
Mon idée est de créer une variable simple sur le processus de démarrage, par exemple $x = 1 et à la fin du processus $x = 0, donc: 

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

Probablement, il y a un meilleur moyen.

10
Alegro

Vous pouvez créer deux formulaires avec 2 actions différentes

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

Ou faire ceci

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

Ensuite, votre fichier PHP fonctionnerait comme un commutateur ($ _ POST ['action']) ... de plus, ils ne peuvent pas cliquer sur les deux liens en même temps ou faire une demande simultanée, chaque soumission étant distincte. demande.

Votre PHP continuerait alors avec la logique du commutateur ou aurait différents fichiers php faisant une procédure de connexion puis une procédure d'enregistrement

32
cristi _b

Eh bien, vous pouvez demander à chaque formulaire d’accéder à une page différente . (ce qui est préférable) 

Ou avoir une valeur différente pour une entrée donnée et une publication de base sur celle-ci:

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

Attribuez aux boutons de soumission des noms différents des formulaires et utilisez PHP pour vérifier quel bouton a envoyé les données.

Forme un bouton - btn1 Forme deux bouton -btn2

Code PHP:

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

J'espère que ceci vous aidera. Supposons que le formulaire de connexion comporte les éléments suivants: entrées du nom d'utilisateur et du mot de passe.

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