Foros del Web » Programando para Internet » PHP »

tengo que hacer 2 veces click..

Estas en el tema de tengo que hacer 2 veces click.. en el foro de PHP en Foros del Web. hola amigos... estoy tratando de subir una imagen a mi servidor, guardando la ruta en mi BD (mysql), pero cuando le agrego el insert de ...
  #1 (permalink)  
Antiguo 26/11/2009, 21:03
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 11 meses
Puntos: 0
Pregunta tengo que hacer 2 veces click..

hola amigos...

estoy tratando de subir una imagen a mi servidor, guardando la ruta en mi BD (mysql), pero cuando le agrego el insert de la ruta de la imagen en el mysql_query , es decir... al agregarle en el "INSERT INTO registro (..... img_1 ) VALUES (... , '$img_sol')... la pagina me queda como "cargando" y no pasa nada... y si vuelvo a presionar el boton de submit, me agrega 2 registros a mi BD, una SIN la ruta de la imagen... y otro registro CON la ruta...

¿porqué pasa eso? ¿alguien sabe?

este es el php que ingresa mi form---

Gracias por la ayuda...

Código PHP:
 <?php
$conexion
mysql_connect("localhost","xxx","xxx"
or die (
"no se pudo conectar con el servidorssssssss");
mysql_select_db("prueba",$conexion)or die ("problemas en la conexion a la base de datos");


          
$corr $_POST['txt_correlativo'];
         
$regis $_POST['txt_registro'];
         
$observacion=$_POST['observacion'];
         
$fechaobs $_POST['fechaobs'];
         
$encargado $_SESSION["s_username"];
         
$kmobs $_POST['kmubic'];
         
$km_fin $_POST['km_final'];
         
$tramokm $_POST['cbo_kmi'];
         
$orientacion $_POST['cbo_orientacion'];
         
$ubicacion $_POST['txt_ubicacion'];
         
$progsem $_POST['cbo_programa'];
         
$ejetramo $_POST['cbo_eje'];
         
$partida $_POST['partidas'];
         
$activ $_POST['activos'];
         
$categoria $_POST['cbo_categoria'];
         
$estado $_POST['cbo_estado'];

$perfil_usuariomysql_query("select unidad from  users where username ='$encargado'",$conexion)or die ("cago".mysql_error());

if(
$reg_a=mysql_fetch_array($perfil_usuario));
    
    {
    
$unidad_inspeccion=$reg_a["unidad"]; 
    }

$consulta_partida=mysql_query("SELECT id , opcion FROM partidas WHERE id=$partida") or die("cago2".mysql_error());
if(
$valores=mysql_fetch_array($consulta_partida));
    
    {
    
$nom_partida=$valores["opcion"];
    }

$consulta_activo=mysql_query("SELECT id , opcion FROM activos WHERE id=$activ") or die("cago3".mysql_error());
if(
$valores_act=mysql_fetch_array($consulta_activo));
    
    {
    
$nom_activo=$valores_act["opcion"];
    }




//if ($categoria=="" or $activ=="" or $partida=="" or $ejetramo=="" or $progsem=="" or $ubicacion=="" or $orientacion=="" or $kmobs=="" or $fechaobs=="" or $observacion=="" ) 
if ( $corr=="" )
{    
echo 
"<script>history.back(alert(\"Debes ingresar todos los campos obligatorios (*). \"));</script>";
mysql_close($conexion);
}

else 
{

$ccc "http://localhost/sga/php/"//datos archivo
$directorio 'imgs/'//datos archivo


$nombre_archivo_capa $_FILES["imagen"]["name"]; //datos archivo
$tipo_archivo_capa $_FILES["imagen"]["type"]; //datos archivo
$tamano_archivo_capa $_FILES["imagen"]["size"]; //datos archivo
$nom_img_capatime().$nombre_archivo_capa//datos archivo
$nom_img_sin_espacio str_replace(" """$nom_img_capa);

if(
move_uploaded_file($_FILES['imagen']['tmp_name'],$directorio $nom_img_sin_espacio)) //datos archivo
$img_sol $ccc $directorio $nom_img_sin_espacio;  } //datos archivo

echo "Se ha ingresado un nuevo registro exitosamente<br>";
echo 
"Espera, se redireccionar&aacute; autom&aacute;ticamente";
mysql_query("INSERT INTO registro (id_correlativo , solucion , obser_reg , num_registro , fecha_obs , encargado , km_inicio , km_final , nom_orientacion , nom_ubicacion , nom_programa , nom_eje , nom_partida , nom_activo , nom_categoria , nom_estado , unidad_inspeccion , img_1) VALUES  ( '$corr' , 'no' ,'$observacion' , '$regis' , '$fechaobs' , '$encargado' , '$kmobs' , '$km_fin' , '$orientacion' , '$ubicacion' , '$progsem' , '$ejetramo' , '$nom_partida' , '$nom_activo' , '$categoria' , '$estado' , '$unidad_inspeccion' , '$img_sol')",$conexion) or die ("cago mysql_query".mysql_error());
?>
        <script language="JavaScript" type="text/javascript"> 
        setTimeout("url()",2500); 
        function url() 
        { 
        window.location="registros_conserva.php";
        } 
          </script>
        <?php 
}
?>
si le saco en el mysql_query "img_1" y "$img_sol".. osea... elimino los valores
"INSERT INTO registro (.... , img_1) VALUES ( ..., '$img_sol')...
.... se ingresan sin problemas el resto de los valores... y no queda "cargando"

