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

comprobar usuario en tiempo real

Estas en el tema de comprobar usuario en tiempo real en el foro de Frameworks JS en Foros del Web. Hola que tal, me encontre un script en tutores.org que se supone realiza una consulta a la base de datos para comprobar si existe o ...
  #1 (permalink)  
Antiguo 02/04/2008, 18:11
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 2 meses
Puntos: 0
comprobar usuario en tiempo real

Hola que tal, me encontre un script en tutores.org que se supone realiza una consulta a la base de datos para comprobar si existe o no el nombre de usuario.

Esto es ideal para no tener mas de un usuario con el mismo nombre.

Sin embargo no lo logro hacer funcionar, ya conecte a la base de datos pero no me realiza la comprobacion y en tutores no parece nadie.

Alguien sabe que me falta?

Aqui va el script

Código HTML:
<script>
function chk_usuario(){
var pos_url = 'comprueba.php';
var nombre = document.getElementById('usuario').value;
var req = new XMLHttpRequest();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4 && (req.status == 200 || req.status == 304)) {
document.getElementById('resultado').innerHTML = req.responseText;
}
}
req.open('GET', pos_url +'?nombre='+nombre,true);
req.send(null);
}
}
</script>

<form id="form1" name="form1" method="post" action="">
Comprueba si existe el usuario: tutores<br />
<input name="usuario" type="text" id="usuario" onKeyUp="chk_usuario();"/><br /><div id='resultado'></div>
<input type="submit" name="Submit" value="Enviar" />
</form> 
y este es el php que hace la consulta

Código PHP:
<?
require_once('Conecction/nombre.php');
mysql_select_db($database_nombre,$nombre)
$usuarios mysql_query("Select * from nombre where nombre = '".@$_REQUEST['nombre']."'",@$nombre);
if (
mysql_num_rows($nombre)==0){
echo @
$_REQUEST['nombre'].' - Nombre de usuario Libre';
}else{
echo @
$_REQUEST['nombre'].' - Nombre de usuario ocupado';
}
mysql_close($nombre);
*/
?>
ahora si alguien sabe adonde hay otro script mas facil
  #2 (permalink)  
Antiguo 02/04/2008, 19:09
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 2 meses
Puntos: 0
Exclamación comprobar usuario en tiempo real

Supongo que en este foro alguien me puede ayudar, porque en el de ajax no anda casi nadie.

Resulta que me encontre este codigo en tutores.org, que verifica si existe o no el nombre de usuario en tu base de datos para asi evitar que se dupliquen.


yo lo cambien pero no se que me pueda faltar. este es el codigo de la pagina con el form

Código HTML:
<script>
function chk_usuario(){

var pos_url = 'comprueba.php';
var nombre = document.getElementById('usuario').value;
var req = new XMLHttpRequest();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4 && (req.status == 200 || req.status == 304)) {
document.getElementById('resultado').innerHTML = req.responseText;
}
}
req.open('GET', pos_url +'?nombre='+nombre,true);
req.send(null);
}
}
</script>

<form id="form1" name="form1" method="post" action="">
Comprueba si existe el usuario: tutores<br />
<input name="usuario" type="text" id="usuario" onKeyUp="chk_usuario();"/><br /><div id='resultado'></div>
<input type="submit" name="Submit" value="Enviar" />
</form>
</body>
</html> 
Y este el del pagina que ejecuta la consulta:

Código PHP:
<? require_once('Conecction/nombre.php');
mysql_select_db($database_nombre,$nombre)
$usuarios mysql_query("Select * from nombre where nombre = '".@$_REQUEST['nombre']."'",$nombre);
if (
mysql_num_rows($usuarios)==0){
echo @
$_REQUEST['nombre'].' - Nombre de usuario Libre';
}else{
echo @
$_REQUEST['nombre'].' - Nombre de usuario ocupado';
}
mysql_close($nombre);
*/
?>
Si alguien sabe que me falta o si existe una mejor manera, se lo agradecere
  #3 (permalink)  
Antiguo 02/04/2008, 19:23
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Re: comprobar usuario en tiempo real

Revisa esto:

en la ubicacion 'Conecction/nombre.php' esta la coneccion a la base de datos?

la variable $database_nombre tiene el nombre de la base de datos?

la variable $nombre tiene el nombre es una conexion a Base de Datos?

y... la funcion de ajax esta?

y otra cosa, cuando escribes en el cuadro de texto, aparece un signo de exclamacion en un triangulo amarillo en la barra de estado?

y como siempre pido... podrias postear la pagina completa? XD
  #4 (permalink)  
Antiguo 02/04/2008, 19:32
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: comprobar usuario en tiempo real

Hola amigo,

Este es un foro de php no de javascript.
Pero igualmente te sugiero que uses alguna librería para ajax.

Si usas jquery (www.jquery.com) el trabajo de ajax es un juego.

Fíjate, vamos al html:

Código HTML:
<!-- Incluimos la libreria jquery -->
<script type="text/javascript" src="jquery.js"></script>
 
<script type="text/javascript">
 
//CReamos la funcion que hará el trabajo (UNA SOLA LINEA!!!)
 
function ComprobarUsuario(user) {
$('#resultado').load("comprueba.php?nombre="+user);
}
</script>
 
<!-- Ahora el form -->
 
<form id="form1" name="form1" method="post" action="">
Comprueba si existe el usuario: tutores<br />
<input name="usuario" type="text" id="usuario" onKeyUp="ComprobarUsuario();"/><br /><div id='resultado'></div>
<input type="submit" name="Submit" value="Enviar" />
</form> 

Saludos
  #5 (permalink)  
Antiguo 02/04/2008, 19:35
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: comprobar usuario en tiempo real

todo respecto a la coneccion esta bien porque es la misma manera en que inserto registros y hago consultas, el problema es que con este sript no me funciona.

respecto a la funcion ajax es chk_usuario() ¿o me equivoco?

me da la impresion de que no capturo o no envio la orden para hacer la consulta a la base de datos ¿tendre que usar un $_GET o un $_POST?

y respecto a la pagina, esa es toda la pagina, estoy trabajando en local, para probar el codigo.
  #6 (permalink)  
Antiguo 02/04/2008, 19:47
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: comprobar usuario en tiempo real

Tu página php está bien por lo que vi. Lo unico que te faltaría es escapar le variable nombre para evitar inyecciones sql.

Usa lo que te dije arriba con respecto a ajax y te funcionará bien.

Para ver si tu php funciona entonces ingresa directamente por la url y prueba que te responde:

http://localhost/comprueba.php?nombre=test

Saludos
  #7 (permalink)  
Antiguo 02/04/2008, 21:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: comprobar usuario en tiempo real

Tema trasladado a AJAX.
  #8 (permalink)  
Antiguo 03/04/2008, 13:10
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: comprobar usuario en tiempo real

loading..................

Hola ruben, creo que esos ejemplos que te dieron en tutores es "pésima" (muchas razones) pero bueno.

Cuando estudies algo, no la copies y esperes que funcione. Comienza con cosas realmente básicas (como esperas multiplicar si no sabes sumar?).

Puedes leer las FAQ (ahí tienen ejemplo de chekar usuario válido) o bien leer este tutorial. http://tutoriales.maborak.com/ajax/

Respecto a tu archivo PHP,.... no te sirve de mucho ya que solo te INFORMA y no te da opcion a hacer ALGO si lo que informa es true o false...

Dale tu puedes ;) ajax es muy fácil.


connection closed.
__________________

Maborak Technologies
  #9 (permalink)  
Antiguo 04/04/2008, 13:22
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: comprobar usuario en tiempo real

Si la hice funcionar, jejeje.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:17.