Foros del Web » Programando para Internet » PHP »

formulario de registro no hace nada

Estas en el tema de formulario de registro no hace nada en el foro de PHP en Foros del Web. Pues eso ingreso todos los datos en mi formulario de registro y no hace nada... Vuelve a cargar el formulario de registro vacio... Ni ingresa ...
  #1 (permalink)  
Antiguo 22/02/2012, 03:10
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 3 meses
Puntos: 1
formulario de registro no hace nada

Pues eso ingreso todos los datos en mi formulario de registro y no hace nada... Vuelve a cargar el formulario de registro vacio... Ni ingresa los datos en la base de datos ni nada, ni da error, ni nada de nada...

Pongo el codigo:
Código PHP:
Ver original
  1. if (isset($_POST) && isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://localhost/zulo/alta_usuario.php' && !empty($_POST)) {
  2.    
  3. $pass = $_POST["strPassword"];
  4. $password = $_POST["password"];
  5. $email = $_POST["strEmail"];
  6. $mail = $_POST["mail"];
  7. $telefono = $_POST["intNtelf"];
  8. $telefono2 = $_POST["telefono"];
  9.  
  10.       if($pass!=$password) {
  11.          echo "Las contraseñas no coinciden"; }
  12.             if($email!=$mail) {
  13.          echo "El email no coincide"; }
  14.      
  15.          if($telefono!=$telefono2) {
  16.          echo "Los telefonos no coinciden";
  17.       }else {
  18.           $checkuser = comprobaruser($_POST["strNick"]);
  19.          if ($checkuser !=0) {
  20.              echo "El usuario ya existe"; }
  21.              $checkmail = comprobarmail($_POST["strEmail"]);
  22.              if ($checkmail !=0){
  23.                  echo "El mail" .$email. "ya existe"; }
  24.      
  25.       }
  26. }else {
  27.  
  28. if (isset($_POST["form1"])) {
  29.   $insertSQL = sprintf("INSERT INTO tblusuario (strNombre, strEmail, intActivo, strPassword, strDireccion, strNick, intCpostal, strProvincia, strPoblacion, intNtelf) VALUES (%s, %s, %s, %s, %s)",
  30.                        GetSQLValueString($_POST['strNombre'], "text"),
  31.                        GetSQLValueString($_POST['strEmail'], "text"),
  32.                        GetSQLValueString($_POST['intActivo'], "int"),
  33.                        GetSQLValueString($_POST['strPassword'], "text"),
  34.                        GetSQLValueString($_POST['strDireccion'], "text"),
  35.                        GetSQLValueString($_POST['strNick'], "text"),
  36.                        GetSQLValueString($_POST['intCpostal'], "int"),
  37.                        GetSQLValueString($_POST['strProvincia'], "text"),
  38.                        GetSQLValueString($_POST['strPoblacion'], "text"),
  39.                        GetSQLValueString($_POST['intNtelf'], "int"));
  40.  
  41.   mysql_select_db($database_conexionzulo, $conexionzulo);}}
  42. ?>
  #2 (permalink)  
Antiguo 22/02/2012, 04:11
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: formulario de registro no hace nada

Comprueba tus ifs.
Tan sólo haz un echo en cada uno de ellos para ver si está entrando en ellos.
Es posible que no muestre nada en pantalla porque los ifs no estén bien y no se den esas condiciones que has puesto.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #3 (permalink)  
Antiguo 22/02/2012, 06:08
 
Fecha de Ingreso: febrero-2012
Ubicación: En mi propio mundo
Mensajes: 73
Antigüedad: 12 años, 1 mes
Puntos: 23
Respuesta: formulario de registro no hace nada

Lo primero que veo en el código es que estas usando isset($_POST) y !empty($_POST), estas comprobaciones las puedes eliminar ya que envíes o no envíes datos por post siempre son verdaderas. En su lugar yo pondría $_POST != null

