Comunidad de diseño web y desarrollo en internet online

Formulario registro flahs+php+mysql duda datos repetidos

Citar            
MensajeEscrito el 10 Jun 2008 05:41 pm
Buenas pues la verdad he estado leyendo mucho y pues soy principiante en esto del action script, del php y mysql, estoy intentando hacer un formulario de registro y pues ya el form esta hecho y ya ingresa los valores a la base de datos.
El punto es que quiero de alguna manera evitar por medio de flash o php, no se que sea mas facil evitar por ejemplo k un usuario se registre dos veces con el mismo nick o con su documento, y que en caso de estar poniendo datos que ya estan registrados en un campo dinámico se le indike al usuario que tiene ese error

la tabla tiene los campos id: autonumerico, nick: varchar, nombre, apellido, email, documento, contraseña


este es el action script

Código :

on (release) {
   errorMsg.text = '';
   if ((contraseña_txt.text == contraseña2_txt.text) && (contraseña_txt.length>3 && contraseña_txt.length<9) && 
      (email_txt.length>0))
   
   {
      var datos = new LoadVars();
      var respuesta:LoadVars = new LoadVars();
      datos.nick = nick_txt;
      datos.nombre = nombre_txt;
      datos.apellido = apellido_txt;
      datos.documento = documento_txt;
      datos.email = email_txt;
      datos.contra_uno = contraseña_txt;
      datos.contra_dos = contraseña2_txt;
      datos.sendAndLoad("inserta.php3",datos,"POST");
      datos.onLoad = function(success) {
         // No basta que llegen los datos tienen que llegar correctos
         if (success) {
            // El status debe venir del php
            trace("Llegaron los datos");
            gotoAndStop('ok_registro');
            
         } else {
           trace("No hay conexion con el php");
           errorMsg.text = "hay brinco";
         }
      };
   }
}


y este es el codigo php

Código :

<?php
$nick = $HTTP_POST_VARS["nick"];
$nombre = $HTTP_POST_VARS ["nombre"];
$apellido = $HTTP_POST_VARS["apellido"];
$documento = $HTTP_POST_VARS["documento"];
$email = $HTTP_POST_VARS["email"];
$contraseña=$HTTP_POST_VARS["contra_uno"];

// Conexion, seleccion de base de datos
$enlace = mysql_connect('localhost', 'root', '12345')
    or die('No pudo conectarse : ' . mysql_error());
echo 'Conexion exitosa';
mysql_select_db('registro') or die('No pudo seleccionarse la BD.');

// Realizar una consulta SQL

$consulta = @mysql_query("INSERT INTO tutor VALUES "."('0','$nick','$nombre','$apellido','$email','$documento','$contraseña')");

$resultado = mysql_query($consulta) or die('La consulta fall&oacute;: ' . mysql_error());


// Cerrar la conexion
mysql_close($enlace);
?> 




agradezco su ayuda!!

Por x4v1er

17 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Jun 2008 06:21 pm
En tu caso no importa la respuesta, siempre dará bien, en realidad tienes que tener una respuesta, por ejemplo

if(mysql_query(....)) echo "result=ok";
else echo "result=error";

En el onLoad de tu LoadVars agregas

if (success) {
// El status debe venir del php
if(this.result=="ok") gotoAndStop('ok_registro');
else errorMsg.text = "hay brinco";
}

Para que no se repita un dato, o haces un select antes de insertar o indexas la columna como única, eso hará fallar la inserción

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Jun 2008 06:41 pm
solisarg pues me dices que con esta lineas

if (success) {
// El status debe venir del php
if(this.result=="ok") gotoAndStop('ok_registro');
else errorMsg.text = "hay brinco";
}

duncionaria y tendria que venir ese ok desde php despues de hacer la consulta por ejemplo, pero entonces de que manera hago eso en php, por que no he podido

tengo este codigo

Código :

<?php
$usuario = $_POST["nombre"];


   mysql_connect ("127.0.0.1", "root","12345");
   mysql_select_db("registro");
   $consulta_usuario = mysql_query ("SELECT * FROM tutor WHERE nombre LIKE '$nombre'");
   $row = mysql_fetch_array ($consulta_usuario);
   $quien = $row ["nombre"];
   if ($quien == $usuario){
      print "&resultado=EL USUARIO YA EXISTE";
   } else {
      $ingresa = mysql_query ("INSERT INTO usuarios VALUES ('$usuario', '$pass')");
      if ($ingresa) {
         print "&resultado=SE INGRESO EL USUARIO";
      } else {
         print "&resultado=ERROR, NO SE PUDO INGRESAR AL USUARIO";
      }
   }

?>


pero no me funciona, quisiera entonces saber pues k debo hacer o como la consulta y que si encuentra el usuario repetido por ejemplo, le envie a flash el problema que se genero

Por x4v1er

17 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Jun 2008 06:47 pm
Si ese es tu PHP, en el LoadVars:

if(this.resultado=="SE INGRESO EL USUARIO") gotoAndStop('ok_registro');
else errorMsg.text = this.resultado;

Reduce tu avatar please, creo que el máximo es 100 x 100

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Jun 2008 07:58 pm
mira que he intentado hacer lo que tu dices en el formulario grande y aun no me sale, mmm pero no me marca error en ningun lado asi que decidi hacerlo con un pequeño formulario para probar y hay si acoplarlo en el formulario grande, pero le doy click al boton y no presenta ninguna reaccion.

