Foros del Web » Programando para Internet » PHP »

Botón que funciona en todos los ordenadores menos en el mío.

Estas en el tema de Botón que funciona en todos los ordenadores menos en el mío. en el foro de PHP en Foros del Web. Buenos días foro. Tengo un poltergeist en la web que estoy haciendo. Tengo este trozo de código que pertenece a un botón que consta de ...
  #1 (permalink)  
Antiguo 09/05/2011, 04:54
 
Fecha de Ingreso: agosto-2009
Mensajes: 91
Antigüedad: 14 años, 8 meses
Puntos: 2
Botón que funciona en todos los ordenadores menos en el mío.

Buenos días foro.

Tengo un poltergeist en la web que estoy haciendo. Tengo este trozo de código que pertenece a un botón que consta de dos imágenes, una para cuando el cursor esta encima y otra para cuando no lo esta:

<input type="image" src="images/icono-upload.png" width="132px" value="peticion" name="peticion" id="peticion" alt="Envía imagen" title="Envía imagen" onmouseover="this.src='images/icono-uploadpulsado.png'" onmouseout="this.src='images/icono-upload.png'">

El tema es que al inicio del código compruebo si el botón ha sido pulsado o no para saber si la página al recargarse debe hacer algo o no mediante un:

if ($_POST['peticion']){ haz algo

} else {

No hagas nada
}

Pues bien, a simple vista es algo que he hecho muchas veces y no debería dar ningun problema. Funciona en todos los ordenadores en los que he probado menos en el mío (Probado con Firefox y Explorer). No entiendo por qué puede no funcionar en unos ordenadores sí y en el mío no.

Creo que no envía el POST al pulsar el botón. Pero como digo, solo ocurre con mi PC y tengo la misma versión de firefox y de explorer que en el resto de ordenadores en los que he probado.

Muchísimas gracias por adelantado cracks.
  #2 (permalink)  
Antiguo 09/05/2011, 05:08
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Botón que funciona en todos los ordenadores menos en el mío.

Yo probaría con isset($_POST...)

Y el código javascript para el cambio de imagen... podrías hacerlo con css??

Un saludo!
  #3 (permalink)  
Antiguo 09/05/2011, 14:53
 
Fecha de Ingreso: agosto-2009
Mensajes: 91
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Botón que funciona en todos los ordenadores menos en el mío.

Probé con isset pero continúa igual. El tema de hacerlo con css me trajo de cabeza, al final en este mismo foro me recomendaron hacerlo con javascript. ¿El problema puede venir de ahí?

Mil gracias miktrv!
  #4 (permalink)  
Antiguo 09/05/2011, 15:20
Avatar de AndresTorres  
Fecha de Ingreso: abril-2011
Ubicación: Capital Federal, ARG
Mensajes: 49
Antigüedad: 13 años
Puntos: 13
Respuesta: Botón que funciona en todos los ordenadores menos en el mío.

Me parece muy ilógico que sea un problema de PHP esto ya que este se ejecuta en el servidor y rarisimas veces depende del navegador que haga la petición, o al menos podrías poner tu código para verificar que no estés utilizando algo deprecated o que no sea crossbrowser.
  #5 (permalink)  
Antiguo 09/05/2011, 15:48
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Botón que funciona en todos los ordenadores menos en el mío.

Hola jurassicboy.

Aunque este no sea el foro adecuado, ¿que problema tenías con el css?
Yo tengo algo parecido en una aplicación que he hecho y es tan sencillo como poner esto en el css:

#peticion{
background-image: url(images/icono-upload.png);
}

#peticion:hover{
background-image: url(images/icono-uploadpulsado.png);
}

El input lo tendrías que poner type="submit"

A mi me funciona bien en todos los navegadores.

Lo que si recuerdo ahora es que las imágenes las tuve que poner "jpg" porque con extensión "png" tenía problemas. La cosa es que con algunas imágenes con extensión png me daba problemas y con otras no y no llegué a saber por qué, así que las convertí a jpg y me funcionó bien.
  #6 (permalink)  
Antiguo 10/05/2011, 00:47
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Botón que funciona en todos los ordenadores menos en el mío.

Más cosas que se me ocurren:

Mirar las propiedades de tu etiqueta form, el method, enctype, etc.

Después, puedes hacer justo debajo ( o arriba ), un botón del tipo submit para comprobar si tu form envía o no. Si envía, quiere decir que el problema esta en tu botón image.

Un saludo!
  #7 (permalink)  
Antiguo 10/05/2011, 03:31
 
Fecha de Ingreso: agosto-2009
Mensajes: 91
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Botón que funciona en todos los ordenadores menos en el mío.

