Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - gAb1

#221
Seguridad / Re: Localhost en el navegador
12 Enero 2016, 07:10 AM
Si no tienes ningún servidor instalado debería salirte siempre la página de que no se puede conectar/no encuentra la página (depende del navegador).

Dices que te sale una página en blanco y se auto agrega el puerto 80... eso es que debes tener algo instalado. Comprueba que aplicación está usando ese puerto y darás con la clave (si no sabes hacerlo prueba buscando en google el nombre de tu so y lo que quieres hacer).

Supongo que al decir ip te refieres a la local (127.0.0.1) o a la privada (192.168.x.x) no es asi?

Y comprueba tu antivirus :rolleyes:
#222
Si, por su puesto. Pero antes de nada tienes que arreglar ese agujero de seguridad tan gordo :-\ (Sql injection de 1er y 2do nivel...).

Puedes elegir entre usar los filtros de saneamiento junto a la función filter_input() (creados explicitamente para filtrar/limpiar el input) o usar la función preg_replace() (que es customizable y puedes elegir que carácteres dejar y cuales quitar). Utiliza cualquiera de estas dos opciones siempre que necesites trabajar con user input.

Te recomiendo que empieces a usar mysqli (más facil que pdo) con los prepared statement. Aunque puedes seguir usando query (con mysqli mejor) para consultas normales tipo "SELECT * FROM table" o "INSERT INTO table (col1, col2, col3) VALUES ('noget', 'nopost', 'nouserinput')"  ;)

Ahora sí, necesitas crear otra página con un script php que realice la petición a la base de datos en busca de las surgerencias (no olvides limpiar el GET/POST).

AJAX te permite hacer peticiones al servidor una vez la página se ha cargado y no necesita volver a cargarse. Te permite cargar contenido de manera dinamica, facil y sencilla. La sintaxis es muy sencilla, hechale un vistazo a la documentación (aunque está en ingles). Un ejemplo para lo que necesitas:

Código (javascript) [Seleccionar]
$.ajax({
   method: 'GET',
   url: '/script.php',  // url del script
   data: $( '.input-texto' ).val();  // coger el valor del input
}).done(function (data) {

    var target =  '.la-lista-de-sugerencias';
   // muestra la lista
   $( target ).show();
   // agrega las sugerencias a la lista
   $( target ).replaceWith( data );

});


Tienes dos opciones, aprender y hacerlo por ti mismo o ir a lo facil y buscarlo ya hecho  ;D
#223
Me gustaría hacer funcionar correctamente el buscador y de paso optimizar la tabla, pasar de server side a client side. Como no tengo idea de como funciona el client side de datatables pues active la opción para scriptearlo con php.

"El problema" si es que se le puede llamar así, es que no almaceno strings en la tabla a buscar, en lugar uso enteros para trabajar y luego con php muestro los strings desde otras tablas. Entonces, actualmente estoy usando joins (unos 5) entonces si quiero buscar tiene que ser con enteros (y eso no es profesional, el cliente y los usuarios tienen que poder buscar por el nombre...).

Un simple select a la tabla de la db devolveria enteros, menos un texto largo (descripción). ¿Hay alguna manera, al usar datatables en modo clientside, de acceder a las tablas donde están los nombres asociados a los enteros? O es mejor crear un objeto manualmente con los nombres?

Así es como lo inicializo:

Código (javascript) [Seleccionar]
$('#example').DataTable( {
   processing: true,
   serverSide: true,
   lengthChange: false,
   ajax: '/get?op=2',
   language: {
       "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/Spanish.json"
   },
   columns: [
       { data: 'id' },
       { data: 'test' }
   ],
   select: true
});


¿Sería muy dificil hacer esto?

Gracias!
#224
A mi tambien me gustaría crear extensiones pero mi fuerte no es el javascript, ya voy bastante liado si tengo que scriptear alguna función de las aplicaciones web que hago.

Si, ese es el que estaba probando, justo ayer fue arreglado el problema que comenté antes y ahora ya funciona.
#225
Cita de: Novlucker en 10 Enero 2016, 04:26 AM
Yo lo cambié :P , el desarrollo de sublime no se mueve! versión estable de julio/2013 y beta de marzo/2015, sumado a que en teoría es de pago.

Si las acepta :D

De hecho es genial la extensibilidad de VSC, no es difícil entender la API y desarrollar nuestras propias extensiones, el desarrollo es en javascript, e incluso se pueden utilizar paquetes de node (npm) para armar cosas muy completas en pocas líneas ;) .En mi caso desarrollé un par de extensiones que me facilitan el trabajo en el día a día, y que por otra parte también me ayudaron a convencer a algún compañero que decía que no probaba VSC porque no tenía X cosa.

Saludos

¿Podrías compartir esas extenstiones?  :rolleyes:

Estoy buscando una que permita sincronizar con ftp, la única que he encontrado no funciona bien (tuve que abrir un issue en el repo de github).

El ingles es algo imprescindible y no es nada dificil acostumbrarse a la interfaz y a los comandos en ingles...
#226
Esta pregunta debería ir a desarrollo web. Aunque lleva una pequeña parte de php (la facil), el desarrollo se debe implementar en el lado del cliente.

1º Crea un script php que reciba el input (GET o POST) y busque en la tabla correspondiente, usando "WHERE LIKE" para comparar el input con el valor de la columna.

Código (sql) [Seleccionar]
SELECT `column` FROM `table` WHERE `colum` LIKE \'%' . $string . '%\'

Si usas prepared statements (recomendado) pon "?" en lugar de la variable php.

2º En el formulario, crea una petición AJAX al script php pasandole el input (GET o POST).

3º Por últmo, usa el método AJAX "done()" para mostrar la lista desplegable (esto lo haces con css y display none) con los resultados que devuelve el script php.
#227
Desarrollo Web / Re: Redirección "aleatoria"
8 Enero 2016, 05:29 AM
Ah vale, pero eso eso ya es otra cosa, es cuestión de crear una estructura de base de datos (donde guardar los datos), una interfaz web (donde pongas todas las opciones de busqueda y comparación) y scriptearlo (tanto el cliente como el servidor). Necesitas conocimientos medios para algo asi.

Si quieres te explico como lo haría yo, aunque lo primero es lo primero... a estudiar!!  ;D

Si ya resolviste el problema original de la pregunta, edita el título y ponle [RESUELTO].
#228
Desarrollo Web / Re: Redirección "aleatoria"
6 Enero 2016, 23:53 PM
Si claro, en W3Schools lo explican muy bien (donde dice PHP Comparison Operators) y en ingles para que te vayas acostumbrando ;D
#229
Llevo un buen rato comiendome la cabeza y volviendome loco porque estoy intentando coger un valor del objeto para usarlo en un boton de la tabla. Necesito coger el id de la fila seleccionada (la primera columna y posición en el objeto).

Así inicializo datatables:

Código (javascript) [Seleccionar]
var table = $('#example').DataTable( {
   serverSide: true,
   dom: 'Bfrtip',
   ajax: '/get?op=2',
   columns: [
       { data: 'id' },
       // more columns
   ],
   buttons: [
       {
           text: 'New',
           action: function ( e, dt, node, config ) {
               window.location.href = '/url?op=new'
           }
       },
       {
           text: 'Modify',
           action: function ( e, dt, node, config ) {
               window.location.href = '/url?op=modify&id=' + dt.row( { selected: true } ).id() )
           },
           enabled: false
       },
       {
           text: 'Delete',
           action: function ( e, dt, node, config ) {
           },
           enabled: false
       }
   ],
   select: true
} );


Según la documentación asi es como se cogen los datos... He probado de varias maneras, usando un alert():

Código (javascript) [Seleccionar]
alert( dt.row( { selected: true } ).id() );  // undefined
alert( JSON.stringify(dt.row( { selected: true } ).id()) );  // "undefined"
alert( JSON.stringify(dt.row( { selected: true } ).data()[0]) );  // undefined


Lo raro es que si que puedo acceder al objeto y ver todo lo que tiene...

Código (javascript) [Seleccionar]
alert( JSON.stringify(dt.row( { selected: true } ).data()) );
// {"id":1,"key":"value","etc":"etc"}


¿Alguna idea?  :huh:

Edito: Solucionado:


Código (javascript) [Seleccionar]
var rw = dt.rows({ selected: true }).data()[0];
alert(rw.id);  // 1
#230
Desarrollo Web / Re: Redirección "aleatoria"
6 Enero 2016, 02:11 AM
Lo desconozco, de todas maneras no tienes conocimientos básicos, no quieras empezar la casa por el tejado ;D

Pero si la comparación es de lo más facil, ¿que dudas tienes? ¿Has leido la documentación?