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


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 ... 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 [565] 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 ... 769
5641  Programación / Desarrollo Web / Re: Problema con javascript: Document.write me tiene mania!!!!! en: 5 Abril 2013, 19:26 pm
Para empezar, el formulario lo podrias tener asi:
Código
  1. <script type="text/javascript">
  2. var add_tecla = function(){
  3.   /* Obtener DIV de teclas */
  4.   var div = document.getElementById("teclas");
  5.   /* Agregar otra columna */
  6.   div.innerHTML += '<i>Tecla: </i><input type="text" name="tecla[]" /> - <i>Acci&oacute;n:</i><input type="text" name="accion[]" /><br>';
  7.   /* Finalizar */
  8.   return true;
  9. }
  10. <form action="envio.php" method="POST">
  11.   <input type="button" value="A&ntilde;adir tecla" onclick="add_tecla();" />
  12.   <input type="submit" value="enviar" /><br />
  13.   <b>Controles:</b><br>
  14.   <div id="teclas">
  15.      <i>Tecla: </i><input type="text" name="tecla[]" /> - <i>Acci&oacute;n:</i><input type="text" name="accion[]" /><br>
  16.   </div>
  17. </form>

Ahora bien 2 cosas:
   1. Si tienes muchos campos con el mismo nombre, puedes usar [] (tecla[]) para que HTML les asigne automáticamente el numero. Asi no tienes que escribir tecla1, tecla2 etc.. PHP lo reconocerá como un array.
   2. Solo puede haber UN elemento con EL MISMO ID. No puedes tener 2 elementos con el mismo ID.

Bien, pasamos a PHP.

La función tecla2() se podría optimizar pero debes cambiar los nombres de las imágenes... si no jodido. Ejemplo:
Código
  1. function tecla2($cadena) {
  2.   // Si es una letra o numero de 1 caracter de logitud, se le añadira <div class="tecla">
  3.   // Pero si coincide con las palabras flechas,enter etc... se le añadira <img src="" />
  4.   $buscarRegex = array('/^([A-ZñÑ0-9]{1})$/i','/^(flechas|enter|control|alt|espacio|der|izq|mover|shift)$/i');
  5.   $reemplazo = array('<div class="tecla">$1</div>','<img src="ico/$1.png" alt="tecla-$1" />');
  6.   $mag = preg_replace($buscarRegex, $reemplazo, $cadena,-1,$contador);
  7.   // Si las sustituciones son menores a 1, significa que no se ha encontrado el patrón.
  8.   if($contador >= 1){return $mag;}else{return 'desconocida';}
  9. }

El poder de regex es total :P. El caso es que las imágenes se deberán llamar flechas.png, enter.png, der.png, izq.png etc..etc..