Gracias a todos, todavía ando liado. Lo raro es que a mi manera con javascript tengo otros botones que sí me funcionan, solo es este el que me da problemas. He comprobado que el botón funcione si le quito el código de cambio de imagen y sí funciona. Así que el error debe ser por narices con las imágenes.

He probado sustituyendo el javascript por el CSS:


Fichero .css:

#peticion{
background-image: url(icono-upload.png);
}

#peticion:hover{
background-image: url(icono-uploadpulsado.png);
}

Y en el fichero .php tengo:

<input type="submit" name="peticion" value="Envía la imagen" id="peticion">

Con este código me aparece el botón sin ninguna imagen. He probado con imágenes .jpg pero igual.

Un saludo!
  #8 (permalink)  
Antiguo 10/05/2011, 04:33
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 5 meses
Puntos: 48
Respuesta: Botón que funciona en todos los ordenadores menos en el mío.

Podrias poner el codigo completo del form?
  #9 (permalink)  
Antiguo 10/05/2011, 04:56
 
Fecha de Ingreso: agosto-2009
Mensajes: 91
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Botón que funciona en todos los ordenadores menos en el mío.

Creo que sabiendo que el error se encuentra en el cambio de imagen es mas lioso poner el código del form, pero aquí lo tenéis. Mil gracias

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="form1"><br>

<table border="0" width="60%" style="margin-left:auto; margin-right:auto" align="center">
<tr><td></td><td><b>Bienvenido/a <?php echo $nombre_completo;?>,</b></td></tr>
<tr><td><br></td><td></td></tr>
<tr><td>Titulo:</td><td><input name="titol" type="text" id="titulo"></td></tr>
<tr><td>Duración: </td><td><input type="text" readonly name="theDate" onfocus="displayCalendar(document.forms[2].theDate,'dd/mm/yyyy',this)"></td></tr>

<tr><td>Descripción de la imagen:</td><td><input name="descripcion" type="text" id="descripcion"></td></tr>

<tr><td>Imagen a subir:</td><td> <input type="file" name="filename"></td></tr>
<input id="busca_escondido2" name="entradaPublica" value="true" type="hidden">
<input type='hidden' name='campo_niu' value='<?php echo $campo_niu;?>'>
<input type='hidden' name='nombre_completo' value='<?php echo $nombre_completo;?>'>
<input type='hidden' name='mail' value='<?php echo $mail;?>'>



<tr><br><br><td></td><td><input type="submit" name="peticion" value="Envía la imagen" id="peticion"></td><td width="100px" align="right"><a href="pantallas.php" style="text-decoration:none"><img src="images/exit-icon.gif" onmouseover="this.src='images/exit-iconpulsado.gif'" onmouseout="this.src='images/exit-icon.gif'" alt="Salir" title="Salir" border="0"></a></td></tr>
<tr><td><br></td><td></td></tr>


<?php // Enviamos el mensaje o no
if ($_POST['peticion']){?>

<tr><td colspan="2" class="rayadiscon"></td></tr><?php

if(($_POST['titulo']=="") || ($_POST['theDate']=="") || ($_POST['descripcion']=="") || ($_FILES['filename']['name']=="")){?>
<tr><td colspan="2"><img src="images/atencion1.jpg" alt="" border="0" width="20px">&nbsp;<b>Recuerde que todos los campos son obligatorios. Por favor verifique que ha llenado todos los campos.</b></td><td></td></tr>
<?php }elseif ($fecha_comparar < $fecha_actual){?>
<tr><td colspan="2"><img src="images/atencion1.jpg" alt="" border="0" width="20px">&nbsp;<b>Recuerde que no se puede introducir una fecha de caducidad anterior a la de hoy.</b></td><td></td></tr>
<?php }elseif ($size > '1572.864'){?>
<tr><td colspan="2"><img src="images/atencion1.jpg" alt="" border="0" width="20px">&nbsp;<b>Recuerde que no se puede introducir un archivo mas grande de 1,5 MB.</b></td><td></td></tr>
<?php }

elseif (($_POST['titol']!="") && ($_POST['theDate']!="") && ($_POST['descripcio']!="") && ($_FILES['filename']['name']!="")&&($name_cortado[$long]=="jpg" || $name_cortado[$long]=="jpeg" || $name_cortado[$long]=="ppt" || $name_cortado[$long]=="pptx") && @mail($to, $subject, $message, $headers)) {
@mysql_query("SET NAMES 'utf8'",$conexion);
mysql_query("INSERT INTO imagenes(titulo,descripcion,enlace,caducidad) VALUES ('$titulo','$descripcion','TinySlideshow/pantallas/$name','$duracion')");


// parametros ftp para la conexión
$ftp_server = "*********";
$ftp_user_name = "******";
$ftp_user_pass = "******";
$ftp_port = 21;
$ftp_timeout = 20;
$remote_file = "httpdocs/PRUEBASVIDEO/TinySlideshow/pantallas/".$_FILES['filename']['name'];

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// upload a file
if (!ftp_put($conn_id, $remote_file, $_FILES['filename']['tmp_name'], FTP_BINARY)) {

echo "Lo sentimos ha habido un problema subiendo el fichero $file";
}

// close the connection
ftp_close($conn_id);?>


<tr><td colspan="2"><b>Gracias, su imagen será añadida a las pantallas en cuanto la verifiquemos.</b></td><td></td></tr>

<?php

}else{?>

<tr><td colspan="2"><img src="images/atencion1.jpg" alt="" border="0" width="20px">&nbsp;<b>Error enviando el mensaje, por favor vuelva a intentarlo. Recuerde que solo aceptamos ficheros .ppt, .pptx y .jpg.</b></td><td></td></tr>
<?php
}?>
<tr><td colspan="2" class="rayadiscon"></td></tr>
<?php }?>
</table>
</form>
  #10 (permalink)  
Antiguo 10/05/2011, 05:21
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Botón que funciona en todos los ordenadores menos en el mío.

Cita:
Iniciado por jurassicboy Ver Mensaje
Con este código me aparece el botón sin ninguna imagen. He probado con imágenes .jpg pero igual.
Ese es el error que me ocurría a mi con las imágenes png pero con las jgp se veía bien.

Se me olvidó ponerte que en el css también tienes que darle tamaño a las imágenes. Yo lo tengo así:

input{
height: 77px; //Aquí pondrías el alto de tu imagen
width: 200px; //Aquí pondrías el ancho de tu imagen
}

No uses un fichero css por si acaso el fallo es que te linka mal. Ponlo en la cabecera del html, dentro de la seccion <head> para comprobar.

La verdad es que ponerle una imagen a un botón con css no tiene nigún misterio. Te debería funcionar bien.


<style type="text/css">
/* Aquí va el código CSS */
/* Todo esto va dentro del <head> */
</style>

Por cierto, acabo de ver tu código html y veo que tienes puesto un nombre de imagen distinto a lo que has puesto antes. Verifica que el nombre y la extensión esté bien puesto y prueba con otras imágenes para comprobar si va bien o falla con cualquier imagen.
  #11 (permalink)  
Antiguo 10/05/2011, 05:27
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Botón que funciona en todos los ordenadores menos en el mío.

¿Como te va a mostrar eso bien en ningún PC? ¡IMPOSIBLE!
Es imposible salvo que estés ocultando los errores.

Primero, el post ni lo compruebas con un isset, luego nada más cargar la página mostraría un error porque no has enviado el submit.

Segundo, en el post claro que no te entra pues en tu condición especificas:
que el post $_POST['titulo'] no esté vacío, y si lo está, muestras una imagen y uan advertencia.

Y he aquí la pregunta del millón. ¿Donde tienes un input con el name titulo? Curiosamente lo que tienes con ese nombre es el id y el name es titol

Así que no entiendo como no ves los errores que deberían de estar saliéndote en tu script pues tienes varios fallos ni como te cuesta ver tu "postergeit".

Podías haber dicho los errores que te daba de entrada.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #12 (permalink)  
Antiguo 10/05/2011, 12:53
 
Fecha de Ingreso: agosto-2009
Mensajes: 91
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Botón que funciona en todos los ordenadores menos en el mío.

Buenas IEKK!! entierra el hacha de guerra!!

Pido disculpas porque he traducido variables del código (el código estaba en catalan) al castellano para hacerlo mas entendible y me he dejado alguna variable $_POST como "titol" o "descripcio" sin traducir.
Te aseguro que el código funciona y algun compañero mas arriba me dijo también que pusiera el isset y lo probé, obteniendo el mismo resultado.
En cualquier PC que no sea el mío funciona, en el mío no. Simplemente pulso el botón y isset me dice que la condición no se cumple, es decir la variable $_POST esta vacía.

Con el código de Nexus10 me aparece el botón por defecto de input (sin imagen) por lo que imagino que no tome bien las imágenes. Por lo demás el botón sin imágenes sí me funciona (en todos los ordenadores que he probado) y el código hace lo que debe.

Gracias de nuevo y un saludo.
  #13 (permalink)  
Antiguo 10/05/2011, 14:23
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Respuesta: Botón que funciona en todos los ordenadores menos en el mío.

Te saldrá más fácil hacer un print_r de $_POST y depurarlo ahi:

Código PHP:
echo '<pre>';
print_r($_POST);
echo 
'</pre>'
__________________
Blog de Andres Ortiz: http://www.axpuntes.com/

Etiquetas: menos, mío, ordenadores
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 15:47.