El código te falla porque la lógica que estás aplicando, a no ser que sea esa tu intención, es errónea.

Tu lógica es la siguiente:
Compruebo si se ha enviado el formuario desde http://localhost/zulo/alta_usuario.php
Si se ha enviado el formulario: Compruebo los datos enviados y muestro error en el caso de que no sean correctos
Sino: Inserto datos en la base datos


Si realizamos una pequeña traza mental de lo que ocurre al enviar los datos, nunca va a insertar los datos en la base de datos ya que en el else sólo entra cuando no se han enviado datos por post, entonces la variable $_POST["form1"] nunca va a estar asignada, por lo tanto no se insertarán los datos .
  #4 (permalink)  
Antiguo 22/02/2012, 06:53
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: formulario de registro no hace nada

:| ????????

No entiendo lo de que nunca va a insertar los datos. Como que solo entra cuando no se han enviado datos por post ?
Entonces lo que esta mal ? Que es ? Poruqe los if estan bien, no ? Si lo sdatos estan mal muestra error si no insteras los datos...

Me he perdido un poco
  #5 (permalink)  
Antiguo 22/02/2012, 07:32
 
Fecha de Ingreso: febrero-2012
Ubicación: En mi propio mundo
Mensajes: 73
Antigüedad: 12 años, 1 mes
Puntos: 23
Respuesta: formulario de registro no hace nada

Según lo que yo entiendo de tu código sino se han enviado datos insertas los datos, lo cual es ilógico ya que si no se han enviado datos no hay ningún dato para insertar.

Si lo que quieres hacer es que se inserten los datos cuando los datos están bien, corta desde la linea 26 hasta la 41 inclusive y la pegas en la línea 24.

Lo otro que te decía es modificar el if inicial dejandolo asi

Código PHP:
if ( isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://localhost/zulo/alta_usuario.php' && ($_POST != null)) 
  #6 (permalink)  
Antiguo 22/02/2012, 15:03
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: formulario de registro no hace nada

Ok pero null me lo pone asi en negro :S es normal?

Igual si tienes razon... Lo dices por el "}" que separa al else de las demas comprobaciones... Tienes razon voy a probarlo a ver ;)

Aun asi... Deberia decir que el mail si existe, no ?

Última edición por nobo; 22/02/2012 a las 15:46
  #7 (permalink)  
Antiguo 22/02/2012, 15:53
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: formulario de registro no hace nada

Asi?
Algo no me cuadra, mira cuantos }}}} Hay al final del codigo... :S

Sigue sin hacer nada...

Esto funciona:
if($pass!=$password) {
echo "Las contraseñas no coinciden"; }
if($email!=$mail) {
echo "El email no coincide"; }

