Use ($ _POST) in certain MODAL with Bootstrap

2

Hello everyone, I have 2 manners in my index. I have the registration modal (registration form) and the login modal (login form). How do I get my php to know which modal comes my ($ _POST)? Since at the beginning of my index I have this.

<?php
session_start();
require_once("validacionesUsuarios.php");

if (isLogged()){
    enviarAlIndex(); //Enviar a la home.
}

// VALIDO EL LOGIN DEL USUARIO(TIENE QUE EXISTIR)
if ($_POST){
    $errores = validarLogin($_POST);

    if(empty($errores)){
        $usuarioActivo = obtenerUsuarioPorMail($_POST["mail"]);
        loguearUsuario($usuarioActivo);

        if (isset($_POST["recuerdame"])){

            setcookie("logueado", $usuarioActivo["id"], time() + 60 * 60 * 24 * 5);
        }
        enviarAlIndex();
    }

 // VALIDO USARIO QUE SE VA A REGISTRAR
    $errores = validarUsuario($_POST);
 // SI NO HAY NINGUN ERROR, CREAMOS UN USUARIO NUEVO
    if(empty($errores)){
        // CREO UN USUARIOS CON LOS DATOS DEL POST
        $nuevoUsuario = crearUsuario($_POST);
        // CON LOS DATOS QUE NOS DEVUELVE EL CREARUSUARIO() LO GUARDAMOS EN EL JSON
        guardarUsuario($nuevoUsuario);
    }
    enviarAlIndex();
}

this would be the index.html

<!--COMIENZO MODAL LOGIN-->
            <div class="modal fade" id="user_login" role="dialog">
              <div class="modal-dialog">
                <div class="modal-content">
                  <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h2 class="modal-title" style="display:block" id="user_login">Iniciar Sesion</h2>
                  </div>
                  <div class="modal-body">

                                      <!-- MODAL BODY LOGIN -->
                    <div id="user_login" style='display:block'>
                      <form action="" method="POST">
                              <?php if(!empty($errores)) {?>
                              <div id="errores">
                                <ul id="errorno">
                                    <?php foreach ($errores as $error){?>
                                      <li>
                                      <?php echo $error;?>
                                    </li>
                                </ul>
                                <?php  }}?>
                            </div>

                            <a class="btn btn-block btn-social btn-facebook">
                            Iniciar sesion con Facebook
                            <i class="fa fa-facebook" id='redessociales' aria-hidden="true"></i></a>

                            <a class="btn btn-block btn-social btn-google">
                            Iniciar sesion con Google
                            <i class="fa fa-google" id='redessociales' aria-hidden="true"></i>
                            </a>

                            <label for="inputEmail" class="sr-only">Email</label>
                            <input type="text" name="mail" id="mail" class="form-control" placeholder="Email" autofocus="" >


                            <label for="inputPassword" class="sr-only">Contraseña</label>
                            <input type="pass" id="pass" class="form-control" name="pass" placeholder="Contraseña">

                          <div class="Checkbox">
                            <label>
                              <input type="checkbox" value="recuerdame">Recuerdame
                            </label>
                          </div>
                          <div>
                            <button class="btn btn-lg btn-primary btn-block" id="submit" name="submit" type="submit" value="Iniciar Sesion">Iniciar Sesion</button>
                          </div>
                          <a href="#user_recovery" data-dismiss="modal" data-toggle="modal">Olvidaste tu contraseña?</a>
                        </form>
                        <div class="modal-footer">
                                                    <button type="button" class="btn btn-default" data-dismiss="modal" data-toggle="modal" data-target="#user_register">Registrate!</button>
                          <button type="submit" name="submit" class="btn btn-default" data-dismiss="modal">Cerrar</button>
                        </div>
                                            </div>
                        </div>
                                        </div>
                                    </div>
                                    </div>
                  <!-- FIN MODAL LOGIN -->

                  <!-- COMIENZO MODAL REGISTER -->
                                    <div id="user_register" class="modal fade" role="dialog" style="z-index: 1600;">
                                        <div class="modal-dialog">
                                            <!-- Modal content-->
                                            <div class="modal-content">
                                              <div class="modal-header">
                                                <button type="button" class="close" data-dismiss="modal">&times;</button>
                                                <h2 class="modal-title" style="display:block">Registrarse</h2>
                                              </div>
                                                <div class="modal-body">
                                                  <div id="user_register" style='display:block'>
                                                    <form action="" method="POST">
                                                            <?php if(!empty($errores)) {?>
                                                            <div id="errores">
                                                              <ul>
                                                                  <?php foreach ($errores as $error){?>
                                                                    <li>
                                                                    <?php echo $error;?>
                                                                  </li>
                                                              </ul>
                                                              <?php  }}?>
                                                          </div>
                                                          <div>
                                                                                    <a class="btn btn-block btn-social btn-facebook">
                                                        Registrate con Facebook
                                                        <i class="fa fa-facebook" id='redessociales' aria-hidden="true"></i></a>

                                                        <a class="btn btn-block btn-social btn-google">
                                                        Registrate con Google
                                                        <i class="fa fa-google" id='redessociales' aria-hidden="true"></i>
                                                        </a>

                                                          <label for="nombre" class='sr-only'>Nombre:</label>
                                                          <input  id="nombre" type="text" name="nombre" class='form-control' placeholder="Nombre">

                                                                                    <label for="nombre" class='sr-only'>Apellido:</label>
                                                          <input  id="apellido" type="text" name="apellido" class='form-control' placeholder="Apellido">

                                                                                    <label for="inputEmail" class="sr-only">Email</label>
                                                        <input type="text" name="mail" id="mail" class="form-control" placeholder="Email" autofocus="">

                                                        <label for="inputPassword" class="sr-only">Contraseña</label>
                                                        <input type="pass" id="pass" class="form-control" name="pass" placeholder="Contraseña">

                                                          <label for="confirmarContrasena" class='sr-only'>Repita contraseña:</label>
                                                          <input type="cpass" name="cpass" class="form-control" placeholder="Confirma Contraseña">

                                                          <label for="sexo">Sexo:</label>
                                                          <select name="sexo" class='form-control' id="sexo">
                                                              <option value="M">Masculino</option>
                                                              <option value="F">Femenino</option>
                                                          </select>

                                                          <label for="nacimiento">Fecha de Nacimiento:</label>
                                                          <input type="date" name="nacimiento"  id="nacimiento" class='form-control'placeholder="aaaa-mm-dd">
                                                          <li>
                                                              <button type="submit" id='botonregistrarse'class="btn btn-lg btn-primary btn-block">Registrate!</button>
                                                          </li>
                                                          </div>
                                                      </form>
                                                        </div>
                                                        </div>
                                                                <div class="modal-footer">
                                                                    <button type="button" class="btn btn-default" data-dismiss="modal" data-toggle="modal" data-target="#user_login">Volver</button>
                                          <button type="submit" name="submit" class="btn btn-default" data-dismiss="modal">Cerrar</button>
                                        </div>
                                                        </div>
                                                        </div>
                                    </div>
                        <!-- FIN DE MODAL -->

