PHP - por que mi register no funciona?

 
Vista:

por que mi register no funciona?

Publicado por usuario1 (30 intervenciones) el 14/10/2020 01:13:34
me devuelve 'Ha ocurrido un error en el registro, intentelo de nuevo'


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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
ob_start();
?>
<?php
session_start();
if(isset($_SESSION['logueado']) && $_SESSION['logueado'] == TRUE) {
  header("Location: home.php");
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
  <title>Photogram</title>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0">
  <link rel="stylesheet" href="css/style.css" type="text/css">
</head>
 
<body>
 
<div id="wrapper">
 
  <?php
  if(isset($_POST['registro'])) {
 
    require("conexion.php");
 
    $email = $mysqli->real_escape_string($_POST['mail']);
    $nombre = $mysqli->real_escape_string($_POST['nombre']);
    $usuario = $mysqli->real_escape_string($_POST['usuario']);
    $password = md5($_POST['password']);
    $ip = $_SERVER['REMOTE_ADDR'];
 
    $consultausuario = "SELECT username FROM users WHERE username = '$usuario'";
    $consultaemail = "SELECT email FROM users WHERE email = '$email'";
 
    if($resultadousuario = $mysqli->query($consultausuario));
    $numerousuario = $resultadousuario->num_rows;
 
    if($resultadoemail = $mysqli->query($consultaemail));
    $numeroemail = $resultadoemail->num_rows;
 
    if($numeroemail>0) {
      echo "Este correo ya esta registrado, intenta con otro";
    }
 
    elseif($numerousuario>0) {
      echo "Este usuario ya existe";
    }
 
    else {
 
      $aleatorio = uniqid();
 
      $query = "INSERT INTO users (email,name,username,password,signup_date,last_ip,code) VALUES ('$email','$nombre','$usuario','$password',now(),'$ip','$aleatorio')";
 
      if($registro = $mysqli->query($query)) {
 
        Header("Refresh: 2; URL=index.php");
 
        echo "Felicidades $usuario se ha registrado correctamente, te hemos enviado un correo de confirmacion.";
 
        // Debes editar las próximas dos líneas de código de acuerdo con tus preferencias
        $email_to = $email;
        $email_subject = "Confirma tu email Photogram";
        $email_from = "reply.tusitioweb.com";
 
        $email_message = "Hola " . $usuario . ", para poder disfrutar de nuestro sitio web, debes confirmar tu email\n\n";
        $email_message .= "Ingresa el siguiente codigo para confirmar tu email\n\n";
        $email_message .= "Codigo: " . $aleatorio . "\n";
 
 
        // Ahora se envía el e-mail usando la función mail() de PHP
        $headers = 'From: '.$email_from."\r\n".
        'Reply-To: '.$email_from."\r\n" .
        'X-Mailer: PHP/' . phpversion();
        @mail($email_to, $email_subject, $email_message, $headers);
 
 
      }
 
      else {
 
        echo "Ha ocurrido un error en el registro, intentelo de nuevo";
        header("Refresh: 2; URL=registro.php");
 
      }
 
 
    }
 
    $mysqli->close();
 
  }
  ?>
 
  <div class="main-content">
    <div class="header">
      <img src="images/logo.png" />
    </div>
    <form action="" method="post">
      <div class="l-part">
        <input type="email" placeholder="Correo electrónico" class="input" name="mail" required />
        <div class="overlap-text">
          <input type="text" placeholder="Nombre completo" class="input" name="nombre" required />
        </div>
        <div class="overlap-text">
          <input type="text" placeholder="Usuario" class="input" name="usuario" required />
        </div>
        <div class="overlap-text">
          <input type="password" placeholder="Contraseña" class="input" name="password" required />
        </div>
        <input type="submit" value="Registrarte" class="btn" name="registro" />
      </div>
    </form>
  </div>
  <div class="sub-content">
    <div class="s-part">
      ¿Tienes una cuenta? <a href="index.php">Entrar</a>
    </div>
  </div>
 
</div>
 
</body>
</html>
<?php
ob_end_flush();
?>
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 javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

por que mi register no funciona?

Publicado por javier (547 intervenciones) el 14/10/2020 07:40:34
hola, lo que esta claro es que esta linea falla y por eso entra el ELSE

1
if($registro = $mysqli->query($query)) {

tienes algun campo autoincrement en la tabla users??
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

por que mi register no funciona?

Publicado por usuario1 (30 intervenciones) el 14/10/2020 14:08:38
si, el id es el AI
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 javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

por que mi register no funciona?

Publicado por javier (547 intervenciones) el 15/10/2020 07:28:42
pues inserta un valor vacio en el cada vez que haya un registro, por que ese puede ser el problema, por que como no manejas los errores de mysqli, no sabes en ningun momento por que la insercion de datos fue mal o la consulta.

te dejo un enlace para que veas como se pueden capturar los posibles errores de las consultas a la BBDD.

https://www.php.net/manual/es/mysqli.examples-basic.php
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