Foros del Web » Programando para Internet » PHP »

Entrando al IF equivocado

Estas en el tema de Entrando al IF equivocado en el foro de PHP en Foros del Web. Amigos depurando el código para validar que no se repitan usuarios he llegado a deducir el siguiente error. Probablemente se esta repitiendo el insert porque: ...
  #1 (permalink)  
Antiguo 16/11/2005, 11:49
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
Entrando al IF equivocado

Amigos depurando el código para validar que no se repitan usuarios he llegado a deducir el siguiente error.

Probablemente se esta repitiendo el insert porque:
1. Si realiza el insert de un nuevo usuario
2. al terminar el proceso me muestra el mensaje de error.php

La acción la llamo desde un JS
Código HTML:
form1.action="insert.php?accion=guardar";
form1.submit();
Recibo la acción
Código PHP:
<?PHP
if($_GET['accion']=="guardar"){
 
$total='';
 
$rut=trim($_POST['rut']);
 
$pass=strtolower(trim($_POST['password']));
 
$nombre=strtolower(trim($_POST['nombre']));
 
$paterno=strtolower(trim($_POST['paterno']));
 
$materno=strtolower(trim($_POST['materno']));
 
$direccion=strtolower(trim($_POST['direccion']));
 
$ciudad=strtolower(trim($_POST['ciudad']));
 
$telefono=trim($_POST['telefono']);
 
$celular=trim($_POST['celular']);

 
$db_conexionmysql_connect("$sql_host""$sql_usuario""$sql_pass") or die(header ("Location:  $redir?error_login=0"));
 
mysql_select_db("$sql_db");

$busqueda=mysql_query("SELECT rut_adm FROM administrador WHERE rut_adm='$rut'");
$total=mysql_num_rows($busqueda); 
mysql_free_result($busqueda);
validación ...
Código PHP:


 
if($total 0)
{                  
   
header("location: error.php");
   exit;
}
if(
$total==0)
{                  
$sql="INSERT INTO ADMINISTRADOR(ID_adm,rut_adm,pass_adm,nombre_adm,apaterno_adm,amaterno_adm,direccion_adm,ciudad,telefono_adm,celular_adm,estado_adm,adm_access)
VALUES('','$rut','$pass','$nombre','$paterno','$materno','$direccion','$ciudad','$telefono','$celular','1',0)"
mysql_query($sql) or die ("Error en la consulta <strong>$sql</strong> :: ".mysql_error()); 
    
    
header("location: index.php");
    exit;
}
    
mysql_close();
    


Última edición por under_ground; 16/11/2005 a las 12:49
  #2 (permalink)  
Antiguo 16/11/2005, 13:11
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 14 años
Puntos: 19
mmmm no le veo error alguno, lo que podrias probar es...
Código PHP:
if(mysql_num_rows($busquedas) > 0){
           
header("location: error.php"); 
           
//tambien podrias mostrar los resultados que encontro .. o no ?
}else{
           
$sql "insert into ... ";
           
$res mysql_query($sql) or die(mysql_error());

suerte !!!!
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #3 (permalink)  
Antiguo 16/11/2005, 13:48
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
muy bien he hecho algunas pruebas en los ciclos IF cometando el insert y funcionan correctamente, es decir realmente esta validando que el "valor" no se repita, ahora probare con el inser porque al parecer ahi puede estar afectando algo
  #4 (permalink)  
Antiguo 16/11/2005, 14:08
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
qué pueder ser esto esta re extraño coloque des-seleccione el insert nuevamente y vuelve a mostrar el mensaje de error aún cuando registro el usuario
  #5 (permalink)  
Antiguo 16/11/2005, 15:26
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
lo que me he dado cuenta es que cuando ejecuto recien el script y voy a guardar a un usuario, corre excelente y muestra el mensaje de usuario guardado, pero a la segunda vez que lo hago se cae

Última edición por under_ground; 16/11/2005 a las 15:33
  #6 (permalink)  
Antiguo 16/11/2005, 21:40
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 14 años
Puntos: 19
te recomiendo que pongas el script completo asi lo vemos ..
saludos
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #7 (permalink)  
Antiguo 17/11/2005, 08:20
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
Amigo me doy estos minutos para contarles AL FIN resolvi, con bastante ayuda, mi problema que era bastante extraño por lo demas, así que para resumir y para evitar que le suceda a otros aqui va o que hice para resolver el problema.

Yo llamaba a la acción guardar 2 veces, de ahi nacia que se guardara 2 veces y que me lanzara los errores en los ciclos IF, yo validaba que el formulario tubiese todos los datos requeridos y cuando era así a través del JS le decia action="guardar.php" y ejecutaba la acción y es aqui donde quedaba la crema el botón insertar registro también llevaba la acción Submit entonces habia una doble acción guardar no se imaginan lo que me crenee limpiando variables, ruteando el código, haciendo meditaciones y hasta llegar a pensar si sería bueno tomar algún curso de Chef .... entonces para no seguir lateando o aburriendo siempre que hagan un insert y manejen la acción a través de un javascript tipo
Código HTML:
form1.action="allnew.php?accion=save";
form1.submit();
siempre dejen sin acción el botón enviar button Accion NONE ALWAYS, así se guardara solo una vez y nada más ufff ...así se evitaran pasar malos ratos y quedar mareado como quede yo jajaja
Saludos amigos del FORO y grax a quienes me dieron un aventón.
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 21:24.