PHP - excepciones y retorno de nombre de usuario

 
Vista:
Imágen de perfil de Nicolas
Val: 93
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

excepciones y retorno de nombre de usuario

Publicado por Nicolas (52 intervenciones) el 24/12/2018 15:13:23
buenos dias compañeros! estoy haciendo un tp para la facu, es un formulario de registro y logeo, ya casi lo tengo pero me faltan dos cosas, hacer las excepciones de logeo y retomar el nombre de usuario cuanod me logeo exitosamente. las excepciones no me funcionan cuando emvio los datos a un php externo! cualquier ayuda se los agradeceria les dejo los archivos del formulario!

index.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
63
64
65
66
67
68
69
70
71
72
73
<?php
error_reporting(0);
  if ($_POST) {
    try {
        validar_formulario();
 
    } catch (Exception $e) {
     $leyenda_error="";
     $leyenda_error= $e->getMessage();
    }
  }
  function validar_formulario(){
    $mensaje="";
    if(!$_POST["email"]){
        $mensaje.="Completar campo usuario <br>";
    }
    if(!$_POST["password"]){
        $mensaje.="Completar campo password<br>";
    }
 
    if($mensaje){
        throw new Exception($mensaje);
    }
  }
?>
<html>
<head>
 
</head>
<body>
 
<div class="row">
 
 
 <div class="col-md-8">
    <h1>Registrar usuario</h1>
    <form action="registro.php" method="POST">
 
       <div class="form-group">
         <label>Nombre</label>
         <input type="text" name="nombre" placeholder="" required="" ><br>
          <label>Apellido</label>
         <input type="text" name="apellido" placeholder="" required=""><br>
         <label>Telefono</label>
         <input type="number" name="telefono" placeholder="" required=""><br>
         <label>Email</label>
         <input type="email" name="email_r" placeholder="introdusca su mail" required=""><br>
         <label>Password</label>
         <input type="password" name="password_r" placeholder="introzusca su password" required="" ><br>
         <label>Cofirmar Password</label>
         <input type="password" name="password_r2" placeholder="introduzca nuevamente su password" required="" >
         </div>
         <input type="submit" name="button_login" value="Registrar" class="btn btn-primary">
         </form>
 
 
         <h1>Iniciar Sesion</h1>
         <form action="login2.php" method="POST">
 
         <div class="form-group">
             <label>Usuario</label>
             <input type="email" name="email" placeholder="introdusca su mail" required=""><br>
             <label>Password</label>
             <input type="password" name="password" placeholder="introduzca su password" required="">
             </div>
             <input type="submit" name="button_login" value="login" class="btn btn-primary">
 
             </form>
             </div>
             </div>
              <div><?php echo $leyenda_error?></div>
</body>
</html>

login.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 
$email = $_POST['email'];
$password = $_POST['password'];
 
$conexion=mysqli_connect("localhost","root","","login1");
$consulta="SELECT email,password FROM usuario WHERE email='$email'";
$resultado=mysqli_query($conexion,$consulta);
 
$filas=mysqli_num_rows($resultado);
 
if($filas>0) {
	header("Location:bienvenido.php");
}
else {
	echo "Error en la autentificacion";
}
 
 
mysqli_free_result($resultado);
mysqli_close($conexion);
?>

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
<?php
 
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$telefono = $_POST['telefono'];
$email = $_POST['email_r'];
$password = $_POST['password_r'];
$password2 = $_POST['password_r2'];
 
require_once'conexion.php';
 
if( filter_var($email,FILTER_VALIDATE_EMAIL) ) {
 
	if( $password == $password2) {
 
        $validacion ="SELECT email FROM usuario WHERE email='$email'";
 
        $resultado = $db->query($validacion);
 
        if($resultado->num_rows > 0) {
                echo"El email ya existe en la base de datos";
        } else {
 
        $hash = password_hash($password,PASSWORD_DEFAULT);
 
        $query = " INSERT INTO usuario (nombre,apellido,telefono,email,password) VALUES ('$nombre','$apellido','$telefono','$email','$hash')";
 
        if( $db->query($query)) {
        	echo"El usuario se registro correctamente";
        } else {
        	echo"Error al registra usuario";
        }
}
 
	} else {
		echo"Password no coincide";
	}
}else{
        echo"El mail no es valido";
}

desde ya muchas gracias!
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

excepciones y retorno de nombre de usuario

Publicado por xve (6935 intervenciones) el 25/12/2018 08:33:08
Hola Nicolas, la verdad es que no se muy bien donde puedes tener el problema... tendrías que ir mirando paso a paso... primero, que recibe correctamente los valores en registro.php, luego que realmente se conecta a la base de datos y que la comprobación del correo funciona, etc...

Asín a simple vista, no se muy bien donde puedes tener el problema.
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 Nicolas
Val: 93
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

excepciones y retorno de nombre de usuario

Publicado por Nicolas (52 intervenciones) el 25/12/2018 19:23:02
no puedo hacer andar las excepciones cuando emvio los datos al login.php y no se como retomar el valor de la variable nombre para hacer un biemvenido "nombre de usuario" en la pagina donde te lleva el login exitoso! este seria el archivo donde se dirige despues de logeado!

bienvenido.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
 
 
 
include 'conexion.php';
 
?>
 
<body>
 
<div class="row">
 <div class="col-md-1"></div>
 
 <div class="col-md-8">
    <h1>Bienvenido </h1>
 </div>
 
    </div>
    </body>
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

excepciones y retorno de nombre de usuario

Publicado por xve (6935 intervenciones) el 26/12/2018 08:08:45
Hola Nicolas, cuando el usuario se valida, creo que no tienes el nombre, no? solo lo tienes cuando se registra verdad?

Tendrías que cambiar la consulta SQL para que te devuelve el nombre ademas del correo y password...

Una vez tienes el nombre, lo puedes enviar de dos maneras...

1.- enviando el nombre en la url en formato GET... algo así:
1
header("Location:bienvenido.php?nombre=Pepe");

2.- otra opcion es ponerlo en una variable de sesion... de esta manera, podras tener acceso al nombre en cualquier momento.
1
$_SESSION["nombre"]="Pepe";


Espero que te sirva.
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