if($telefono!=$telefono2) {
echo "Los telefonos no coinciden";
}else {
$checkuser = comprobaruser($_POST["strNick"]);
if ($checkuser !=0) {
echo "El usuario ".$nick. " ya existe"; }
$checkmail = comprobarmail($_POST["strEmail"]);
if ($checkmail !=0){
echo "El mail " .$email. " ya existe"; }
Pero lo siguiente no... El else que deberia insertar los datos no funciona...

Código PHP:
Ver original
  1. if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://localhost/zulo/alta_usuario.php' && ($_POST != null)) {
  2.    
  3. $pass = $_POST["strPassword"];
  4. $password = $_POST["password"];
  5. $email = $_POST["strEmail"];
  6. $mail = $_POST["mail"];
  7. $telefono = $_POST["intNtelf"];
  8. $telefono2 = $_POST["telefono"];
  9.  
  10.       if($pass!=$password) {
  11.          echo "Las contraseñas no coinciden"; }
  12.             if($email!=$mail) {
  13.          echo "El email no coincide"; }
  14.      
  15.          if($telefono!=$telefono2) {
  16.          echo "Los telefonos no coinciden";
  17.       }else {
  18.           $checkuser = comprobaruser($_POST["strNick"]);
  19.          if ($checkuser !=0) {
  20.              echo "El usuario ya existe"; }
  21.              $checkmail = comprobarmail($_POST["strEmail"]);
  22.              if ($checkmail !=0){
  23.                  echo "El mail" .$email. "ya existe"; }
  24.                  else {
  25.  
  26. if (isset($_POST["form1"])) {
  27.   $insertSQL = sprintf("INSERT INTO tblusuario (strNombre, strEmail, intActivo, strPassword, strDireccion, strNick, intCpostal, strProvincia, strPoblacion, intNtelf) VALUES (%s, %s, %s, %s, %s)",
  28.                        GetSQLValueString($_POST['strNombre'], "text"),
  29.                        GetSQLValueString($_POST['strEmail'], "text"),
  30.                        GetSQLValueString($_POST['intActivo'], "int"),
  31.                        GetSQLValueString($_POST['strPassword'], "text"),
  32.                        GetSQLValueString($_POST['strDireccion'], "text"),
  33.                        GetSQLValueString($_POST['strNick'], "text"),
  34.                        GetSQLValueString($_POST['intCpostal'], "int"),
  35.                        GetSQLValueString($_POST['strProvincia'], "text"),
  36.                        GetSQLValueString($_POST['strPoblacion'], "text"),
  37.                        GetSQLValueString($_POST['intNtelf'], "int"));
  38.  
  39.   mysql_select_db($database_conexionzulo, $conexionzulo);}}}}

Última edición por nobo; 22/02/2012 a las 16:30
  #8 (permalink)  
Antiguo 22/02/2012, 16:47
Avatar de charly_vc  
Fecha de Ingreso: enero-2012
Ubicación: GDL
Mensajes: 31
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: formulario de registro no hace nada

porque mejor no pones un echo dentro del else y vez si entra o no, la otra, donde tienes el mysql_query(); que ejecuta la query??
  #9 (permalink)  
Antiguo 22/02/2012, 17:02
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: formulario de registro no hace nada

??? mysql_query() ?? Donde ?

Pues hasta el else todo va perfecto, hace todas las comprobaciones y devuelve si el nick, el user o la contraseña no coinciden o ya esta en uso...

Me falta que haga el insert a la base de datos...
  #10 (permalink)  
Antiguo 22/02/2012, 17:38
 
Fecha de Ingreso: febrero-2012
Ubicación: En mi propio mundo
Mensajes: 73
Antigüedad: 12 años, 1 mes
Puntos: 23
Respuesta: formulario de registro no hace nada

Bueno solo te falta mirar bien cuando te devuelve != 0 las funciones comprobarmail() y comprobarUser(), es probable que ahí este el problema.

Si solucionas el problema ese, usando este código te debería salir todo bien
Código PHP:

