PHP - VALIDACION FORMULARIO EN CONTROLADOR

 
Vista:
Imágen de perfil de IVAN BARRIOS MASS
Val: 42
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por IVAN BARRIOS MASS (10 intervenciones) el 19/02/2020 20:39:39
Hola a todos.
Estoy tratando de validar formulario en mi controlador, pero me sale esto:

Parse error: syntax error, unexpected 'array' (T_ARRAY) in C:\xampp\htdocs\paquete\controlador\controller_login.php on line 16

Este es mi código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
require_once('../modelo/usuario.php');
require_once('../modelo/crud_usuario.php');
require_once('../modelo/conexion.php');
 
//inicio de Sesion
 
session_start();
$usuario=new Usuario();
$crud=new CrudUsuario();
 
//Verifica si la variable registrarse está definida
//se da que está definida cuando el usuario se loguea, ya que la envía en la petición
 
if(isset($_POST['boton'])){
	$errors=new array();
		if($usuario->setNombre($_POST['nombre'])==''){
		$errors[1]='<span class="error">Ingrese su nombre</span>';
	}elseif ($usuario->setCorreo($_POST['correo'])=='' or !preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/",$_POST['email'])) {
		$errors[2]='<span class="error">Ingrese un email válido</span>';
	}elseif ($usuario->setUsuario($_POST['usuario'])=='') {
		$errors[3]='<span class="error">Ingrese un usuario válido</span>';
	}else{
 
 
 
    if (isset($_POST['registrarse']))
    {
        $usuario->setNombre($_POST['nombre']);
        $usuario->setCorreo($_POST['correo']);
        $usuario->setUsuario($_POST['usuario']);
        $usuario->setClave($_POST['clave']);
        // $usuario->setRol($_POST['odbc_rollback(connection_id)']);
        if ($crud->buscarUsuario($_POST['usuario']))
        {
            $crud->insertar($usuario);
            header('Location: ../index.php');
 
        }else{
            header('Location: error.php?mensaje=El Nombre de Usuario ya existe');
            }
 
    }elseif (isset($_POST['entrar']))
        {
                $usuario=$crud->obtenerUsuario($_POST['usuario'],$_POST['clave']);
        // si el id del objeto reornado no es null, quiere decir que encontró un registro en la base.
            if ($usuario->getIdusuario()!=NULL)
                {
                $_SESSION['usuario']=$usuario; //Si el usuario se encuentra, crea la sesión de usuario
                header('Location: ../sistema/');
 
 
                }else
                    {
                        header('Location: error.php?mensaje=Tus nombre de  usuario o clave son incorrectos');
                    }
        }elseif (isset($_POST['salir'])) //Cuando presiona el botón salir
            {
            header('Locacion:index.php');
            unset($_SESSION['usuario']);//destruye la sesión.
            }
 
	}
 
}
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Julio
Val: 1.658
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por Julio (492 intervenciones) el 19/02/2020 22:23:10
Hola.

Quita el new en la línea 16 y déjalo solo como:

1
$errors = array();

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de IVAN
Val: 42
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por IVAN (10 intervenciones) el 20/02/2020 12:21:09
Al quitarle new, la vista no reconoce el controlador.


warning: require_once(../modelo/usuario.php): failed to open stream: No such file or directory in C:\xampp\htdocs\paquete\controlador\controller_login.php on line 2

Fatal error: require_once(): Failed opening required '../modelo/usuario.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\paquete\controlador\controller_login.php on line 2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 1.658
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por Julio (492 intervenciones) el 20/02/2020 12:25:14
Hola.

¿Dónde has quitado el new? Te comentaba que se lo quitaras solo aquí:

1
$errors=new array();

En la línea 16, que es donde te estaba dando antes el error. Porque lo que quieres ahí es definir un nuevo array vacío, ¿no? Eso se hace así simplemente:

1
$errors = array();

El error que te da ahora es en la línea 2 y tiene que ver con controller_login.php. ¿Qué hay en ese archivo?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de IVAN
Val: 42
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por IVAN (10 intervenciones) el 20/02/2020 12:56:24
Eso hice. quité "new" pero ahora, me sale un error en la vista en donde tengo el formulario que no me renoce el controller_login.php

En el controller_login.php tengo el código descrito en mi primer mensaje que aquí repito.
El objetivo es poder validar en esta pagina todo el proceso de validación. De tal manera, si tienes una mejor manera de hacerlo, te lo agradecería.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
require_once('../modelo/usuario.php');
require_once('../modelo/crud_usuario.php');
require_once('../modelo/conexion.php');
 
