elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Boton solo me funciona con click
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Boton solo me funciona con click  (Leído 3,768 veces)
teudiss

Desconectado Desconectado

Mensajes: 197



Ver Perfil
Boton solo me funciona con click
« en: 19 Marzo 2010, 12:07 pm »

Hola, cuando hago click en el boton si funciona pero cuando pulso enter no funciona, he visto que hay un script en javascript para solucionarlo, pero se puede solucionar con codigo php ?

Os muestro el codigo, es para buscar una cadena de texto en una tabla.

buscar.php
Citar
<form id="form1" method="post" action="busqueda.php">
<input name="palabra" type="text" id="palabra" />
<input name="buscador" type="submit" id="buscador" value="Buscar" />
 
</form>

busqueda.php

Citar
if ($_POST['buscador'])
{  

$buscar = $_POST['palabra'];


if(empty($buscar))
{
echo "No se ha ingresado una cadena a buscar";
}else{
// Conexión a la base de datos y seleccion de registros
$con=mysql_connect("localhost", "root", "torero");
$sql = "SELECT * FROM alumnos WHERE chicos like '%$buscar%' ORDER BY id DESC";
mysql_select_db("colegio", $con);  

$result = mysql_query($sql, $con);  


$total = mysql_num_rows($result);

// Imprimimos los resultados
if ($row = mysql_fetch_array($result)){  
echo "Resultados para: <b>$buscar</b>";
do {  




} while ($row = mysql_fetch_array($result));  
echo "<p>Resultados: $total</p>";
} else {  
// En caso de no encontrar resultados
echo "No se encontraron resultados para: <b>$buscar</b>";  
}
}
}
?>


En línea

Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Boton solo me funciona con click
« Respuesta #1 en: 19 Marzo 2010, 13:58 pm »

Código
  1. <script type="text/javascript">
  2. function submit(flota) {
  3.   evento = window.event;
  4.   if(evento.keycode==13) {
  5.      flota.submit();
  6.   }
  7. }
  8. <form id="form1" method="post" action="busqueda.php" onkeypress="submit(this.form);">
  9. <input name="palabra" type="text" id="palabra" />
  10. <input name="buscador" type="submit" id="buscador" value="Buscar" />
  11. </form>

eso te sirve4??


En línea

teudiss

Desconectado Desconectado

Mensajes: 197



Ver Perfil
Re: Boton solo me funciona con click
« Respuesta #2 en: 19 Marzo 2010, 14:04 pm »

Código
  1. <script type="text/javascript">
  2. function submit(flota) {
  3.   evento = window.event;
  4.   if(evento.keycode==13) {
  5.      flota.submit();
  6.   }
  7. }
  8. <form id="form1" method="post" action="busqueda.php" onkeypress="submit(this.form);">
  9. <input name="palabra" type="text" id="palabra" />
  10. <input name="buscador" type="submit" id="buscador" value="Buscar" />
  11. </form>

eso te sirve4??
Pues no lo se, por que cuando ejecuta un script de este tipo el navegador muestra un mensaje para que acepte o algo asi, por eso preguntaba si es posible en php.
En línea

Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Boton solo me funciona con click
« Respuesta #3 en: 20 Marzo 2010, 00:07 am »

no:S en php va a ser imposbile ya que eso se ejecuta en el servidor y no en el cliente, ademas, el php se ejecuta y devuelve, una vez que devuelve (se muestra la pagina en el cliente) el servidor deja de interactuar. igualmente el codigo que yo te di no es generalizado para todos los navegadores.
En línea

teudiss

Desconectado Desconectado

Mensajes: 197



Ver Perfil
Re: Boton solo me funciona con click
« Respuesta #4 en: 20 Marzo 2010, 10:43 am »

Hola, ya me funciona es omitiendo esta linea:
Citar
if ($_POST['buscador'])


$buscar = $_POST['palabra'];


if(empty($buscar))
{


Por esta otra, es decir quitarle el valor al boton

 
Citar
if  isset($_POST['palabra']) && !empty($_POST['palabra']))


Gracias por todo.
En línea

Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Boton solo me funciona con click
« Respuesta #5 en: 20 Marzo 2010, 13:46 pm »

solo por eso? :o
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Boton solo me funciona con click
« Respuesta #6 en: 20 Marzo 2010, 19:51 pm »

Código
  1. if  isset($_POST['palabra']) && !empty($_POST['palabra']))

Que haces man jajaja, con esto basta:
Código
  1. if(!empty($_POST['palabra']))
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
teudiss

Desconectado Desconectado

Mensajes: 197



Ver Perfil
Re: Boton solo me funciona con click
« Respuesta #7 en: 22 Marzo 2010, 11:42 am »

solo por eso? :o

Si, el boton no tiene que tener valor alguno.

Citar
if  isset($_POST['palabra']) && !empty($_POST['palabra']))

Que haces man jajaja, con esto basta:
Código
if(!empty($_POST['palabra']))

Si, cierto, no se por que lo puse asi.
En línea

haxple

Desconectado Desconectado

Mensajes: 45


BlackApple


Ver Perfil WWW
Re: Boton solo me funciona con click
« Respuesta #8 en: 22 Marzo 2010, 12:04 pm »



busqueda.php

Citar

$buscar = $_POST['palabra'];


$sql = "SELECT * FROM alumnos WHERE chicos like '%$buscar%' ORDER BY id DESC";

SQL Injection my friend.. Mas cuidadoso :)

Saludos
En línea

What does your conscience say? — "You shall become the person you are."
WHK
CoAdmin
***
Conectado Conectado

Mensajes: 6.488


The Hacktivism is not a crime


Ver Perfil WWW
Re: Boton solo me funciona con click
« Respuesta #9 en: 22 Marzo 2010, 19:58 pm »

Código
  1. $sql = "
  2. SELECT * FROM alumnos
  3. WHERE chicos like '%".
  4. str_replace('%', '\\%', mysql_real_escape_string($buscar)).
  5. "%' ORDER BY id DESC
  6. ";

Recuerda que alguien puede insertar un carácter % y causar una denegación de servicio por agotamiento de recursos al intentar volcar toda la tabla de contenido de alumnos si esta es demasiada extensa.

Te recomiendo también hacer un paginador para que le pongas un ímite a la busqueda porque igual alguien puede insertar una letra común como una "a" y volcar tantos resultados que tu servidor quedará a merced de cualquier atacante.
En línea

Telegram: @WHK102 - Semáforo Epidemiologico Chile
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines