undefined index in POST in any of the 2 manners

0

I have a problem sending a post from any of the 2 forms. Always jump the following notice

 Notice: Undefined index: nombre in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 16

Notice: Undefined index: apellido in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 17

Notice: Undefined index: sexo in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 18

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

Notice: Undefined index: pass in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 19

Notice: Undefined index: nacimiento in /Applications/MAMP/htdocs/DHproyect/clases/usuario.php on line 21

How do I prevent it from appearing? Since after updating the page, the user can log in perfectly.

This is validar.php

public static 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(){
      $errores = [];
      if (trim($_POST["mail"]) == "") {
          $errores[] = "No pusiste email";
      } else if (!$this->userRepository->existeElMail($_POST["mail"])) {
          $errores[] = "El mail no existe";
      } else if (!$this->userRepository->usuarioValido($_POST["mail"], $_POST["pass"])) {
          $errores [] = "El usuario no es valido";
      }
      if (trim($_POST["pass"]) == "") {
          $errores[] = "No pusiste contraseña";
      }
      return $errores;
  }

This my index.php

if ($auth->estaLogueado()){
  header("location:Principal/principal.php");exit;
}else{
  if(isset($_POST['modal-type']) == 'register'){
    $errores = Validar::validarUsuario($_POST);
    if(empty($errores)){
    $usuario = new Usuario($_POST);
    $usuario->setPassword($_POST["pass"]);
    $repositorio->getUserRepository()->guardarUsuario($usuario);
    }
  }
  if(isset($_POST['modal-type']) == 'login'){
        $errores = $validar->validarLogin();
      if(empty($errores)){
      $usuario = $repositorio->getUserRepository()->getUsuarioByMail($_POST["mail"]);
      $auth->loguear($usuario);
      if (isset($_POST["recuerdame"])){
        setcookie("usuarioLogueado", $usuario->getId(), time() + 60 * 60 * 24 * 3);
      }
      header("location:Principal/principal.php");
      exit;
    }
  }
}

form 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="index.php" 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>

                        <input type="hidden" name="modal-type" value="login" />
                        <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="password" 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" value='login' name="submit" type="submit">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>

form 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="index.php" 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>


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

                                                      <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="password" id="pass" class="form-control" name="pass" placeholder="Contraseña">

                                                      <label for="confirmarContrasena" class='sr-only'>Repita contraseña:</label>
                                                      <input type="password" 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" value='register' 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">Iniciar Sesion</button>
                                      <button type="submit" name="submit" class="btn btn-default" data-dismiss="modal">Cerrar</button>
                                    </div>
                                                    </div>
                                                    </div>
                                </div>
    
asked by Infraganti 14.10.2016 в 23:02
source

2 answers

1

The problem is in validar.php since you are using the same check for the login form and the registration form, so when a user tries to log in, validarUsuario waits for the rest of the parameters.

The solution would be to use array_key_exists , with this function you check if the array with has the key to be verified, and then to verify if there is a check on whether it is empty or not.

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

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

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

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

  if($miUsuario['modal-type'] == "register"){
    if(trim($miUsuario["nombre"]) == ""){
      $errores[] = "Falta el nombre";
    }

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

    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";
    }
  }

  return $errores;
}

function validarLogin(){
    $errores = [];
    if (trim($_POST["mail"]) == "") {
        $errores[] = "No pusiste email";
    } else if (!$this->userRepository->existeElMail($_POST["mail"])) {
        $errores[] = "El mail no existe";
    } else if (!$this->userRepository->usuarioValido($_POST["mail"], $_POST["pass"])) {
        $errores [] = "El usuario no es valido";
    }
    if (trim($_POST["pass"]) == "") {
        $errores[] = "No pusiste contrase&ntilde;a";
    }
    return $errores;
}
    
answered by 14.10.2016 в 23:38
0

Hello good day you can try with the following: initialize the indexes to know if they exist in the array and if you do not generate them in white and already enter your validations without thundering

public static function validarUsuario($miUsuario){
    $errores = [];
    $miUsuario["nombre"]=isset($miUsuario["nombre"])?$miUsuario["nombre"]:""; // inicializar los índices para saber si existen en el array y si no los generas en blanco y ya entran a tus validaciones sin que marque error.

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

    return $errores;
  }

I hope it helps you.

Greetings.

    
answered by 17.10.2016 в 06:20