//inicio de Sesion
 
session_start();
$usuario=new Usuario();
$crud=new CrudUsuario();
 
//Verifica si la variable registrarse está definida
//se da que está definida cuando el usuario se loguea, ya que la envía en la petición
 
if(isset($_POST['boton'])){
	$errors=new array();
		if($usuario->setNombre($_POST['nombre'])==''){
		$errors[1]='<span class="error">Ingrese su nombre</span>';
	}elseif ($usuario->setCorreo($_POST['correo'])=='' or !preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/",$_POST['email'])) {
		$errors[2]='<span class="error">Ingrese un email válido</span>';
	}elseif ($usuario->setUsuario($_POST['usuario'])=='') {
		$errors[3]='<span class="error">Ingrese un usuario válido</span>';
	}else{
 
 
 
    if (isset($_POST['registrarse']))
    {
        $usuario->setNombre($_POST['nombre']);
        $usuario->setCorreo($_POST['correo']);
        $usuario->setUsuario($_POST['usuario']);
        $usuario->setClave($_POST['clave']);
        // $usuario->setRol($_POST['odbc_rollback(connection_id)']);
        if ($crud->buscarUsuario($_POST['usuario']))
        {
            $crud->insertar($usuario);
            header('Location: ../index.php');
 
        }else{
            header('Location: error.php?mensaje=El Nombre de Usuario ya existe');
            }
 
    }elseif (isset($_POST['entrar']))
        {
                $usuario=$crud->obtenerUsuario($_POST['usuario'],$_POST['clave']);
        // si el id del objeto reornado no es null, quiere decir que encontró un registro en la base.
            if ($usuario->getIdusuario()!=NULL)
                {
                $_SESSION['usuario']=$usuario; //Si el usuario se encuentra, crea la sesión de usuario
                header('Location: ../sistema/');
 
 
                }else
                    {
                        header('Location: error.php?mensaje=Tus nombre de  usuario o clave son incorrectos');
                    }
        }elseif (isset($_POST['salir'])) //Cuando presiona el botón salir
            {
            header('Locacion:index.php');
            unset($_SESSION['usuario']);//destruye la sesión.
            }
 
	}
 
}
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 1.658
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por Julio (492 intervenciones) el 20/02/2020 13:05:02
1
Fatal error: require_once(): Failed opening required '../modelo/usuario.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\paquete\controlador\controller_login.php on line 2

Te está diciendo que no ha podido abrir ../modelo/usuario.php así que empieza mirando eso. ¿Está ese archivo donde toca?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de IVAN
Val: 42
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por IVAN (10 intervenciones) el 20/02/2020 13:20:56
sí, claro. Si yo quito todo lo de validación, el controlador me funciona perfecto. Ya lo venía usando. Es que ahora quería validar mi formulario desde ese controlador y no he podido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 1.658
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por Julio (492 intervenciones) el 20/02/2020 13:24:47
¿Pero qué error te sigue dando? ¿Que no puede abrir usuario.php? Si el error está ahí, debes mirar ahí, supongo. Porque sin más datos es difícil saber dónde está el error, pues lo que te muestra es, simplemente, que no puede acceder a usuario.php.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de IVAN
Val: 42
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por IVAN (10 intervenciones) el 20/02/2020 14:28:17
Gracias por estar atento. Te comento, en el archivo de registro.php le quité un require y ya no me sale el error. Ahora, me sale el error de la imagen que anexo.
Este es el código del archivo registro.php.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<html>
  <?php require_once ("include/head.php");
 
 
  ?>
 
  <body>
 
	<header>
        <div class="header">
            <h1>Administrador de Proyectos</h1>
        </div>
        <div></div>
	</header>
      <div class="content">
 
 
 
        <section id="content">
            <form class="" action="controlador/controller_login.php" method="post">
                <div class="imgcontainer" id="registro">
                      <!-- <span onclick="document.getElementById('id01').style.display='none'" class="close" title="Close Modal">&times;</span> -->
                      <img src="img/usuario.jpg" alt="Avatar" class="avatar">
                        <p>REGISTRARSE</p>
                </div>
 
                <div class="container">
                      <label for="nombre"><b>Nombre</b></label>
                      <input type="text" placeholder="" name="nombre">
                        <?php echo $errors[1]; ?>
                      <label for="correo"><b>Correo</b></label>
                      <input type="email" placeholder="" name="correo">
 
                      <label for="usuario"><b>Usuario</b></label>
                      <input type="text" placeholder="" name="usuario" >
 
                      <label for="clave"><b>Contraseña</b></label>
                      <input type="password" placeholder="Ingrese Contraseña" name="clave">
                      <input type="hidden" name="registrarse" value="registrarse">
                      <input type="hidden" name="rol" value="1">
                        <button type="submit" name="boton">Enviar</button>
                      <label>
                        <input type="checkbox" checked="checked" name="remember"> Recuerdame
                      </label>
                </div>
 
                <div class="container" style="background-color:#f1f1f1">
                  <!-- <a class="cancelbtn" style="font-style: none" href="index.php">Iniciar Sesión</a> -->
                  <span class="psw">¿Iniciar <a href="index.php">sesión?</a></span>
                  <span class="psw">¿Olvidó su <a href="#">contraseña?</a></span>
                </div>
            </form>
 
        </section>
 
 
    </div>
     <footer>
        &lt;footer&gt;
	</footer>
  </body>
</html>
error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 1.658
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por Julio (492 intervenciones) el 20/02/2020 14:34:51
Hola.

Fíjate lo que te dice. La variable $errors no está definida y la usas en la línea 30 de registro.php.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de IVAN
Val: 42
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por IVAN (10 intervenciones) el 20/02/2020 14:42:25
Pero está definida en el controlador. Qué debo hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 1.658
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por Julio (492 intervenciones) el 20/02/2020 14:46:18
¿Dónde la defines exactamente? ¿En qué archivo? ¿En qué línea?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de IVAN
Val: 42
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por IVAN (10 intervenciones) el 20/02/2020 14:49:01
es la array que había definido en el controlador.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 1.658
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por Julio (492 intervenciones) el 20/02/2020 14:50:30
¿Pero sigue estando $errors = new array() o está $errors = array()?

Y otra pregunta, ¿qué haces si if(isset($_POST['boton'])) no existe?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de IVAN
Val: 42
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por IVAN (10 intervenciones) el 20/02/2020 14:57:33
Me tomo el atrevimiento de enviarte el paquete.
El controlador controller_login.php está en la carpeta "controlador" y el "regiistro.php" está al lado del index.php del proyecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 1.658
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por Julio (492 intervenciones) el 20/02/2020 15:15:04
A ver, que creo que te has perdido un poco.

Habrá más cosas pero, en primer lugar, en index.php tienes un formulario de ingreso donde al nombre de usuario le pones un input con name="usuario" y luego, llegas a controller_login.php y lo primero que haces es $usuario->setNombre($_POST['nombre']). Sí, obviamente esto lo haces para cuando se registren, pero como lo estás poniendo en un if, NUNCA se va a loguear nadie, pues siempre les aparecerá el error de "Ingrese su nombre", porque cuando haces login no encuentra ese $_POST['nombre'].

Luego, si te dice que no encuentra definida la variable $errors en registro.php y coges y se la plantas arriba del todo vacía..., obviamente sí, ahora existe, ¡pero está vacía! Cuando debajo del input con name="nombre" le pones que acceda a $errors[1] te va a saltar un error, ¡porque ahora $errors está vacía! Así que quita de registro.php ese $errors = array(), que no hace nada ahí.

Te volverá a decir que no existe $errors, pero es que ES NORMAL que no exista en este punto, pues todavía no la has definido ya que no hay errores. Por ello, ahí deberías hacer algo como if (isset($errors)) y, si existe, entonces imprimir el error que quieres.

P.D.: Acostúmbrate a empezar a contar desde 0 y no desde 1. A largo plazo lo agradecerás, jeje.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de IVAN
Val: 42
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por IVAN (10 intervenciones) el 20/02/2020 15:18:07
agradezco mucho tu paciencia. Voy a trabajar en esos cambios. Muchas gracias. valoro tu tiempo y recomendaciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 1.658
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por Julio (492 intervenciones) el 20/02/2020 15:22:29
De nada, para eso estamos. Ve modificando lo que veas y, si te siguen apareciendo errores de variables no definidas, piensa por qué no están definidas aún y cuándo lo estarán, y comprueba entonces si lo están para mostrarlas o no.

Y, ya que estamos, te invito a suscribirte en mi blog y si en algo te ayuda lo que voy publicando, bienvenido será. En el índice de contenidos podrás ver todo lo que está previsto que publique próximamente.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de IVAN
Val: 42
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

VALIDACION FORMULARIO EN CONTROLADOR

Publicado por IVAN (10 intervenciones) el 20/02/2020 15:36:43
Ya me inscribí a tu blog y te dejé un mensaje por contacto. Mil gracias.!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar