Foros del Web » Programando para Internet » PHP »

Buscar si es registrado o no? con formulario de registro. COmo le hago?

Estas en el tema de Buscar si es registrado o no? con formulario de registro. COmo le hago? en el foro de PHP en Foros del Web. Hola quisiera saber si me pueden ayudar en esto, estoy haciendop un sistema de registrados, pero con un pequeño detalle al presionar en verificar busca ...
  #1 (permalink)  
Antiguo 07/06/2006, 17:10
Avatar de renzoster  
Fecha de Ingreso: mayo-2006
Ubicación: Lima
Mensajes: 63
Antigüedad: 11 años, 7 meses
Puntos: 0
Buscar si es registrado o no? con formulario de registro. COmo le hago?

Hola quisiera saber si me pueden ayudar en esto, estoy haciendop un sistema de registrados, pero con un pequeño detalle al presionar en verificar busca si el nick esta registrado o no. Ahora el problema es que no busca como se debe y menciona que todos los nicks estan disponibles pesar de no ser asi:

El archivo registrar.php
Código PHP:
<?
if($registrar) {
function 
quitar($texto) {
$texto trim($texto) ;
$texto htmlspecialchars($texto) ;
return 
$texto ;
}
$nick quitar($nick) ;
$emailquitar($email) ;
// Comprobar que el usuario existe en la base de datos
$resp mysql_query("select id from usuarios where nick='$nick' or email='$email'") ;
if(
mysql_num_rows($resp) != 0) {
echo 
"Ya existe un usuario con ese nick o email en la base de datos. Haz click <a href=javascript:history.back()>aquí</a> para regresar." ;
}
else {
$fecha time() ;
$contrasena quitar($contrasena) ;
$ip $REMOTE_ADDR ;
mysql_query("insert into usuarios (fecha,nick,contrasena,email,ip) values ('$fecha','$nick','$contrasena','$email','$ip')") ;
echo 
"Has sido registrado con éxito. Haz click <a href=index.php>aquí</a> para ir a la página principal." ;
}
}
else {
?>
<p>Los datos marcados con un asterisco (*) son obligatorios.
<script>
function revisar() {
if(formulario.nick.value.length < 3) { alert('El nick debe contener por lo mínimo 3 caractéres') ; return false ; }
if(formulario.contrasena.value.length < 5) { alert('La contraseña debe contener por lo mínimo 5 caractéres') ; return false ; }
if(formulario.email.value.length == 0) { alert('Debes poner un email válido') ; return false ; }
}
</script>

<script type="text/javascript" language="javascript" src="../ajax/XHConn.js"></script>
<script>
var myConn = new XHConn();

if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");

var include_terminado = function (oXML) { document.getElementById('verificacion').innerHTML = oXML.responseText; };

function comprobar_existe (url)
{
    document.getElementById('verificacion').innerHTML = "<center><img src='loading_ani2.gif' /></center><br>";
    
    myConn.connect("../ajax/verificar_user.php", "GET", "nick="+url, include_terminado);
}

</script>

<form name="formulario" method="post" action="index.php?go=registrar" onsubmit="return revisar()">
<b>* Nick:</b><br>
  <input type="text" name="nick" maxlength="20" class="form">
  <input type="button" onclick="comprobar_existe();" name="verificar" value="Verificar" class="form"><br>
<div id="verificacion">
</div>
<b>* Contraseña:</b><br>
<input type="password" name="contrasena" maxlength="20" class="form"><br>
<b>* Email:</b><br>
<input type="text" name="email" maxlength="40" class="form"><br><br>
<input type="submit" name="registrar" value="Registrar" class="form">
</form>
<?
}
?>
Y el archivo para verificar verificar_user.php:
Código PHP:
<?php
$revisar 
"si";
if(
$revisar "si") {
$nickname $_GET['formulario.nick.value'];
include(
"../data/conexdb.php");
$resp mysql_query("select * from usuarios where nick = '$nickname'") or die (mysql_error());
if(
mysql_num_rows($resp) == "0") {
echo 
"<font color=green>El nick elegido está disponible</a><br>";
} else {
echo 
"<font color=red>El nick elegido ya esta siendo usado</a><br>";
  }
}
?>
Supongo que el error esta en verificar_user.php, en la parte de $nickname = $GET...
  #2 (permalink)  
Antiguo 07/06/2006, 17:50
 
Fecha de Ingreso: abril-2006
Ubicación: mexico
Mensajes: 287
Antigüedad: 11 años, 7 meses
Puntos: 2
mira esta funcion use yop.

Cita:
{
$consulta="select * from $tabla where nick='$var1'";
$resultado=mysql_query($consulta) or die ("no se puede ejecutar la consulta.");
$fila=mysql_num_rows($resultado);
if($fila==0)
{
$consulta="INSERT INTO $tabla VALUES ('$var1','$var2','$var3','$var4','$var5','$var6',' $var7','$var8','$var9','$var10','$var11','$var12', '$var13','$var14','$var15')";

return mysql_query($consulta);
}
else
{


return ("0");

}
}
a lo mejor solo es cuestión de quitarle las "", a donde dice if(mysql_num_rows($resp) == "0") quitale comillas a tu cero, por que lo que te manda es un número nop?... bueno eso creo, pero eso es en verificar_user.php. ok?, checalo, a ver si jala.
  #3 (permalink)  
Antiguo 07/06/2006, 18:01
Avatar de renzoster  
Fecha de Ingreso: mayo-2006
Ubicación: Lima
Mensajes: 63
Antigüedad: 11 años, 7 meses
Puntos: 0
En esta linea creo que es el error, lo de las comillas no es el problema. Solo el reonocimiento del value del campo creo

$nickname = $_GET['formulario.nick.value'];
  #4 (permalink)  
Antiguo 07/06/2006, 21:51
 
Fecha de Ingreso: abril-2006
Ubicación: mexico
Mensajes: 287
Antigüedad: 11 años, 7 meses
Puntos: 2
AH BUENO si tu crees que ahi puede ser mejor pues mejor utiliza $nick=$_POST['nick'], así lo recuperas cuando lo envies de tu formulario a verificar_user.php

y no tendrías que poner todo esto $nickname = $_GET['formulario.nick.value']; y a lo mejor es mas sencillo y de ahi te estará jalando perfectamente de esa manera lo uso yo. pruebalo, si lo otro estaba bien.
  #5 (permalink)  
Antiguo 07/06/2006, 22:17
Avatar de renzoster  
Fecha de Ingreso: mayo-2006
Ubicación: Lima
Mensajes: 63
Antigüedad: 11 años, 7 meses
Puntos: 0
pero crees que sea con post porque si te das cuenta es un solo formulario
  #6 (permalink)  
Antiguo 07/06/2006, 22:22
 
Fecha de Ingreso: abril-2006
Ubicación: mexico
Mensajes: 287
Antigüedad: 11 años, 7 meses
Puntos: 2
en un solo formulario, no importa así lo hago, tengo todo en un mismo formulario y uso POST, es decir, todo en una misma página mando a llamar a mi función. solo hago esto...:


mismaforma.php
Cita:
if($_POST['accion']=="GUARDAR")
{
$diaa=trim(strip_tags($_POST['txtdiaa']));
$mesa=trim(strip_tags($_POST['txtmesa']));
$anoa=trim(strip_tags($_POST['txtanoa']));
$diab=trim(strip_tags($_POST['txtdiab']));
$mesb=trim(strip_tags($_POST['txtmesb']));
$anob=trim(strip_tags($_POST['txtanob']));
$fechaalta=$anoa.'-'.$mesa.'-'.$diaa;
$fechabaja=$anob.'-'.$mesb.'-'.$diab;
$var1=trim(strip_tags($_POST['txtnick']));
$var2=trim(strip_tags($_POST['txtpass']));
$var3=trim(strip_tags($_POST['txtnom']));
$var4=trim(strip_tags($_POST['txtapellidos']));
$var5=trim(strip_tags($_POST['txtpuesto']));
$var6=trim(strip_tags($_POST['selectsex']));
$var7=trim(strip_tags($_POST['txtemail']));
$var8=trim(strip_tags($_POST['txtdom']));
$var9=trim(strip_tags($_POST['txtcp']));
$var10=trim(strip_tags($_POST['txtciudad']));
$var11=trim(strip_tags($_POST['txtedo']));
$var12=trim(strip_tags($_POST['txttel']));
$var13=$fechaalta;
$var14=$fechabaja;
$var15=trim(strip_tags($_POST['txtactivo']));

require("funciones_validaciones.php");
$resultado=insertabdper("deptoadmor",$var1,$var2,$ var3,$var4,$var5,$var6,$var7,$var8,$var9,$var10,$v ar11,
$var12,$var13,$var14,$var15);

if($resultado=="0")
{
mysql_close($conexion);

echo'<script language="JavaScript" type="text/JavaScript">
alert("Se encontro el nick, por favor busque otro");
</script>';

}
else
{
mysql_close($conexion);
cambiarpagina("altapersonal.php");
}
}
else
{
$var1="";
$var2="";
$var3="";
$var4="";
$var5="";
$var6="";
$var7="";
$var8="";
$var9="";
$var10="";
$var11="";
$var12="";
$var13="";
$var14="";
$var15="";

}
y esto en el codigo html.
Cita:
<input name="accion" type="submit" id="cancelar3" value="CANCELAR" >
<input name="accion" type="submit" id="guardar6" value="GUARDAR"></td>
yo así lo estoy haciendo, manejo primero mi codigo<?php ?> luego html...y todo funciona perfecto aun que dentro de php mande mis variables de html como post, es decir dentro de <name=form action=mismaforma.php method =post><------- mismaforma.php

Última edición por angeles804; 07/06/2006 a las 22:27
  #7 (permalink)  
Antiguo 07/06/2006, 22:29
Avatar de renzoster  
Fecha de Ingreso: mayo-2006
Ubicación: Lima
Mensajes: 63
Antigüedad: 11 años, 7 meses
Puntos: 0
Lo deje asi pero aun no me funciona a la perfeccion
Código PHP:
<?
$nickname 
$_POST['nick'];
include(
"../data/conexdb.php");
$resp mysql_query("select * from usuarios where nick = '$nickname'") or die (mysql_error());
if(
mysql_num_rows($resp) == "0") {
echo 
"<font color=green>El nick elegido está disponible</a><br>";
} else {
echo 
"<font color=red>El nick elegido ya esta siendo usado</a><br>";
  }
//}
?>
  #8 (permalink)  
Antiguo 07/06/2006, 22:43
 
Fecha de Ingreso: abril-2006
Ubicación: mexico
Mensajes: 287
Antigüedad: 11 años, 7 meses
Puntos: 2
funciones_validaciones.php
Cita:
function insertabdper($tabla,$var1,$var2,$var3,$var4,$var5, $var6,$var7,$var8,$var9,$var10,$var11,
$var12,$var13,$var14,$var15)
{
$consulta="select * from $tabla where nick='$var1'";
$resultado=mysql_query($consulta) or die ("no se puede ejecutar la consulta.");
$fila=mysql_num_rows($resultado);
if($fila=="0")
{
$consulta="INSERT INTO $tabla VALUES ('$var1','$var2','$var3','$var4','$var5','$var6',' $var7','$var8','$var9','$var10','$var11','$var12', '$var13','$var14','$var15')";

return mysql_query($consulta);
}
else
{


return ("0");

}
}
altapersonal.php
Cita:
if($_POST['accion']=="GUARDAR")
{
$diaa=trim(strip_tags($_POST['txtdiaa']));
$mesa=trim(strip_tags($_POST['txtmesa']));
$anoa=trim(strip_tags($_POST['txtanoa']));
$diab=trim(strip_tags($_POST['txtdiab']));
$mesb=trim(strip_tags($_POST['txtmesb']));
$anob=trim(strip_tags($_POST['txtanob']));
$fechaalta=$anoa.'-'.$mesa.'-'.$diaa;
$fechabaja=$anob.'-'.$mesb.'-'.$diab;
$var1=trim(strip_tags($_POST['txtnick']));
$var2=trim(strip_tags($_POST['txtpass']));
$var3=trim(strip_tags($_POST['txtnom']));
$var4=trim(strip_tags($_POST['txtapellidos']));
$var5=trim(strip_tags($_POST['txtpuesto']));
$var6=trim(strip_tags($_POST['selectsex']));
$var7=trim(strip_tags($_POST['txtemail']));
$var8=trim(strip_tags($_POST['txtdom']));
$var9=trim(strip_tags($_POST['txtcp']));
$var10=trim(strip_tags($_POST['txtciudad']));
$var11=trim(strip_tags($_POST['txtedo']));
$var12=trim(strip_tags($_POST['txttel']));
$var13=$fechaalta;
$var14=$fechabaja;
$var15=trim(strip_tags($_POST['txtactivo']));

require("funciones_validaciones.php");
$resultado=insertabdper("deptoadmor",$var1,$var2,$ var3,$var4,$var5,$var6,$var7,$var8,$var9,$var10,$v ar11,
$var12,$var13,$var14,$var15);

if($resultado=="0")
{
mysql_close($conexion);

echo'<script language="JavaScript" type="text/JavaScript">
alert("Se encontro el nick, por favor busque otro");
</script>';

}
else
{
mysql_close($conexion);
cambiarpagina("altapersonal.php");
}
}
esto es lo que yo puse y me salió bien, espero que sea lo que necesites. a ver que pex. saludos.
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 19:52.