Foros del Web » Programando para Internet » PHP »

Error con Form de validación

Estas en el tema de Error con Form de validación en el foro de PHP en Foros del Web. Tengo este php para guardar y evitar que se registren nuevos administradores para mi sistema, pero cuando ingreso un adm que existe si bien me ...
  #1 (permalink)  
Antiguo 11/11/2005, 18:07
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
Error con Form de validación

Tengo este php para guardar y evitar que se registren nuevos administradores para mi sistema, pero cuando ingreso un adm que existe si bien me muestra el mensaje de error de todas maneras lo guarda en la BD que puede estar ocurriendo ???


Código PHP:
$busqueda=mysql_query("SELECT rut_adm,user_adm FROM administrador WHERE user_adm='$user'");

if (
mysql_num_rows($busqueda)> )
{
echo 
"<script language= \"JavaScript\">
       window.location.href=\"$pag?accion=crear&error=4\";
</script>"
;//cabeceraHTML();
exit();
}else{
$sql=mysql_query("insert into ADMINISTRADOR (ID_adm,rut_adm,user_adm,pass_adm,nombre_adm,apaterno_adm,amaterno_adm,direccion_adm,ciudad,telefono_adm,celular_adm,estado_adm,adm_access)VALUES('','$rut','$user','$pass','$nombre','$paterno','$materno','$direccion','$ciudad','$telefono','$celular','1','$acceso')") or die ("Error al ingresar usuario, Inténtelo más tarde");
mysql_free_result($busqueda);

echo 
"<script language= \"JavaScript\">
       window.location.href=\"index.php\";
</script>"
;
exit;

  #2 (permalink)  
Antiguo 11/11/2005, 18:21
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
Código PHP:
$busqueda=mysql_query("SELECT rut_adm,user_adm FROM administrador WHERE user_adm='$user'"); 

if (
mysql_num_rows($busqueda) > ) { 
header("Location: $pag?accion=crear&error=4); 
exit; 
}else{ 

$sql=mysql_query("
insert into ADMINISTRADOR (ID_adm,rut_adm,user_adm,pass_adm,nombre_adm,apaterno_adm,amaterno_adm,direccion_adm,ciudad,telefono_adm,celular_adm,estado_adm,adm_access)VALUES('','$rut','$user','$pass','$nombre','$paterno','$materno','$direccion','$ciudad','$telefono','$celular','1','$acceso')") or die ("Error al ingresar usuarioInténtelo más tarde"); 
mysql_free_result($busqueda); 

header("
Locationindex.php");
exit; 

prueba mucho cambio no hice pero veo ke ta too bien..
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #3 (permalink)  
Antiguo 11/11/2005, 18:43
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
Ups ya se lo que ocurrio habia un problema con el mysql_close();

pero ha ocurrido un nuevo error, ahora pruebo el formulario para evitar que vayan a corromper la bd, como ven en el select traigo el rut y user del user

Código PHP:
$busqueda=mysql_query("SELECT rut_adm FROM administrador WHERE user_adm='$user'");

if(
mysql_num_rows($busqueda)>)
{
echo 
"<script language= \"JavaScript\">
       window.location.href=\"$pag?accion=crear&error=4\";
</script>"
;
exit();
}else{
$sql=mysql_query("insert into ADMINISTRADOR (ID_adm,rut_adm,user_adm,pass_adm,nombre_adm,apaterno_adm,amaterno_adm,direccion_adm,ciudad,telefono_adm,celular_adm,estado_adm,adm_access)VALUES('','$rut','$user','$pass','$nombre','$paterno','$materno','$direccion','$ciudad','$telefono','$celular','1','$acceso')") or die ("Error al ingresar usuario, Inténtelo más tarde");
mysql_free_result($busqueda);
mysql_close(); 
echo 
"<script language= \"JavaScript\">
       window.location.href=\"index.php\";
</script>"
;
exit;
}

pero cuando por ejemeplo ingreso un rut repetido o un user repetido se despliega esto:
corrijo, ahora cuando intento guardar siempre me envia al error del insert
Error al ingresar usuario, Inténtelo más tarde

Última edición por under_ground; 11/11/2005 a las 19:00
  #4 (permalink)  
Antiguo 11/11/2005, 19:18
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
No sé en qué afecto la edición al tema.. pero:
Cita:
corrijo, ahora cuando intento guardar siempre me envia al error del insert
Error al ingresar usuario, Inténtelo más tarde
Eso puede deberse a que tienes un error de sintáxis de SQL (porque arroja error mysql_query()). Te sugiero imprimas dicho error (con la función mysql_error()), mientras estes en fase de desarrollo manejalo así, después ya personalizas lo que quieras.:
Código PHP:
$sql=mysql_query("insert into ADMINISTRADOR (ID_adm,rut_adm,user_adm,pass_adm,nombre_adm,apaterno_adm,amaterno_adm,direccion_adm,ciudad,telefono_adm,celular_adm,estado_adm,adm_access)VALUES('','$rut','$user','$pass','$nombre','$paterno','$materno','$direccion','$ciudad','$telefono','$celular','1','$acceso')") or die (mysql_error()); 
Ve si arroja un error.

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 11/11/2005, 19:39
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
Cita:
Iniciado por jam1138
mientras estes en fase de desarrollo manejalo así, después ya personalizas lo que quieras
Bien un backup del insert me salvo del paso, pero ahora retorno al problema planteado al comienzo hize los siguientes cambios.

ahora en el select traigo el rut_adm,user_adm y comparo, si los datos son iguales, no los deberia dejar guardar ¿que podrá ser, quizas darle algun order by?
Código PHP:
$busqueda=mysql_query("SELECT Rut_adm,user_adm FROM administrador WHERE user_adm='$user'");
if(
mysql_num_rows($busqueda)>)//or $take[rut_adm] == $rut)//or $take[pass_adm] == $pass )
{
echo 
"<script language= \"JavaScript\">
       window.location.href=\"$pag?accion=crear&error=4\";
     </script>"
;
     exit();
}else{
    
$sql=mysql_query("insert into ADMINISTRADOR         (ID_adm,rut_adm,user_adm,pass_adm,nombre_adm,apaterno_adm,amaterno_adm,direccion_adm,ciudad,telefono_adm,celular_adm,estado_adm,adm_access)VALUES('','$rut','$user','$pass','$nombre','$paterno','$materno','$direccion','$ciudad','$telefono','$celular','1','$acceso')") or die (mysql_error());//or die ("Error al ingresar usuario, Inténtelo más tarde");
    
mysql_free_result($busqueda);
mysql_close(); 
echo 
"<script language= \"JavaScript\">
       window.location.href=\"index.php\";
</script>"
;
exit();


Última edición por under_ground; 11/11/2005 a las 20:33
  #6 (permalink)  
Antiguo 12/11/2005, 01:14
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
Código PHP:
<?php
$busqueda
=mysql_query("SELECT Rut_adm,user_adm FROM administrador WHERE user_adm='$user' AND Rut_adm='$rut'"); 
?>
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #7 (permalink)  
Antiguo 12/11/2005, 06:42
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
Probe lo último, pero tampoco ha funcionado, con tantas pruebas ya se que ocurre especificamente.

en mi form de ingreso tengo,
_ Rut (código identificador único)
_ username

Debo y quiero que si el usuario ingresa un rut igual al que se encuentra en la bd, niegue el ingreso y es aquí donde esta fallando porque cuando ingreso un mismo rut y un mismo usuario que ya existen controla y cumple su función, pero si ingrese un rut repetido y un usuario nuevo ejecuta el insert

En resumen quiero evitar que el rut y username se repitan ...

Última edición por under_ground; 12/11/2005 a las 06:52
  #8 (permalink)  
Antiguo 12/11/2005, 07:13
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 2 meses
Puntos: 5
ya que exit(); se encuentra dentro de una condicion if tambien puedes probar con return false; asi en ves de salir detendria la accion de la condicion en ese momento que se cumple.. intentalo asi..

return false;
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #9 (permalink)  
Antiguo 12/11/2005, 08:48
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
Cambie los forma de tratar los datos y deje solo el rut como el username corte por lo sano, pero ahora lo extraño es que cuando hago un insert me muestra una página en blanco y én la barra me muestra todos los datos algo como esto.
Código HTML:
http://localhost/BONELLI/Admin/Sitio_Seguro/ADM/Ingreso.php?rut=33&password=dd&nombre=dd&paterno=dd&materno=dd&direccion=&ciudad=&telefono=&celular=2&Submit=Insertar+Registro
que puede estar ocurriendo ahora
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 22:29.