Bien, en vez de hacer:
Código
  1. $tecla0 = tecla2($_POST['tecla0']);
  2. $accion0 = reem($_POST['accion0]);
  3. /* bla bla bla */

Haremos esto:
Código
  1. /* Por cada campo de tecla ... */
  2. foreach($_POST['tecla'] as $tecla){
  3.   /* Le pasamos tecla2 y le agregamos a un array. */
  4.   $teclas[] = tecla2($tecla);
  5. }
  6.  
  7. /* Lo mismo con las acciones.. */
  8. foreach($_POST['accion'] as $accion){
  9.   $acciones = reem($accion);
  10. }

Y ahora llega la magia. ¿ Como hacer que un array entero de teclas y acciones se guarde en la base de datos en una sola columna ? La magia esta en serialize() http://php.net/manual/es/function.serialize.php .. básicamente te permite guardar arrays y objetos y luego recuperarlos como si nada.

Código
  1. $teclas = serialize($teclas);
  2. $acciones = serialize($acciones);
  3.  
  4. $query = "INSERT INTO juegos (teclas,acciones) VALUES ('".$teclas."','".$acciones."')";

CONSEJO: Asegúrate de que los campos teclas y acciones de la tabla juegos sean de tipo TEXT, MEDIUMTEXT o LONGTEXT. La razon es que la cadena del serialize es mas larga cuantos mas campos añades.

Bien, ahora que ya lo tienes todo bien guardadito en la base de datos, te toca sacarlo de ahí y mostrarlo como los monos de la jungla mandan.

Código
  1. /* Conexion a base de datos
  2.    bla bla bla blab  */
  3. $query = "SELECT * FROM juegos";
  4. ....
  5.  
  6. /* Supongamos que la variable que tiene el resultado de la query se llama $row */
  7. // Primero toca quitar el serialize a lo que hemos sacado. Para ello unserialize().
  8. $teclas = unserialize($row['teclas']);
  9. $acciones = unserialize($row['acciones']);
  10. // Ahora ya tenemos metidos en un array las teclas y las acciones. Toca mostrarlos en una tabla
  11. echo '<table><tr><th>Tecla</th><th>Accion</th></tr>';
  12. // Queremos tener el index, para obtener la accion que corresponde a la tecla.
  13. foreach($teclas as $index=>$tecla){
  14.   echo '<tr><td>'.$tecla.'</td><td>'.$acciones[$index].'</td></tr>';
  15. }
  16. // cerramos tabla y nos vamos :P
  17. echo '</table>';


Consejos:
   1. Busca tutoriales sobre REGEX, te va a ayudar mucho.
   2. Utiliza MYSQLI en vez e MYSQL. Esta ultima esta marcada como obsoleta y sera eliminada.
   3. Este codigo NO ES SEGURO. Te lo he dejado como muestra.. deberas aplicar los correspondientes filtros antes de guardarlo en la bd.
   4. Si Chuck Norris existe que me de una hostia contra el tecla sdosaifjdioas fjsaofpjsaiofhsadfpsfj


Saludos espero que te sirva.
5642  Foros Generales / Foro Libre / Re: El Gobierno elevará la edad mínima para casarse de 14 a 16 años en: 5 Abril 2013, 17:55 pm
Citar
la edad mínima para el consentimiento sexual, que está en 13 años.

Ja... luego la gente se pregunta porque hay tantas/os p*t*s...

Citar
—junto al Vaticano, donde esa minoría de edad sexual está en 12 años—


Saludos
5643  Programación / Desarrollo Web / Re: Problema con javascript: Document.write me tiene mania!!!!! en: 5 Abril 2013, 17:44 pm
A ver.. esto es complicado de explicar xD Te voy a mostrar un ejemplo que creo que te servirá mejor.

A ver, te lo planteo asi. Porque necesitas escribir guardar 3 veces el link del juego (en el input, en el select y en el textarea) cuando con 1 sola ya te vale ?. Miralo asi, tu haces que el select solo tenga el tipo de juego y luego en con PHP te encargas del resto. Te explico.

Imaginate que tienes este SIMPLE formulario:
Código
  1. <form action="envio.php" method="POST">
  2.   <input type="text" value="" name="link_juego" />
  3.   <select name="tipo_de_juego">
  4.      <!-- disabled="disabled" no permite seleccionar ese elemento -->
  5.      <option value="" selected="selected" disabled="disabled">Selecciona el lenguaje</option>
  6.      <option value="" disabled="disabled">---</option>
  7.      <!-- Agregamos el tipo de juego -->
  8.      <option value="flash">Flash</option>
  9.      <option value="java">Java</option>
  10.      <option value="unity">Unity</option>
  11.      <option value="iframe">iFrame</option>
  12.   </select>
  13.   <!-- Enviamos formulario -->
  14.   <input type="submit" value="enviar" />
  15. </form>

Bien, cuando el usuario lo rellene y lo envía, tu guardas los valores en la BD y luego cuando te toque comprobarlos, con PHP, puedes comprobar cual es el valor que ha guardado el select y a partir de ahí sacar el resto del código. Por ejemplo:

Código
  1. <?php
  2. /* Conexion a bd blablablabla */
  3. /* En la consulta coges el link del juego y el tipo de juego.. */
  4. $query = "SELECT link_juego,tipo_juego FROM juegos WHERE blablablabla";
  5. /* while($row=$result->fech_assoc())
  6.    blalbalbla
  7. */
  8.  
  9. // Comprobamos que tipo de juego es:
  10. if($tipo_juego==='unity'){
  11.   echo '<object blablalbalbalblalba src="'.$row['link_juego'].'" blablabla></object>';
  12. } elseif($tipo_juego==='flash'){
  13.   echo '<object flash blablalbalbalblalba src="'.$row['link_juego'].'" blablabla></object>';
  14. } elseif($tipo_juego==='iframe'){
  15.   echo '<iframe src="'.$row['link_juego'].'" bla blablab lba></iframe>';
  16. } else {
  17.   echo 'Tipo de juego desconocido. Link:'.$row['link_juego'];
  18. }
  19. ?>

De esta forma no te hace falta ningun javascript y yo creo que esta mucho mejor optimizado y mas seguro...

Saludos
5644  Programación / Desarrollo Web / Re: Problema con javascript: Document.write me tiene mania!!!!! en: 5 Abril 2013, 16:44 pm
Supongo que todo eso lo vas a guardar en una base de datos verdad ? Puesto que lo único que necesitas de ahí, es el value, ¿ no seria mas logico que guardaras solo el value y luego ya añadir el applet ?

Osease, guardas solo el value, y luego cuando lo vayas a imprimir, imprimes todo eso y le agregas value. Créeme, te va a hacer la vida mas fácil y te vas a evitar muchos problemas de seguridad.

Saludos
5645  Programación / Desarrollo Web / Re: Problema con javascript: Document.write me tiene mania!!!!! en: 5 Abril 2013, 15:39 pm
Jajjaa na a mi me pasa constantemente... sobre todo cuando tengo que recoger información de quinientosmiltrescientoscincuenta inputs xD

Saludos
5646  Programación / Desarrollo Web / Re: Problema con javascript: Document.write me tiene mania!!!!! en: 5 Abril 2013, 15:14 pm
A ver, has probado poniendo TODO tal y como te lo he puesto en el otro post ? Porque yo si.. y funciona perfectamente...

Saludos
5647  Programación / Desarrollo Web / Re: Lista desplegable de Mysql en: 5 Abril 2013, 12:39 pm
Te toca usar AJAX. Te recomiendo la librería de javascript jQuery, te va a simplificar un poco la tarea.  Te dejo un ejemplo
http://www.desarrolloweb.com/articulos/select-dinamico-javascript.html

Saludos
5648  Foros Generales / Noticias / Re: Opera también adoptará Blink como motor de renderizado siguiendo la estela de... en: 5 Abril 2013, 12:15 pm
Webkit es el motor de renderizado (entre otras) que usan/usaran los navegadores que he mencionado. IE usa Trident y Firefox usa Gecko.  No me estoy contradiciendo. Si la mayoría de los navegadores se ponen a usar webkit, habrá paginas mejor hechas para webkit que para el resto de los motores. Y es que lo usan muchos: Konqueror, Chrominium, Chrome, Safari, Arora.. el navegador de la PS3.. prácticamente todos los navegadores para los smartphones están basados en webkit..

Los desarrolladores ya ni se molestan en añadir los prefix -moz- o -ms...  Usan -webkit- y si la pagina se mal en Firefox te dicen que te pases a Chrome... ¿ WTF ?

http://www.webmonkey.com/2012/02/webkit-isnt-breaking-the-web-you-are/
http://www.glazman.org/weblog/dotclear/index.php?post/2012/02/09/CALL-FOR-ACTION%3A-THE-OPEN-WEB-NEEDS-YOU-NOW

Es lo mismo solo que ahora la culpa no la tienen los desarrolladores del motor... la tienen los desarrolladores de las paginas web.

Saludos
5649  Foros Generales / Noticias / Re: Los spammers utilizan Google Translate para eludir los filtros de spam en: 5 Abril 2013, 03:55 am
Citar
El texto traducido se muestra en un iframe, pero el código ejecutado desde el sitio comprometido logra salir del iframe y redirige a la víctima al sitio web de farmacias.

Bue ya lo que faltaba.. poco mas sale de tu pantalla, te da una paliza, te roba y se va...

Saludos
5650  Programación / Desarrollo Web / Re: cambiar url con mod rewrite a una regla establecida en: 5 Abril 2013, 00:38 am
Código
  1. RewriteEngine on
  2.  
  3. # Redireccionar barra baja (_) a guion - mediante 301
  4. RewriteRule ^prueba_(.+)\.html$ http://tudominio.com/prueba-$1.html [L,R=301,QSA]
  5.  
  6. # No hace falta explicacion.
  7. RewriteRule prueba\-(.+)\.html$ index.php?m=$1 [L,QSA]

Saludos
Páginas: 1 ... 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 [565] 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 ... 769
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines