Foros del Web » Programando para Internet » Javascript » Frameworks JS »

validar campo con db

Estas en el tema de validar campo con db en el foro de Frameworks JS en Foros del Web. hola: en internet encontre los siguientes codigos: comprobar_disponibilidad_de_apodo.php Código PHP: < html lang = "es" > < head > < meta http - equiv = "Content-Type"  content ...
  #1 (permalink)  
Antiguo 22/11/2007, 17:31
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años, 1 mes
Puntos: 43
validar campo con db

hola:
en internet encontre los siguientes codigos:
comprobar_disponibilidad_de_apodo.php
Código PHP:
<html lang="es">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<
title>AJAXEjemplosComprobar la disponibilidad/existencia de un apodo ejemplo</title>
<
link rel="stylesheet" type="text/css" href="comprobar_disponibilidad_de_apodo.css">
<
script type="text/javascript" src="comprobar_disponibilidad_de_apodo.js"></script>
</head>

<body>
            
            <div id="demo" style="width:600px;">
                <div id="demoDer">
                    <input type="text" id="verificacion">
                    <button type="button" id="botonVerificacion" onclick="nuevoEvento('verificacion')">Comprobar</button>
                </div>
                <div id="demoIzq">
                    <input type="text" id="ingreso">
                    <button type="button" id="botonIngreso" onclick="nuevoEvento('ingreso')">Ingresar</button>
                </div>
                <div class="mensaje" id="error"></div>
            </div>
            
</body>
</html> 
comprobar_disponibilidad_de_apodo.js
Código PHP:
function nuevoAjax()

    
/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
    lo que se puede copiar tal como esta aqui */
    
var xmlhttp=false
    try 
    { 
        
// Creacion del objeto AJAX para navegadores no IE
        
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    }
    catch(
e)
    { 
        try
        { 
            
// Creacion del objet AJAX para IE 
            
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        catch(
E) { xmlhttp=false; }
    }
    if (!
xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); } 

    return 
xmlhttp
}

function 
eliminaEspacios(cadena)
{
    
// Funcion equivalente a trim en PHP
    
var x=0y=cadena.length-1;
    while(
cadena.charAt(x)==" "x++;    
    while(
cadena.charAt(y)==" "y--;    
    return 
cadena.substr(xy-x+1);
}

function 
validaIngreso(valor)
{
    
/* Funcion encargada de validar lo ingresado por el usuario. Se devuelve TRUE en caso de ser 
    valido, FALSE en caso contrario */
    
var reg=/(^[a-zA-Z0-9.@ ]{4,40}$)/;
    if(
reg.test(valor)) return true;
    else return 
false;
}

function 
nuevoEvento(evento)
{
    
// Obtengo el div donde se mostraran las advertencias y errores
    
var divMensaje=document.getElementById("error");

    
/* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
    distintas variables */    
    
if(evento=="ingreso")
    {
        var 
input=document.getElementById("ingreso");
        
// Boton presionado
        
var boton=document.getElementById("botonIngreso");
        
// Valor ingresado por el usuario
        
var valor=input.value;
        
// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
        
var textoAccion="Ingresando...";
    }
    else
    {
        var 
input=document.getElementById("verificacion");
        
// Boton presionado
        
var boton=document.getElementById("botonVerificacion");
        
// Valor ingresado por el usuario
        
var valor=input.value;
        
// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
        
var textoAccion="Comprobando...";
    }
    
// Elimino espacios por delante y detras de lo ingresado por el usuario
    
valor=eliminaEspacios(valor);
    
// Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
    
if(!validaIngreso(valor)) 
    {
        
divMensaje.innerHTML="El texto ingresado contiene caracteres o longitud inv&aacute;lida";
    }
    else
    {
        
// Deshabilito inputs y botones para evitar dobles ingresos
        
boton.disabled=trueinput.disabled=true;
        
input.value=textoAccion;
        
        
// Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
        
var ajax=nuevoAjax();
        
ajax.open("POST""comprobar_disponibilidad_de_apodo_proceso.php"true);
        
ajax.setRequestHeader("Content-Type""application/x-www-form-urlencoded");
        
ajax.send(evento+"="+valor);
        
        
ajax.onreadystatechange=function()
        {
            if (
ajax.readyState==4)
            {
                
// Habilito nuevamente botones e inputs
                
input.value="";
                
boton.disabled=falseinput.disabled=false;
                
// Muestro el mensaje enviado desde el servidor
                
divMensaje.innerHTML=ajax.responseText;
            }
        }
    }

y
comprobar_disponibilidad_de_apodo_proceso.php
Código PHP:
<?php
include 'conexion.php';

function 
validaIngreso($valor)
{
    
// Funcion utilizada para validar el dato a ingresar recibido por POST
    
if(eregi("^[a-zA-Z0-9.@ ]{4,40}$"$valor)) return TRUE;
    else return 
FALSE;
}

function 
verificaExistencia($apodo)
{
    
/* Funcion encargada de verificar la existencia del apodo recibido en base de datos.
    Devuelve TRUE si el apodo existe, FALSE de lo contrario */
    
$consulta=mysql_query("SELECT id FROM apodos WHERE apodo='$apodo'") or die(mysql_error());
    
$registro=mysql_fetch_row($consulta);
    
    if(!empty(
$registro)) return TRUE;
    else return 
FALSE;
}

if(isset(
$_POST["ingreso"]))
{
    
// Quito espacios en blanco al comienzo y fin de la cadena
    
$valor=trim($_POST["ingreso"]);
    
// Si el valor recibido es valido...
    
if(validaIngreso($valor))
    {
        
conectar();
        
        
$consulta=mysql_query("SELECT COUNT(*) FROM apodos") or die(mysql_error());
        
$registro=mysql_fetch_row($consulta);

        
// Verifico que la base de datos no rebase los 600 registros (numero arbitrario)
        
if($registro[0]>=600) { echo "Hay demasiados registros en la Base de Datos"; die(); }
        
        
// Si el apodo ya existe en base de datos...
        
if(verificaExistencia($valor)) echo "Tu apodo ya existe en la base de datos";
        else 
        {
            
// Ingreso el nuevo apodo
            
mysql_query("INSERT INTO apodos (apodo) VALUES ('$valor')") or die(mysql_error());
            echo 
"Tu apodo ha sido ingresado";
        }
        
desconectar();
    }
}
elseif(isset(
$_POST["verificacion"]))
{
    
// Quito espacios en blanco al comienzo y fin de la cadena
    
$valor=trim($_POST["verificacion"]);
    
// Si el valor recibido es valido...
    
if(validaIngreso($valor))
    {
        
conectar();
        
// Si el apodo ya existe en base de datos...
        
if(verificaExistencia($valor)) echo "Tu apodo ya existe en la base de datos";
        else echo 
"Apodo disponible";
        
desconectar();
    }
}
?>
Lo que necesito hacer es que todo el proceso de validacion se encuentre en el archivo del formulario, si es posible hacerlo como se haria, ya que estoy muy verde es esto de ajax.

desde ya muchas gracias
  #2 (permalink)  
Antiguo 23/11/2007, 20:32
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 19 años, 4 meses
Puntos: 2
Re: validar campo con db

No entiendo muy bien eso de "hacer es que todo el proceso de validacion se encuentre en el archivo del formulario". ¿Lo que quieres hacer es tener el código JS, HTML y PHP en un solo archivo? Si es eso lo que buscas te comento que te va a quedar un enredo indeseable para quien tenga que mantener el sistema... en fin, no me queda del todo claro.

Saludos.
__________________
R4DS en español | R4DS en inglés
  #3 (permalink)  
Antiguo 25/11/2007, 18:00
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años, 1 mes
Puntos: 43
Re: validar campo con db

no, creo que me explique mal, lo que quiero tener es un solo archivo php, el tema es que tengo que hacer este formulario para un bloque en php-nuke, y quiero tener que usar un solo archivo php junto con el js, se entiende ahora?
  #4 (permalink)  
Antiguo 30/01/2012, 08:48
 
Fecha de Ingreso: diciembre-2011
Mensajes: 13
Antigüedad: 13 años
Puntos: 0
Respuesta: validar campo con db

destor77 pero si funciona ese codigo? Yo necesito es comprobar a la hora de hacer un registro mysql y php , que si el Email esta registrado o no . alguien que me colabore?
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:13.