Autor
|
Tema: Registro PHP (Leído 3,563 veces)
|
Moand
Desconectado
Mensajes: 21
|
Buenas a todos! No se mucho de programación en general y todo lo que he aprendido ha sido por mi cuenta. Me he propuesto hacer un sistema de registro y estoy teniendo algunos problemas los cuales no se solucionar. Esto esta sacado de varias partes de Internet, lo que he hecho es ir uniendo y adaptarlo para lo que yo lo quiero. <?php $user = $_POST['user']; $mail = $_POST['mail']; $pass = $_POST['pass']; $repass = $_POST['repass']; if (isset($_POST["send"])) { if ($user = "" or $mail = "" or $pass = "" or $repass = "") { echo "Rellene los campos."; }else { $valid_user = 0; if ($result -> user = $user) { $valid_user = 1; echo "Ya existe este usuario."; } } if ($valid_user = 0) { $valid_mail = 0; if ($result -> mail = $mail) { $valid_mail = 1; echo "Ya está en uso este mail."; } } if ($valid_mail = 0) { if ($pass = $repass) { mysqli_query($connect, "INSERT INTO users SET user='$user', pass='$pass', repass='$repass', mail='$mail'")); echo "Registrado."; }else { echo "Las contraseñas no coinciden."; } } } } } ?>
Lo extraño es que no se sale ningún error, pero tampoco ninguno de los avisos que tengo puesto con echo. Ya he comprobado que tiene conexión a la base de datos e introduce los datos. Espero que alguien pueda ayudarme, gracias Lo conseguí resolver. Este seria el código final (también he añadido para cifrar la contraseña): <?php $user = $_POST['user']; $mail = $_POST['mail']; $pass = $_POST['pass']; $repass = $_POST['repass']; if (isset($_POST["send"])) { echo "Rellene los campos."; }else { $valid_user = 0; if ($result -> user == $user) { $valid_user = 1; echo "Ya existe este usuario."; } } $valid_mail = 0; if ($result -> mail == $mail) { $valid_mail = 1; echo "Ya está en uso este mail."; } } if ($valid_user == 0 and $valid_mail == 0 ){ if ($pass == $repass) { $pass= hash('sha512',$pass); mysqli_query($connect, "INSERT INTO users (user, mail, pass) VALUES ('$user', '$mail', '$pass')"); echo "Registrado."; }else { echo "Las contraseñas no coinciden."; } } } } ?>
|
|
« Última modificación: 21 Mayo 2016, 20:56 pm por Moand »
|
En línea
|
|
|
|
engel lex
|
Nunca revisas por errores de MySQL?
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Moand
Desconectado
Mensajes: 21
|
Nunca revisas por errores de MySQL?
Ya lo he intentado añadiendo "or die(mysql_error())", pero no me mostraba nada. Supongo que sera de otra forma.
|
|
|
En línea
|
|
|
|
engel lex
|
Estas usando mysqli, si usas mysql_error (sin la i)la no pasara nada
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
gAb1
Desconectado
Mensajes: 731
|
La siguiente linea es imprescindible a la hora de desarrollar una web, ponla al principio de tu index.php:
Echale un vistazo a las tablas donde se explican los distintos tipos de comparación, si vas a comparar dos valores del tipo entero (o booleanos) usa 3 = if ($valid_user === 0) if ($valid_user === TRUE)
En el manual de php encontrarás todo lo que necesites, además en la sección de comentarios tendrás mejores explicaciones y ejemplos más avanzados (y útiles).
|
|
|
En línea
|
|
|
|
Moand
Desconectado
Mensajes: 21
|
Muchas gracias por tu aporte, ahora podre ver los errores mas fácilmente.
Y si alguien sabría como explicarme la diferencia entre == y === le estaría muy agradecido. No logro entender la diferencia entre igual e idéntico.
|
|
|
En línea
|
|
|
|
engel lex
|
== verifica que los valores son similares, de decir (char)"0" es igual a (int)0, es igual a (boolean)false y es igual a (void)"", así como 1 igual a "1", igual a true....
=== verifica que el contenido y tipo son identicos es decir "0" no es igual a 0 o a false... 0 solo es igual a 0...
debido a la similitud entre 0, "" y false al no usar === en lugares clave, los programas pueden fallar
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
gAb1
Desconectado
Mensajes: 731
|
El propio término lo está diciendo: Un valor solo es idéntico a si mismo. Quiere decir que no solo el valor es el mismo, si no que el tipo (string, entero, boolean, flotante, etc...) también. Ejemplos de diferentes tipos de valores: $string = '123'; // valor del tipo string $integer = 123; // valor del tipo entero $boolean = FALSE; // valor del tipo booleano // TRUE - se cumple la condición echo $string == $string ? 'si<br />' : 'no<br />'; echo $integer == $integer ? 'si<br />' : 'no<br />'; echo $string === $string ? 'si<br />' : 'no<br />'; echo $integer === $integer ? 'si<br />' : 'no<br />'; echo $string == $integer ? 'si<br />' : 'no<br />'; // FALSE - no se cumple echo $string === $integer ? 'si<br />' : 'no<br />';
En el ejemplo podemos ver que: - $string es igual a $integer. Sin embargo: - $string no es idéntico a $integer.
|
|
|
En línea
|
|
|
|
Moand
Desconectado
Mensajes: 21
|
Muchas gracias chicos! Tengo la sensación de que esto me ayudara mucho en un futuro
|
|
|
En línea
|
|
|
|
|
|