Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Tengo un erro en el registro y no se como arreglarlo

Estas en el tema de Tengo un erro en el registro y no se como arreglarlo en el foro de PHP en Foros del Web. He creado un registro y el problema es que a la hora de usar el formulario no me sale ningún mensaje de "Te has registrado ...
  #1 (permalink)  
Antiguo 20/12/2016, 11:17
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 9 meses
Puntos: 2
Tengo un erro en el registro y no se como arreglarlo

He creado un registro y el problema es que a la hora de usar el formulario no me sale ningún mensaje de "Te has registrado correctamente" ni nada parecido. Creo que el problema viene de los if que no los tengo bien solventados y bueno, pues básicamente es eso. En verdad, es bastante simple, un saludo y gracias.

P.D: Solamente me salta el echo cuando dejo los campos vacíos.

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<form action="" method="post" class="registro"> 
<div><label>Usuario:</label> 
<input type="text" name="usuario"></div> 
<div><label>Correo:</label> 
<input type="text" name="correo"></div> 
<div><label>Contrase&ntilde;a:</label> 
<input type="password" name="password"></div> 
<div> 
<input type="submit" name="enviar" value="Registrar"></div> 
</form> 
</html> 
Código PHP:
<?php
$servername 
"x";
$username "x";
$password "x";
$dbname "x";

// Create connection 
$conn = new mysqli($servername$username$password$dbname); 
// Check connection 
if ($conn->connect_error) { 
    die(
"Connection failed: " $conn->connect_error); 
}  
$conn->close();

if(isset(
$_POST['enviar'])) 

    if(
$_POST['usuario'] == '' or $_POST['correo'] == '' or $_POST['password'] == '')
    { 
        echo 
'Por favor llene todos los campos.'
    } 
    else 
    { 
     
$sql 'SELECT * FROM usuarios'
        
$rec mysql_query($sql); 
        
$verificar_usuario 0
  
        while(
$result mysql_fetch_object($rec)) 
        { 
            if(
$result->usuario == $_POST['usuario']) 
            { 
                
$verificar_usuario 1
            } 
        } 
  
        if(
$verificar_usuario == 0) { 
            
/*if($_POST['password'] == $_POST['repassword']) 
            { */
                
$usuario $_POST['usuario']; 
                
$password $_POST['password']; 
                
$sql "INSERT INTO usuarios (usuario,password,correo) VALUES ('$usuario','$password','$correo')";
                
mysql_query($sql); 
  
                echo 
'Usted se ha registrado correctamente.'
           
        } 
        else 
        { 
            echo 
'Este usuario ya ha sido registrado anteriormente.'
        } 
    
    }
    }
?>
  #2 (permalink)  
Antiguo 20/12/2016, 11:59
Avatar de AngelKrak  
Fecha de Ingreso: noviembre-2014
Mensajes: 917
Antigüedad: 10 años, 1 mes
Puntos: 91
Respuesta: Tengo un erro en el registro y no se como arreglarlo

por que usas mysqli con mysql? no crees que ese sea tu error?
usa todo desde mysqli, la consulta, la extraccion de usuarios, etc

http://php.net/manual/es/book.mysqli.php
  #3 (permalink)  
Antiguo 20/12/2016, 12:10
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Tengo un erro en el registro y no se como arreglarlo

Debe ser porque estas usando mysqli luego usas mysql

Código PHP:
Ver original
  1. $rec = mysql_query($sql);

cambialo por

Código PHP:
Ver original
  1. $rec = $conn->query($sql);

y

Código PHP:
Ver original
  1. while($result = mysql_fetch_object($rec))

por

Código PHP:
Ver original
  1. while($result = $rec->fetch_assoc())

Otra cosa creo que el close debe ir al final ya que estás usando la conexion despues de usar close, es decir, abres una puerta la cierras y despues tratas de entrar...

ahí debería andar bien..

Última edición por alvaro_trewhela; 20/12/2016 a las 12:32
  #4 (permalink)  
Antiguo 20/12/2016, 17:09
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Tengo un erro en el registro y no se como arreglarlo

Lo siento, pero me sigue sin funcionar, es como que la página se actualiza pero no sale ningún mensaje de error ni nada... es impresionante. He hecho lo que me habiáis dicho y no he arreglado nada, sigue haciendo lo mismo.

Necesitaría un poco de ayuda, gracias!
  #5 (permalink)  
Antiguo 20/12/2016, 18:21
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 13 años
Puntos: 25
Respuesta: Tengo un erro en el registro y no se como arreglarlo

El código php y html están en el mismo archivo?
  #6 (permalink)  
Antiguo 21/12/2016, 10:36
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Tengo un erro en el registro y no se como arreglarlo

Gracias a todos por responder y, el problema es que lo que viene a ser el código no está dividido, sino que esta en el mismo archivo. Yo creo que es problema del php... no se, como lo véis?
  #7 (permalink)  
Antiguo 21/12/2016, 12:01
Avatar de AngelKrak  
Fecha de Ingreso: noviembre-2014
Mensajes: 917
Antigüedad: 10 años, 1 mes
Puntos: 91
Respuesta: Tengo un erro en el registro y no se como arreglarlo

Primero que Nada tu primer error fue Cerrar la Conexion despues de iniciarla, eso se cierra hasta al final despues de haber ejecutado todas las funciones de php/mysqli que pusiste.
Segundo, No puedes mezclar MYSQL con MYSQLI, te mostrara un error.

Aqui te dejo el Codigo Completo con MYSQLI, a mi me funciono bien ;)
Código PHP:
Ver original
  1. <?php
  2. $servername = "localhost";
  3. $username = "root";
  4. $password = "";
  5. $dbname = "j";
  6.  
  7. // Create connection  
  8. $conn = new mysqli($servername, $username, $password, $dbname);  
  9. // Check connection  
  10. if ($conn->connect_error) {  
  11.     die("Connection failed: " . $conn->connect_error);  
  12. }  
  13. # $conn->close(); La Conexion se cierra al final, no al inicio de la conexion
  14.  
  15. if(isset($_POST['enviar']))  
  16. {  
  17.     if($_POST['usuario'] == '' or $_POST['correo'] == '' or $_POST['password'] == '')
  18.     {  
  19.         echo 'Por favor llene todos los campos.';  
  20.     }  
  21.     else  
  22.     {  
  23.      $sql = 'SELECT * FROM usuarios';  
  24.         //$rec = mysql_query($sql);
  25.         $rec = $conn->query($sql);
  26.  
  27.         $verificar_usuario = 0;  
  28.  
  29.         //while($result = mysql_fetch_object($rec))  
  30.  
  31.         while($result = $rec->fetch_object())  
  32.         {  
  33.             if($result->usuario == $_POST['usuario'])  
  34.             {  
  35.                 $verificar_usuario = 1;  
  36.             }  
  37.         }  
  38.    
  39.         if($verificar_usuario == 0) {  
  40.             /*if($_POST['password'] == $_POST['repassword'])  
  41.             { */
  42.                 $usuario = $_POST['usuario'];  
  43.                 $password = $_POST['password'];  
  44.                 $correo = $_POST['correo']; // Te falto esta Variable
  45.                 $sql = "INSERT INTO usuarios (usuario,password,correo) VALUES ('$usuario','$password','$correo')";
  46.                 // mysql_query($sql);  
  47.                 $conn->query($sql);  
  48.    
  49.                 echo 'Usted se ha registrado correctamente.';  
  50.            
  51.         }  
  52.         else  
  53.         {  
  54.             echo 'Este usuario ya ha sido registrado anteriormente.';  
  55.         }  
  56.      
  57.     }
  58.     }
  59.    
  60. $conn->close();
  61. ?>
  62. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  63. <html xmlns="http://www.w3.org/1999/xhtml">
  64. <head>
  65. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  66. <title>Documento sin título</title>
  67. </head>
  68.  
  69. <body>
  70. <form action="" method="post" class="registro">
  71. <div><label>Usuario:</label>
  72. <input type="text" name="usuario"></div>
  73. <div><label>Correo:</label>
  74. <input type="text" name="correo"></div>
  75. <div><label>Contrase&ntilde;a:</label>
  76. <input type="password" name="password"></div>
  77. <div>
  78. <input type="submit" name="enviar" value="Registrar"></div>
  79. </form>
  80. </html>
  #8 (permalink)  
Antiguo 21/12/2016, 16:17
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Tengo un erro en el registro y no se como arreglarlo

¡Muchisimas gracias crack, me funciono correctamente!

Un saludo a todos y muchas gracias por responder, cierro el tema.

Etiquetas: erro, formulario, html, mysql, registro, select, sql, usuario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:56.