Foros del Web » Creando para Internet » HTML »

Enviar datos PHP a través de imagen en botón

Estas en el tema de Enviar datos PHP a través de imagen en botón en el foro de HTML en Foros del Web. Hola, Tengo un problemilla. He leído y leído y requeteleído y probado todos los ejemplos que he visto pero ninguno hace lo que quiero. Tengo ...
  #1 (permalink)  
Antiguo 17/05/2011, 09:55
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Pregunta Enviar datos PHP a través de imagen en botón

Hola,

Tengo un problemilla. He leído y leído y requeteleído y probado todos los ejemplos que he visto pero ninguno hace lo que quiero. Tengo un form para hacer login. Lógicamente, éste accede a una base de datos y verifica y todo el tema. Con un botón normal y corriente funciona perfecto, pero con una imagen como botón no. He probado con la propiedad:

Código PHP:
<input type="image" name="check" src="..." /> 
también con:

Código PHP:
<button type="submit" name="check"><img src=".."/></button
Entre otros, pero nada. No sé cuál puede ser el maldito problema. Se estará escapando algo? A ver si me podéis ayudar, como siempre hacéis, que sois unas máquinas!

Un saludo
  #2 (permalink)  
Antiguo 17/05/2011, 09:58
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Enviar datos PHP a través de imagen en botón

tu tema no tiene nada que ver con PHP
intenta en el foro de HTML o el de CSS

saludos...
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 17/05/2011, 10:04
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Enviar datos PHP a través de imagen en botón

Bueno, lo he interpretado así porque no necesito utilizar CSS si existen métodos sencillos con HTML, pero no lo he posteado en HTML porque leyendo en todos los lados el ejemplo que ponen en el form es action="fichero.html" sin pasar valores y recogerlos con POST, por eso lo posteo aquí, porque recojo valores pasados en PHP. Si está posteado en el sitio incorrecto, por favor, movedlo y así no duplico temas.

Gracias
  #4 (permalink)  
Antiguo 17/05/2011, 10:53
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 9 meses
Puntos: 58
Respuesta: Enviar datos PHP a través de imagen en botón

Hola pep0te.

La primera opción que has puesto ya no funciona con la última versión de los navegadores mozilla y explorer (en google chrome sigue funcionando), así que no te vale.

La segunda opción sí te debería funcionar, pero no te aconsejo usar un elemento button de tipo submit, porque las versiones antiguas del explorer envían una cosa y las nuevas otra al hacer submit y puedes tener problemas.

Lo mejor es que utilices un elemento input de tipo submit y le pongas una imagen con css. Es muy sencillo. Consulta tutoriales en la web, encontrarás muchos.

Un saludo.

EDITO: Perdón, la primera opción sí funciona, pero sólo envía las coordenadas donde se pinchó en la imagen. No envía el name
  #5 (permalink)  
Antiguo 18/05/2011, 02:38
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Enviar datos PHP a través de imagen en botón

Hola Nexus10,

Okey, miraré en cuanto tenga un momento y pruebo a ver. Si tengo algún problema lo posteo.

Un saludo.
  #6 (permalink)  
Antiguo 18/05/2011, 03:28
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Enviar datos PHP a través de imagen en botón

Bueno, la verdad es que es muy fácil (también le he puesto cursor:pointer para que salga la manita de click). Ahora estoy buscando pero no lo consigo, quitar el borde punteado que sale al hacer click en la imagen.
  #7 (permalink)  
Antiguo 18/05/2011, 03:44
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Enviar datos PHP a través de imagen en botón

Ya está más o menos terminado, pero sigo teniendo el problema de que no envío datos al hacer click con este botón, pero sí con el botón sin modificar. Es decir, con el botón normal:

Código PHP:
<input type="submit" name="check" value="Login"
Envía y loguea perfectamente, pero con el botón modificado (con imagen, css, etc):

Código PHP:
<input type="submit" value="" name="check" class="btnlogin" style="background:url(images/login-btn.png) no-repeat 0 0;" />

El css lleva lo siguiente:

.
btnlogin {
    
border:0;
    
outline:none;
    
text-decorationnone;
    
width:103px;
    
padding:13px 0;
    
text-align:center;
    
cursor:pointer;

No funciona. ¡Esto está loco! No le encuentro el fallo por ningún lado...
  #8 (permalink)  
Antiguo 18/05/2011, 03:44
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Enviar datos PHP a través de imagen en botón

Cita:
Iniciado por Nexus10 Ver Mensaje
EDITO: Perdón, la primera opción sí funciona, pero sólo envía las coordenadas donde se pinchó en la imagen. No envía el name
No es así exactamente, si no se especifica un nombre para el control, envía las variables x e y, pero si el control tiene un nombre, al mismo se le añade ".x" (php recoge "_x") y lo mismo con la "y"... o sea que la variable quedaría: $_POST["check_x"] (o get)...

Eso sí, los valores ciertamente son las coordenadas.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 18/05/2011, 03:46
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Enviar datos PHP a través de imagen en botón

Puff, ahora sí que me has vuelto loco. Iba a editar pero con la contestación no he podido jajaja. A ver si sabéis decirme algo con lo de arriba =/

Un saludo
  #10 (permalink)  
Antiguo 18/05/2011, 04:00
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Enviar datos PHP a través de imagen en botón

Hola:

Posiblemente estás esperando que ese nombre tenga un valor concreto (creo que "Login"), pero como los botones y las imágenes no disponen de un campo valúe, nunca va a llegar ese valor.

Piensa en la semántica da cada control: botón no es para enviar datos, simplemente tal como cualquier botón activa algo. si es tipo submit envía porque activa el envío, pero no inserta valores (realmente envía el "innerHTML").
Las imágenes tampoco son entradas, pero las coordenadas sí (se podrían descartar).
Y la palabra input tiene el valor semántico de entrada, así que sí que añade un valor.

Un input tipo submit puede interesar que tenga valores como "insertar", "borrar", "actualizar", y en php valorarías:

if ($_POST["check"] == "insertar") // insertamos...

Seguro que te lié más, pero creo que es importante que entiendas el concepto.

Y sobre el caso, tal vez tengas que modificar algo en la recepción para que funcione, por ejemplo discriminar los nombres de las distintas imágenes según su cometido, y con php condicionar la existencia como puse en el anterior mensaje.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #11 (permalink)  
Antiguo 18/05/2011, 04:17
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Enviar datos PHP a través de imagen en botón

Mmmm, creo que no me has liado, más bien me has explicado exactamente cómo funcionan las etiquetas y cómo "detectar" el envío de un valor con input="submit" xD así que gracias.

La otra parte de código PHP también existe. Tengo lo siguiente (además de otro php con un include de config.php, session_start, todo el tema éste...):

Código PHP:
<?php
    
if (!isset($_SESSION['username']) || !isset($_SESSION['privilegios']) || !isset($_SESSION['id'])) {
       
session_destroy();
    }
/*else{
       echo "<script language=\"javascript\">window.location.href = \"portada.php?modulo=list\";</SCRIPT>";
       return false;
    }*/
    
if(!empty($_POST['check'])) {
       
$busca "SELECT n_socio, password, privilegios FROM usuarios WHERE username = '".$_POST['user']."' AND password = '".$_POST['password']."' AND activo = '0'";
       
$query mysql_query($busca) or die("Error al consultar: ".mysql_error());
       
$numbusca mysql_num_rows($query);
       
$dato mysql_fetch_assoc($query);
       if (
$numbusca != 0) {
            
session_start();
            
$validado 'SI';
            
$_SESSION['id']=$dato['n_socio'];
            
$_SESSION['username']=$_POST['user'];
            
$_SESSION['privilegios']=$dato['privilegios'];
            
$_SESSION["validado"] = $validado;
            echo 
"<script language=\"javascript\">window.location.href = \"portada.php?modulo=list\";</SCRIPT>";
       }else{
            
$error.='Datos incorrectos o usuario sin confirmar.';
       }
    }
?>
Esto con el primer botón, es decir, con:

Código PHP:
<input type="submit" name="check" value="Login"
Funciona a la perfección, pero no con el otro, y creo que está haciendo lo mismo, ¿no?

Utilizo name="check" para llamar después y comprobar con if(!empty($_POST['check']))

Utilizo value="" porque si pongo algún valor, evidentemente sale encima de la imagen. Entonces entiendo que el problema puede estar en "value"? Porque eso sí que no llego a entenderlo... A lo mejor no te he entendido correctamente y me creo yo que sí.

Gracias otra vez,
Saludos.
  #12 (permalink)  
Antiguo 18/05/2011, 04:46
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Enviar datos PHP a través de imagen en botón

Hola:

Lo que usas creo que tendría que funcionar con los tags "button", pero con el tag input (type="image"), sería:

if(empty($_POST['check_x']))

Fíjate que el chequeo lo tenías negado...

Por cierto, podrías en las pruebas revisar todo lo que llega del formulario con print_r/var_dump ($_POST)... aunque ya sería tema php.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #13 (permalink)  
Antiguo 18/05/2011, 04:50
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Enviar datos PHP a través de imagen en botón

Eres un crack. Perfecto ahora, o por lo menos eso parece. Muchas gracias por tu ayuda. Si tengo algún problema, comento.

Gracias de nuevo,
saludos!

Etiquetas: image, php, submit, botones
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:27.