Última edición por icarocu; 26/11/2009 a las 21:28
  #2 (permalink)  
Antiguo 27/11/2009, 13:03
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años, 6 meses
Puntos: 10
Respuesta: tengo que hacer 2 veces click..

hola, cuanto tarda en subir la imagen, son pesadas? seguramente el script tarda un poco por el peso de la imagen, deberias tambien deshabilitar el boton de submit una vez enviado el formulario, asi no permitis que se envie la misma info dos veces

Última edición por Adell; 27/11/2009 a las 13:10
  #3 (permalink)  
Antiguo 27/11/2009, 13:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: tengo que hacer 2 veces click..

Depende que tan pesada sea la imagen. Te sugiero que hagas una prueba con una imagen que no pese mucho.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 27/11/2009, 13:17
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: tengo que hacer 2 veces click..

amigos... hice prueba con una imagen de 100 kb y otra de 72 kb
  #5 (permalink)  
Antiguo 27/11/2009, 13:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: tengo que hacer 2 veces click..

¿te resulto o no?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 27/11/2009, 13:23
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: tengo que hacer 2 veces click..

Cita:
Iniciado por abimaelrc Ver Mensaje
¿te resulto o no?
no... sigue igual..
la pagina queda "cargando" .. y si le doy submit nuevamente.. ahi si ingresa, pero 2 registros, uno CON la ruta, y otro SIN la ruta del archivo..
y eso que probe con archivos pequeños (100 y 72 kb)
no se que pueda ser
  #7 (permalink)  
Antiguo 27/11/2009, 13:26
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: tengo que hacer 2 veces click..

Podria ser porque no estas generando una pagina HTML completa:

Código:
<html>
<head>
    <title>Este es el titulo de la pagina</title>
</head>
<body>
    <p>Aqui el contenido de la pagina.</p>
</body>
</html>
Supongo que el navegador no se esta enterando del tipo de contenido que esta recibiendo, al menos un header("Content-Type: text/html"); podria serte util.

Por otra parte, si creas toda la pagina HTML como debe ser, tambien te sugiero no usar javascript para redirigir, es mejor meta refresh
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 27/11/2009, 13:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: tengo que hacer 2 veces click..

Añadiendo lo que dice Triby, te sugiero que vayas primero por partes. Trata de hacer un formulario en una pagina nueva que solo tenga para ingresar la imagen. Haces un codigo que añada la imagen al servidor solamente. Verifica que salga bien en varias imagenes. Si te resulto, ahora lo que te sugiero que hagas es colocar la ruta de la imagen en la base de datos, un codigo sencillo que solo ingrese la ruta de la imagen y no uses codigo extra, como por ejemplo cambiar el nombre de la imagen, añadir una columna extra. Solo mantenlo simple y vas armando lo que quieres desde ahi.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 27/11/2009, 14:04
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: tengo que hacer 2 veces click..

esto de verdad no lo entiendo...

parti de cero... un form muy simple
nuevo_registro.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<
title>Untitled Document</title>
</
head>

<
body>
<
form action="insert_registro.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <
label
  <
input name="registro" type="text" id="registro" />
  <
br />
  <
input name="userfile" type="file" id="userfile" />
  </
label>
  <
br />
  <
label>
  <
input type="submit" name="Submit" value="Submit" />
  </
label>
</
form>
</
body>
</
html
y el php que valida el form
insert_registro.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<?php
$conexion
mysql_connect("localhost","xxx","xxx"
or die (
"no se pudo conectar con el servidorssssssss");
mysql_select_db("prueba",$conexion)or die ("problemas en la conexion a la base de datos");

$registro=$_POST['registro'];


if (
$_POST['registro']=='')

echo 
"debes ingresar todos los campos obligatorios <br>";
echo 
"<a href='registros_conserva.php'>volver</a>";
mysql_close($conexion);
}

else 
{

$nombre_archivo $_FILES["userfile"]["name"]; //datos archivo
$tipo_archivo $_FILES["userfile"]["type"]; //datos archivo
$tamano_archivo $_FILES["userfile"]["size"]; //datos archivo
$ccc "http://localhost/sga/php/"//datos archivo
$nom_imgtime().$nombre_archivo//datos archivo
$nom_img_sin_espacio str_replace(" """$nom_img); 
$directorio 'imgs/'//datos archivo

if(move_uploaded_file($_FILES['userfile']['tmp_name'],$directorio $nom_img_sin_espacio)) //datos archivo
{  $img_sol$ccc $directorio $nom_img_sin_espacio;  } //datos archivo


mysql_query("INSERT INTO registro (img_1) VALUES ('$img_sol')",$conexion) or die ("cago mysql_query".mysql_error());
echo 
"Se ingresó el registro exitosamente <br>";
echo 
"<a href='registros_conserva.php'>volver</a>";
}
?>
</body>
</html>
pero sigue en lo mismo..... queda "cargando"

Última edición por icarocu; 27/11/2009 a las 14:12 Razón: aclaracion
  #10 (permalink)  
Antiguo 27/11/2009, 14:17
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años, 6 meses
Puntos: 10
Respuesta: tengo que hacer 2 veces click..

ademas lo raro es que estas trabajando localmente, hay que revisar el codigo mas a fondo, ahora lo reviso bien estoy medio oxidado con las funciones de imagenes
  #11 (permalink)  
Antiguo 27/11/2009, 14:19
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: tengo que hacer 2 veces click..

Cita:
Iniciado por Adell Ver Mensaje
ademas lo raro es que estas trabajando localmente, hay que revisar el codigo mas a fondo, ahora lo reviso bien estoy medio oxidado con las funciones de imagenes
absolutamente adell... es por eso que esto de verdad me esta dando dolores de cabeza....
gracias por tu ayuda
  #12 (permalink)  
Antiguo 27/11/2009, 14:29
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años, 6 meses
Puntos: 10
Respuesta: tengo que hacer 2 veces click..

empecemos por lo basico, el directorio donde quieres guardar las imagenes tiene permisos 777? o en caso de trabajar en windows permisos de escritura?
  #13 (permalink)  
Antiguo 27/11/2009, 14:36
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: tengo que hacer 2 veces click..

Cita:
Iniciado por Adell Ver Mensaje
empecemos por lo basico, el directorio donde quieres guardar las imagenes tiene permisos 777? o en caso de trabajar en windows permisos de escritura?
completamente, tiene permisos 777... y lo raro es como comentaba al comienzo, que debo hacer 2 veces submit para que pase, pero al hacer esto, crea 2 registros, uno CON la ruta ($img_sol), y otro sin la ruta
trabajo en mac en todo caso,
  #14 (permalink)  
Antiguo 27/11/2009, 14:38
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años, 6 meses
Puntos: 10
Respuesta: tengo que hacer 2 veces click..

y la imagen la sube?
otra cosa te devuelve algun error php?
y si no es asi tienes los errores de php habilitados desde el php.ini?

otra cosa hace un echo de la variable $img_sol para ver si guarda el path correcto
  #15 (permalink)  
Antiguo 27/11/2009, 14:39
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: tengo que hacer 2 veces click..

si, sube la imágen al hacer por segunda vez submit y la variable$img_sol contiene la ruta correcta... y sin error

esto es un verdadero dolor de cabeza !!!.. no tiene logica que no pase correctamente

Última edición por icarocu; 27/11/2009 a las 14:46
  #16 (permalink)  
Antiguo 27/11/2009, 15:00
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años, 6 meses
Puntos: 10
Respuesta: tengo que hacer 2 veces click..

usas firefox? si es asi instala firebug asi vemos que pasa con la web mientras carga,. eso ayuda a depurar

otra cosa esto sale por pantalla bien?
echo "Se ingresó el registro exitosamente <br>";
  #17 (permalink)  
Antiguo 27/11/2009, 15:01
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 11 meses
Puntos: 0
no, uso SAFARI
si, el todos los mensajes salen sin problema....

NOOOOO.... PARECE QUE ERA SIMPLEMENTE ESO !!!!!!!!!!!!!!!?!?!??!
usé FIREFOX Y PASO SIN PROBLEMA !!!!!!!!!!!

Última edición por GatorV; 27/11/2009 a las 23:54
  #18 (permalink)  
Antiguo 27/11/2009, 15:04
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años, 6 meses
Puntos: 10
Respuesta: tengo que hacer 2 veces click..

si podes instala firefox, solo para tener otra vista del problema, quizas sea algo solo del safari que a veces toma cosas mas especificas
  #19 (permalink)  
Antiguo 27/11/2009, 15:10
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 11 meses
Puntos: 0
Cero problema con firefox, parce que era cosa de safari

Definitivo... Es cosa del safari !!!
Gracias adell !!!

Última edición por GatorV; 27/11/2009 a las 23:55
  #20 (permalink)  
Antiguo 27/11/2009, 15:15
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años, 6 meses
Puntos: 10
Respuesta: tengo que hacer 2 veces click..

a veces pasa, es un lio para programar cosas con todos los navegadores, ahora hay que investigar que cosas no acepta el safari, hay alguna propiedad del safari que esta molestando, por ejemplo para darte una idea (no sirve en este caso) pero el safari no acepta valores con %, habria que ver que propiedad no esta aceptando, yo en 15 min salgo del trabajo y ya me retiro pero en 5 horas me vuelvo a conectar por si necesitas una mano

saludos
  #21 (permalink)  
Antiguo 27/11/2009, 15:35
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: tengo que hacer 2 veces click..

Grande Adell... gracias por la informacion
hasta ahora safari no me habia dado problema..
pero parce que seguiremos con FIREFOX, ni hablar despues cuando lo pruebe en IE jajaa... ahi si que seguro me encuentro con problemas

Exitos y gracias nuevamente por tu ayuda
  #22 (permalink)  
Antiguo 12/03/2010, 07:30
 
Fecha de Ingreso: marzo-2010
Mensajes: 1
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: tengo que hacer 2 veces click..

hola alguien encontro la solució a esto sobre Safari? por que justo me pasa lo mismo. En firefox va bien pero en safari falla.. un form "pelao" funciona bien, pero más complejo se queda colgado, si le das dos veces seguidas sube bien.
Pero no puedo esperar que la gente con safari le de dos veces.
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:59.