this is my validacionesUsuarios.php

<?php
// session_start();
//
// loguearCookie();
//
// function enviarAIndex(){
//   header("location:Principal/principal.html");
//   exit;

 function validarUsuario($miUsuario){
    $errores = [];

    if(trim($miUsuario["nombre"]) == ""){
      $errores[] = "Falta el nombre";
    }

    if(trim($miUsuario["apellido"]) == ''){
      $errores[] = "Falta el apellido";
    }

    if(trim($miUsuario["mail"])== ""){
      $errores[] = "Falta el mail";
    }

    if(trim($miUsuario["pass"]) == ""){
      $errores[]= "Falta el password";
    }

    if(trim($miUsuario["cpass"]) == ""){
      $errores[] = "Confirma el password";
    }

    if(!isset($miUsuario["sexo"])){
      $errores[] = "Selecciona un sexo";
    }

    if(!date($miUsuario["nacimiento"])){
      $errores[] = "Escribi bien la fecha";
    }

    if($miUsuario["pass"] !== $miUsuario["cpass"]){
      $errores[] = "Las contraseñas no coinciden";
    }

    if(!filter_var($miUsuario["mail"], FILTER_VALIDATE_EMAIL)){
      $errores[] = "Formato email incorrecto";
    }
    return $errores;
  }

  function validarLogin($miUsuario){
    $errores = [];
    /*controlamos de que no este vacio el mail, luego de que exista en el json
    y finalmente si coincide el mail con la contraseña */
    if (trim($miUsuario["mail"]) == "") {
      $errores[] = "Ingresar un mail.";
    } elseif (!existeMail($miUsuario["mail"])) {
      $errores[] = "Mail ingresado no existe";
    } elseif (!validacionPass($miUsuario["mail"], $miUsuario["pass"])) {
      $errores[] = "El usuario y la contrasena no coinciden.";
    }

    if (trim($miUsuario["pass"]) == "") {
      $errores[] = "Ingresar una contrasena.";
    }
    return $errores;
  }
}
    
asked by Infraganti 12.10.2016 в 18:01
source

4 answers

3

You could add a hidden field in each of the manners, you should call this field the same in both manners, but with a different value.

Register:

<input type="hidden" name="modal-type" value="register" />

Login:

<input type="hidden" name="modal-type" value="login" />

Then in your validationsUsuarios.php you can know where it comes from with $ _POST ["modal-type"]:

if($_POST["modal-type"] == "register") {
    // El usuario se está registrando
} else if($_POST["modal-type"] == "login") {
    // El usuario está iniciando sesión
}
    
answered by 12.10.2016 / 18:29
source
1

The easiest thing is that within each form you put an input of type "hidden" with value "login" or "record".

<input name="tipo_operacion" type="hidden" value="registro">

or:

<input name="tipo_operacion" type="hidden" value="login">

This value can be retrieved in php with: $ _POST ['operation_type'].

    
answered by 12.10.2016 в 18:22
0

You can treat modals as separate html forms with specific actions for each form, that is, you can send the registration form to registro.php and the login form to login.php with this solution you will have more separate code and more ordered.

    
answered by 12.10.2016 в 18:26
0

I recommend that the forms are directed to different files so that you do not have a single file capable of processing both forms since this would make it a bit difficult to detect errors and maintain the code in the future, since things are a little "mixed"

    
answered by 12.10.2016 в 18:42