Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Moand

#21
PHP / Registro PHP
21 Mayo 2016, 17:48 PM
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.

Código (php) [Seleccionar]
<?php

  $user 
= $_POST['user'];
  
$mail = $_POST['mail'];
  
$pass = $_POST['pass'];
  
$repass = $_POST['repass'];

  
$connect = mysqli_connect("localhost", "root", "", "share");

  if (isset(
$_POST["send"])) {
    if (
$user = "" or $mail = "" or $pass = "" or $repass = "") {
      echo 
"Rellene los campos.";
      }else {
        
$rec_user = mysqli_query($connect, "SELECT * FROM users");
        
$valid_user = 0;

        while (
$result = mysqli_fetch_object($rec_user)) {
          if (
$result -> user = $user) {
            
$valid_user = 1;
            echo 
"Ya existe este usuario.";
          }
        }

        if (
$valid_user = 0) {
          
$rec_mail = mysqli_query($connect, "SELECT * FROM users");
          
$valid_mail = 0;

          while (
$result = mysqli_fetch_object($rec_mail)) {
            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):
Código (php) [Seleccionar]
<?php

  $user 
= $_POST['user'];
  
$mail = $_POST['mail'];
  
$pass = $_POST['pass'];
  
$repass = $_POST['repass'];

  
$connect = mysqli_connect("localhost", "root", "", "share");

  if (isset(
$_POST["send"])) {
    if (empty(
$user) or empty($mail) or empty($pass) or empty($repass)) {
      echo 
"Rellene los campos.";
      }else {
        
$rec_user = mysqli_query($connect, "SELECT * FROM users");
        
$valid_user = 0;

        while (
$result = mysqli_fetch_object($rec_user)) {
          if (
$result -> user == $user) {
            
$valid_user = 1;
            echo 
"Ya existe este usuario.";
          }
        }

        
$rec_mail = mysqli_query($connect, "SELECT * FROM users");
        
$valid_mail = 0;

        while (
$result = mysqli_fetch_object($rec_mail)) {
          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.";
          }
        }
      }
    }

?>