este es el php

Código :

<?php
$nombre = $_POST["nombre"];

   mysql_connect ("127.0.0.1", "root","12345");
   mysql_select_db("registro");
   $consulta_usuario = mysql_query ("SELECT * FROM tutor WHERE nombre LIKE '$tutor'");
   $row = mysql_fetch_array ($consulta_usuario);
   $quien = $row ["nombre"];
   if ($quien == $usuario){
      print "&resultado=EL USUARIO YA EXISTE";
   } 
   else print "&resultado=ok";

?>


y este el action script

Código :


on (release) {
   errorMsg.text = '';
   var datos = new LoadVars();
   var respuesta:LoadVars = new LoadVars();
   datos.nombre = nombre_txt;
   datos.sendAndLoad("ingresar_usuario.php",datos,"POST");

   datos.onLoad = function(success) {
      if (success) {
         // El status debe venir del php
         if (this.resultado == 'EL USUARIO YA EXISTE') {
            error_txt.text = "el user ya existe";
         } else {
            errorMsg.text = "hay brinco";
         }
      }

   };
}


gracias agradezco cualquier ayuda

Por x4v1er

17 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Jun 2008 08:08 pm
para debuggera en localhost haz lo siguiente:

datos.sendAndLoad("http://localhost/carpeta/ingresar_usuario.php",datos,"POST");

esto hará que se ejecute el PHP y que puedas agregar trace dentro del onLoad, trace(this.resultado) por ejemplo
Además asegúrate siempre que no tienes errores de sintaxis en tu PHP abriéndolo directamente en el navegador

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Jun 2008 08:11 pm
Bueno encontré un pequeño error en mi codigo php, pero de igual manera no me funciona necesito ayuda =(
aca esta el codigo del action y del php corregidos, pero como dije antes no aparece nada ni reacciona el codigo

Código :

on (release) {
   errorMsg.text = '';
   var datos = new LoadVars();
   var respuesta:LoadVars = new LoadVars();
   datos.nombre = nombre_txt;
   datos.sendAndLoad("ingresar_usuario.php",datos,"POST");
   datos.onLoad = function(success) {
      if (success) {
         // El status debe venir del php
         if (this.resultado == 'EL USUARIO YA EXISTE') {
            error_txt.text = "el user ya existe";
         } else {
            errorMsg.text = "hay brinco";
         }
      }

   };
}


Código :

on (release) {
   errorMsg.text = '';
   var datos = new LoadVars();
   var respuesta:LoadVars = new LoadVars();
   datos.nombre = nombre_txt;
   datos.sendAndLoad("ingresar_usuario.php",datos,"POST");
   datos.onLoad = function(success) {
      if (success) {
         // El status debe venir del php
         if (this.resultado == 'EL USUARIO YA EXISTE') {
            error_txt.text = "el user ya existe";
         } else {
            errorMsg.text = "hay brinco";
         }
      }

   };
}

Por x4v1er

17 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Jun 2008 08:17 pm
pues ya puse a corre el php en el navegador y no hay errores haba un par en el action y aca lo dejo arreglado pero aun no me sirve, no se mueve no imprme nada ni para adelante ni para atras

Código :

on (release) {
   trace ("has hecho");
   error_txt.text = '';
   var datos = new LoadVars();
   var respuesta:LoadVars = new LoadVars();
   datos.nombre = nombre_txt;
   datos.sendAndLoad("http://x4v1er.dnsalias.com/MEMORIA/flash/registro_tutor/comprueba/ingresar_usuario.php",datos,"POST");
   datos.onLoad = function(success) {
      if (success) {
         // El status debe venir del php
         if (this.resultado == 'EL USUARIO YA EXISTE') {
            error_txt.text = "el user ya existe";
         } else {
            error_txt.text = "hay brinco";
         }
      }

   };
}

Por x4v1er

17 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Jun 2008 08:36 pm
bueno el codigo funciono, lo que sucede es que tenia un error bien extraño pues el cuadro de error lo tenia declarado en variable y no en nombre de instanci pero bueno aca dejo el codigo para validar si un dato existe en determinada columan de una base de datos, tambien tiene alguna correcciones de codigo pues algunas arriba estan mal

action script

Código :

on (release) {
   
   var datos = new LoadVars();
   var respuesta:LoadVars = new LoadVars();
   datos.nombre = nombre_txt;
   datos.sendAndLoad("ingresar_usuario.php",datos,"POST");
   datos.onLoad = function(success) {
      if (success) {
         // El status debe venir del php
         if (this.resultado == 'EL USUARIO YA EXISTE') {
            error_txt.text = "el user ya existe";
         } if (this.resultado == 'ok'){
            error_txt.text = "el usuario esta libre";
         }
      }

   };
}


y este el php

Código :

<?php
$nombre = $_POST["nombre"];

   mysql_connect ("127.0.0.1", "root","54321");
   mysql_select_db("registro");
   $consulta_usuario = mysql_query ("SELECT * FROM tutor WHERE nombre LIKE '$nombre'");
   $row = mysql_fetch_array ($consulta_usuario);
   $quien = $row ["nombre"];
   if ($quien == $usuario){
      print "&resultado=ok";
   } 
   else print "&resultado=EL USUARIO YA EXISTE";

?>



gracias por tu ayuda solisarg!!

Por x4v1er

17 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.