if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://localhost/zulo/alta_usuario.php' && ($_POST != null)) 
{
    
$error false//Indica si hay un error
    
$pass $_POST["strPassword"];
    
$password $_POST["password"];
    
$email $_POST["strEmail"];
    
$mail $_POST["mail"];
    
$telefono $_POST["intNtelf"];
    
$telefono2 $_POST["telefono"]; 
 
      if(
$pass!=$password
      {
         echo 
"Las contraseñas no coinciden"
         
$error true;
      }
      if(
$email!=$mail
      {
         echo 
"El email no coincide"
         
$error true;
      }
      
      if(
$telefono!=$telefono2
      {
         echo 
"Los telefonos no coinciden";
         
$error true;
      }
      
      
$checkuser comprobaruser($_POST["strNick"]);
      if (
$checkuser !=0
      {
        echo 
"El usuario ya existe";
        
$error true;
      }
      
      
$checkmail comprobarmail($_POST["strEmail"]);
      if (
$checkmail !=0)
      {
        echo 
"El mail" .$email"ya existe";     
        
$error true;
      }

     if (isset(
$_POST["form1"]) && (!error)) 
     {
        
$insertSQL sprintf("INSERT INTO tblusuario (strNombre, strEmail, intActivo, strPassword, strDireccion, strNick, intCpostal, strProvincia, strPoblacion, intNtelf) VALUES (%s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['strNombre'], "text"),
                       
GetSQLValueString($_POST['strEmail'], "text"),
                       
GetSQLValueString($_POST['intActivo'], "int"),
                       
GetSQLValueString($_POST['strPassword'], "text"),
                       
GetSQLValueString($_POST['strDireccion'], "text"),
                       
GetSQLValueString($_POST['strNick'], "text"),
                       
GetSQLValueString($_POST['intCpostal'], "int"),
                       
GetSQLValueString($_POST['strProvincia'], "text"),
                       
GetSQLValueString($_POST['strPoblacion'], "text"),
                       
GetSQLValueString($_POST['intNtelf'], "int"));
        
mysql_select_db($database_conexionzulo$conexionzulo);
        
    }
     

  #11 (permalink)  
Antiguo 23/02/2012, 02:20
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: formulario de registro no hace nada

Ok puedo probar a usar el codigo. Pero me gustaria solucionar lo del mio mas que nada por orgullo jajajaja.

En el mio esta haciendo bien la comprobacion. Cuando las contraseñas no coinciden me avisa, cuando el mail no coincide tambien lo imprime por pantalla.

$checkuser me devuelve 0.. Por lo tanto esta bien, no ? Significa que no ha encontrado ningun nick. Por lo tanto hay que insertarlo :S

De hecho las funciones no me devuelve !=0 ... Me devuelve 0. Asi:


Código PHP:
Ver original
  1. // +++++++++++++++++++++++++++++++++++++++++++
  2. // +++++++++++++++++++++++++++++++++++++++++++
  3.  
  4. function comprobaruser($user)
  5.     {
  6.         global $database_conexionzulo, $conexionzulo;
  7.         mysql_select_db($database_conexionzulo, $conexionzulo);
  8.         $query_ConsultaFuncion = sprintf("SELECT strNick FROM tblusuario WHERE strNick = '%s'",$user);
  9.         $ConsultaFuncion = mysql_query($query_ConsultaFuncion, $conexionzulo)or die(mysql_error());
  10.         $totalRows_ConsultaFuncion = mysql_num_rows($ConsultaFuncion);
  11.         if ($totalRows_ConsultaFuncion == 0)
  12.         return 0;
  13.  
  14.     }      
  15.  
  16. // +++++++++++++++++++++++++++++++++++++++++++
  17. // +++++++++++++++++++++++++++++++++++++++++++
  18.  
  19. function comprobarmail($user)
  20.     {
  21.         global $database_conexionzulo, $conexionzulo;
  22.         mysql_select_db($database_conexionzulo, $conexionzulo);
  23.         $query_ConsultaFuncion = sprintf("SELECT strEmail FROM tblusuario WHERE strEmail = '%s'",$user);
  24.         $ConsultaFuncion = mysql_query($query_ConsultaFuncion, $conexionzulo)or die(mysql_error());
  25.         $totalRows_ConsultaFuncion = mysql_num_rows($ConsultaFuncion);
  26.         if($totalRows_ConsultaFuncion == 0)
  27.         return 0;
  28.  
  29.     }
Esto esta bien, no? Si no encuentra nada devuelveme 0. Si el resultado de lo que encuentras es !=0 imprime que ya existe. Esto lo hace bien, porque si no, no imprimiria que ya existe el email que estas intentando ingresar, no?

Última edición por nobo; 23/02/2012 a las 02:29
  #12 (permalink)  
Antiguo 23/02/2012, 03:08
 
Fecha de Ingreso: febrero-2012
Ubicación: En mi propio mundo
Mensajes: 73
Antigüedad: 12 años, 1 mes
Puntos: 23
Respuesta: formulario de registro no hace nada

Hombre las funciones están bien aunque lo políticamente correcto sería devolver un valor en caso de que el $totalRows_ConsultaFuncion sea distinto de 0.

Si analizas el code que te puse arriba es básicamente una optimización del tuyo ya que solo introduce una variable de control para que inserte en la base de datos cuando no hay errores. Pero haz lo que quieras a fin de cuentas yo solo te estoy dando respuestas y aconsejándote, tu puedes hacer con lo que te digo lo que quieras.
  #13 (permalink)  
Antiguo 23/02/2012, 05:14
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: formulario de registro no hace nada

no no no !!! Si lo veo bien tu codigo. Solo que queria saber que le pasaba al mio para aprender. Averiguar donde estaba el error para no cometerlo.

Usando este codigo:
Código PHP:
Ver original
  1. if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://localhost/zulo/alta_usuario.php' && ($_POST != null))
  2. {
  3.     $error = false; //Indica si hay un error
  4.     $pass = $_POST["strPassword"];
  5.     $password = $_POST["password"];
  6.     $email = $_POST["strEmail"];
  7.     $mail = $_POST["mail"];
  8.     $telefono = $_POST["intNtelf"];
  9.     $telefono2 = $_POST["telefono"];
  10.  
  11.       if($pass!=$password)
  12.       {
  13.          echo "Las contraseñas no coinciden";
  14.          $error = true;
  15.       }
  16.       if($email!=$mail)
  17.       {
  18.          echo "El email no coincide";
  19.          $error = true;
  20.       }
  21.      
  22.       if($telefono!=$telefono2)
  23.       {
  24.          echo "Los telefonos no coinciden";
  25.          $error = true;
  26.       }
  27.      
  28.       $checkuser = comprobaruser($_POST["strNick"]);
  29.       if ($checkuser !=0)
  30.       {
  31.         echo "El usuario ya existe";
  32.         $error = true;
  33.       }
  34.      
  35.       $checkmail = comprobarmail($_POST["strEmail"]);
  36.       if ($checkmail !=0)
  37.       {
  38.         echo "El mail" .$email. "ya existe";    
  39.         $error = true;
  40.       }
  41.  
  42.      if (isset($_POST["form1"]) && (!error))
  43.      {
  44.         $insertSQL = sprintf("INSERT INTO tblusuario (strNombre, strEmail, intActivo, strPassword, strDireccion, strNick, intCpostal, strProvincia, strPoblacion, intNtelf) VALUES (%s, %s, %s, %s, %s)",
  45.                        GetSQLValueString($_POST['strNombre'], "text"),
  46.                        GetSQLValueString($_POST['strEmail'], "text"),
  47.                        GetSQLValueString($_POST['intActivo'], "int"),
  48.                        GetSQLValueString($_POST['strPassword'], "text"),
  49.                        GetSQLValueString($_POST['strDireccion'], "text"),
  50.                        GetSQLValueString($_POST['strNick'], "text"),
  51.                        GetSQLValueString($_POST['intCpostal'], "int"),
  52.                        GetSQLValueString($_POST['strProvincia'], "text"),
  53.                        GetSQLValueString($_POST['strPoblacion'], "text"),
  54.                        GetSQLValueString($_POST['intNtelf'], "int"));
  55.         mysql_select_db($database_conexionzulo, $conexionzulo);
  56.        
  57.     }
  58.      
  59. }

No me hace el echo del mail...
  #14 (permalink)  
Antiguo 23/02/2012, 15:22
 
Fecha de Ingreso: diciembre-2011
Mensajes: 151
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: formulario de registro no hace nada

Solucionado !!!!

El tema es que faltaba:

mysql_query($insertSQL, $conexionzulo);

......... Error mio y despiste grandisimo!!!

Gracias Fierox por la ayuda aqui y fuera ;)

Etiquetas: solucionado
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 15:01.