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ú

Temas - gAb1

#46
Tengo un formulario que sube imagenes y muestra un preview de estas y me gustaría hacer un botón para limpiar el input.

He estado buscando varias soluciones pero de momento ninguna me ha servido. Ahora mismo estoy probando lo siguiente:

Código (javascript) [Seleccionar]
   window.resetMethod =
   function (e) {
       var input = $(this).parent('div').find('input[type=file]');
       input.val('');
       input.html($('input[type=file]').clone(true));
       return false;
   }


No funciona ninguno de los dos, ni el val() ni el clone().

Código (html5) [Seleccionar]
<div class="first">
   <!-- este div es creado por el plugin ezdz y es donde aparece el preview -->
   <div>Drop a file</div>
   <input type="file" name="file[]" accept="image/jpeg" />
   <div class="arrow_box hide"><a href="#" onClick="return resetMethod($(this));">Quitar imagen</a></div>
</div>


Pero no está funcionando. ¿Hay algún problema con el código? Alomejor se puede hacer de otra manera, incluso más sencillo.

Gracias!
#47
GNU/Linux / limpiar el cache de dns
4 Diciembre 2015, 22:30 PM
Tuve que cambiar de hosting para una web y ahora no puedo cargarla bien en mi ordenador donde trabajo.

Al parecer sigue apuntando al hosting antiguo, aunque cuando recargo con control+f5 si que carga del hosting nuevo. El problema es que cuando le doy a cualquier link o simplemente recargo normal vuelve a cargar el antiguo... Es como que no termina de actualizarse el cache, o puede ser el cache del router ni idea. Sin embargo con un subdominio no tengo este problema.

Con el movil (internet de datos) puedo cargar la página y navegar por ella sin ningún problema.

Utilizo Manjaro Linux (Arch) y firefox, he intentado reiniciar el paquete nscd pero nada. La verdad es que no tengo mucha idea (en windows limpiaba con ipconfig -flushdns pero en linux parece ser totalmente distinto) he estado buscando y solo he encontré el paquete nscd. Nunca he instalado nada para cachear el dns, lo que hay es lo que venía preinstalado, aunque leí que en linux lo normal es que no haya ningún cache de dns.

¿Conoceis alguna manera de solucionar esto?

Gracias!
#48
Estoy tratando de filtrar resultados usando 3 columnas como filtros pero no funciona como me esperaba...

Por ejemplo, en la tabla tengo un solo ejemplo: col1 es 2, col2 es 0 y col3 es 3.

Si hago:

Código (sql) [Seleccionar]
AND col1 = 1 OR col1 = 3
AND col3 = 3


No se muestra el ejemplo. Pero si hago:

Código (sql) [Seleccionar]
AND col1 = 1 OR col1 = 3
AND col3 = 1 OR col3 = 3


Si que se muestra... ¿por qué ahora si pero antes no? No le veo ningún sentido... No hay ninguna col3 con valor 1 pero si con 3, ¿por qué no se muestra cuando solo busco el valor 3? Pero si busco el valor 1 y 3 ¿si que se muestra? Por favor explicarmelo o me volveré más loco aun  :-\

Si cualquiera de los AND no se cumple (no se muestra nada) o como funciona exactamente?

¿Funcionará igual si uso IN() en lugar de OR? Mejor cuando lo entienda uso el IN().

Gracias!
#49
En el ultimo ordenador que monté, puedo oir dos beeps (no seguidos) cuando enciendo la psu y luego el ordenador. Le flasheé la ultima versión para mejorar el soporte con el procesador y el proceso fue bien, todo correcto pero sigue haciendo lo mismo, lo explico mejor:

Cuando el ordenador esta apagado, inluida la psu y lo enciendo puedo oir como si comprobara dos veces el post: le doy al boton, se enciende y oigo un beep (la pantalla sigue en negro) y al cabo de uno o dos segundos puedo oir otro beep, es como si se apagara despues del primer checkeo (que es correcto) y vuelviera a a encender y comprobar. Pero esto es una suposición mia, no estoy seguro si realmente apaga o se debe al "Dual BIOS" que no tengo ni idea de como funciona (puede ser que los post de ambas BIOS comprueben?).

La placa es Gigabyte GA-F2A88X-D3H (rev. 3.0) y el procesador AMD (APU) A10-7870k (Godavari) con 8gb de ram 2133 (2x4), la fuente Seasonic eco 430w.

¿Alguien sabe a que se puede deber esto? Alomejor es normal, pero no tengo ni idea.

P.D.: Voy a probarle una distribución linux, ya que windows esta raro ultimamente. Luego comento si  funciona bien (uso del disco normal, buen rendimiento, etc).
#50
He instalado la ultima versión de Windows 10 ( la 1511, creando un usb con la herramienta oficial, justo antes de que quitaran esta versión)...

El problema es que recien instalado, va muy lento: Nada más encenderse abro el monitor y el uso del disco aparece en rojo (95-99%) pero sin embargo las velocidades no son superiores a los 5-10 MB/s...

Las aplicaciones instaladas tardan bastante en abrirse (que curioso, el navegador edge se abre instantaneamente, aunque tarde menos de 1 segundo en cargar la ventana), por ejemplo los navegadores que le he instalado (firefox, chrome y opera) todos tardan lo mismo, unos 5 segundos en abrirse y luego en cargar no se si 2... Eso la primera vez, luego tarda bastante menos pero me parece una vergüenza... vaya con microsoft... El monitor no tarda mucho en abrirse pero se tira un buen rato en blanco (como 4 o 5 segundos, mas o menos como los navegadores). El explorador también tarda lo suyo.

El equipo es lo suficiente potente como para no que pase esto: tiene 8 GB de RAM (a 2133mhz pero por alguna razón estaba en auto a 1600, sin problema active los perfiles xmp y amd y se puso a 2133), el ultimo APU de AMD: A10 7870K (Godavari).

Lo primero antes de instalar windows fue actualizar la BIOS, despues de instalarlo me puse a instalar aplicaciones (pensé que los drivers de windows serían suficientes, un rendimiento decente y aceptable). Al ver que el rendimiento no era aceptable instalé los drivers de amd (los del chipset vienen incluidos en el instalador de los driver del gpu, no lo sabía y los instale por separado). Nada de nada...

Ya he probado varias cosas, nada más instalar windows le quité el indexado al disco duro y desactive el servicio. Más tarde desactivé otros servicios como superfetch y el de windows media player (el de libreria en red) y desactivé la hibernación (aunque no tenga un ssd no es necesaria...). Y sigue igual, nada más encender el uso del disco está disparado aunque las velocidades sean ridiculas, aunque espere un rato a que baje el uso: voy a abrir algo y tarda... vuelvo a mirar el monitor y otra vez esta el uso del disco al 95-99% en rojo...

El hecho es que no va lagado ni se bloquea ni nada de eso, es simplemente que tarda bastante en cargar las cosas... No creo que sea del hardware, los drivers de amd es raro. Debe ser super windows...

Menos mal que me pasé a linux en mi ordenador principal...

¿Hay alguna manera de saber por qué esta ocurriendo esto?

Gracias!
#51
Desarrollo Web / filtrar contenido con jquery
16 Noviembre 2015, 06:11 AM
Tengo una función con JQuery Ajax que recibe contenido de PHP enviado variables, depende de las variables y el contenido de estas se recibiran unas cosas u otras.

Con la misma función (un on('click')) tengo que declarar y asignar valores a las variables que se envian, dandoles el valor del elemento que hizo click, mayormente checkboxes.

Lo único que se me ocurre es hacer un if para cada checkbox:

Código (javascript) [Seleccionar]
if ($(this).is(':checkbox') {
   //comprobar la clase del checkbox para saber que datos enviar
   if ($(this).attr('class') == 'filter1') {
       var filtro1 = $(this).val();
   }
   if ($(this).attr('class') == 'filter2') {
       var filtro2 = $(this).val();
   }
   if ($(this).attr('class') == 'filter3') {
       var filtro3 = $(this).val();
   }
}

Y asi sucesivamente... ¿Hay alguna manera más eficiente de hacer esto? Tambien tengo que comprobar que si se han checkeado dos checkboxes o mas de la misma clase se envien los valores como array o algo. Agradeceria cualquier ejemplo.

PHP se encarga del resto, de crear los condicionales "AND" y agregarlos al "SELECT" de la consulta mysqli.

Gracias!
#52
Hola buenas, acaba de encontrarme con una configuración para el vlc que mejora bastante el sonido.

Me gustaría que me dieseis vuestra opinion o si teneis vuestras propias configuraciones o algunas distintas para probarlas.

// bands gain
12.6 8.1 10.7 -3.8 7.1 10.2 -1.2 3.1 7.9 16
//global gain
3.2
// otras opciones que tengo activadas
Two pass
Use VLC frequency bands


Se puede copiar y pegar en preferencias -> Todo -> Audio -> Filtros -> Equalizador (No sé si será exacto ya que lo uso en ingles).

Creo que también sirve para otros reproductores (a menos que solo se pueda configurar desde la interfaz gráfica).
#53
Hola, no sé si seré el único al que le pasa, pero ya me ha pasado dos veces. Los botones de aquí arriba (lista de códigos BB) no funcionan y como tengo la consola abierta, para las webs que hago, pues me di cuenta de que salian varios errores:

Cuando hago focus al textarea me sale esto:

CitarReferenceError: storeCaret is not defined post2.html;start=0;board=10:1:1

Nada más de poner el raton encima (hover) me sale esto (para cada icono):
CitarReferenceError: bbc_highlight is not defined post.html;board=10.0:1:1

Al darle click esto (lo único que no funciona, por suerte me conozco algunos códigos):

CitarReferenceError: surroundText is not defined post2.html;start=0;board=10:1:1
ReferenceError: replaceText is not defined post2.html;start=0;board=10:1:1

De darle a previsualizar esto (aunque funciona):

CitarReferenceError: previewPost is not defined post2.html;start=0;board=10:1:1
ReferenceError: submitonce is not defined post2.html;start=0;board=10:1:1
A form was submitted in the windows-1252 encoding which cannot encode all Unicode characters, so user input may get corrupted. To avoid this problem, the page should be changed so that the form is submitted in the UTF-8 encoding either by changing the encoding of the page itself to UTF-8 or by specifying accept-charset=utf-8 on the form element. post2.html;start=0;board=10
:  cloudflare.min.js:4:0

Debe ser algo de los archivos internos de firefox (que se corrompen), porque ya borre la cache y nada, sin embargo si lo reinicio (creandose un nuevo perfil) ya vuelve a funcionar normal, pero al cabo del tiempo lo mismo. Cosas raras como estas ya me pasaban y creo que es por usar el navegador (recargarlo tanto, incluido control+f5) para desarrollar las paginas webs, aunque sea una suposicion, es casualidad que siempre se ha puesto raro al llevar unos dias desarrollando webs.

¿A alguien más le ha pasado?
#54
Hardware / [Resuelto] Pines del zocalo amd rotos
12 Noviembre 2015, 21:42 PM
EDITO: Ir a segunda respuesta.


Acaba de montar un equipo nuevo pero al parecer hay algún problema en alguna parte.

Yo diria que los pitidos son cortos y continuos (creo tener un buen oido), pasados unos segundos se reinicia y vuelve a pitar de nuevo. Aquí dejo un video que acaba de grabar: https://www.youtube.com/watch?v=6VLfausGk20

Llevo un lio con los códigos de errores, en un sitio dicen que es un error de alimentación y en otros que la ram no está bien instalada...

Dejo las especificaciones:

Fuente de alimentación: Seasonic Eco Series 430W 80 Plus Bronce
Placa base: Gigabyte GA-F2A88X-D3H
Procesador/Gráfica APU: AMD A10-7870k 4.1GHz Black Edition
RAM: G.Skill Ripjaws X DDR3 2133 PC3-17000 8GB 2x4GB (F3-2133C9D-8GBXL

Si por cualquier caso fuera un problema del procesador o del zocalo (un pin del apu roto o algo del zocalo) ni siquiera llegaría a arrancar, cierto? Es la primera vez que monto un procesador amd pero no tenia ningún misterio: llevar cuidado al ponerlo y ponerlo como indica la flecha...

La caja de la placa base venia abierta, normalmente viene un adhesivo o un sello de garantía. Puede que no sea nada, pero alomejor me han querido colar una de segunda mano de las devoluciones...

EDITO:

Los codigos POST de mi placa según la página oficial:
Citar2.AMI BIOS
1 short beep :Memory Error
2 short beep:Memory parity check error.
3 short beep :basic memory 64K address check error
4 short beep :Real Time Clock malfunction .
5 short beep :CPU error
6 short beep:Keyboard error
7 short beep :CPU interruption error
8 short beep:Graphic card error
9 short beep :Memory error
10 short beep :CMOS error
11 short beep :CPU cache memory malfunction

No veo por ninguna parte el pitido que está haciendo mi placa.... Sin embargo para la "AWARD BIOS" si que hay "Continuous short beep :Power supply unit failed". Voy a probar otra fuente a ver si fuera eso...

EDITO 2: Acaba de probar otra fuente y hace lo mismo. Al volver a conectar la fuente de prueba a su ordenador no arrancaba (los ventiladores intentan arrancar pero nada)... Vaya, ya no vuelvo a usar las piezas de otro otrdenador para comprobar otro...
#55
Estoy tratando de automatizar el proceso usando un foreach y pasandole una lista de todos los elementos del formulario, pero algunos son array y no estoy seguro si lo estoy haciendo bien. mysqli prepare me esta dando un error ("near col1, col2, etc").

Así es como lo estoy haciendo:

Código (php) [Seleccionar]
$list = array('use', 'type', 'status', 'bhk', 'baths', 'size', 'location', 'price', 'description');
foreach($list as $name) {
   if ($name != 'description')
       $var = "\$" . $name . "=filter_input(INPUT_POST, '" . $name . "', FILTER_SANITIZE_NUMBER_INT);";
   else if ($name == 'description')
       $var = "\$" . $name . "=filter_input(INPUT_POST, '" . $name . "', FILTER_SANITIZE_STRING);";
   eval($var);  // que nadie use esto lol
}

$area_1 = $size['area1'] != '' ? $size['area1'] : 0;
$area_2 = $size['area2'] != '' ? $size['area2'] : 0;
$city   = $location['city'];
$zone   = $location['zone'];
$sale   = $price['sale'] != '' ? $price['sale'] : 0;
$rent   = $price['rent'] != '' ? $price['rent'] : 0;


El problema viene cuando le hago un echo a los array, imprime 0 o nada. Y me he asegurado varias veces de rellenar el input...

Creo que el problema está en que no se puede usar filter_input() con arrays, pero no estoy seguro.

Este es el codigo con el que se guardan los datos en la db:

Código (php) [Seleccionar]
if ($stmt = $mysqli->prepare('INSERT INTO property (use, type, status, bhk, baths, area_1, area_2, city, zone, sale_price, monthly_price, description) VALUES ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?')) {
   $stmt->bind_param('iiiiiiiiiiis', $use, $type, $status, $bhk, $baths, $area1, $area2, $city, $zone, $sale, $rent, $description);
   $stmt->execute();

   $id = $mysqli->insert_id;

   if ($sale != 0) {
       if ($stmt = $mysqli->prepare('INSERT INTO for_sale VALUES ?')) {
           $stmt->bind_param('i', $id);
           $stmt->execute();
       }
   }

   if ($rent != 0) {
       if ($stmt = $mysqli->prepare('INSERT INTO for_rent VALUES ?')) {
           $stmt->bind_param('i', $id);
           $stmt->execute();
       }
   }
} else echo "Statement failed: " . $mysqli->error . "<br>";


Y el error:

CitarStatement failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'use, type, status, bhk, baths, area_1, area_2, city, zone, sale_price, monthly_p' at line 1

Por ultimo estoy buscando una manera de introducir la id del anuncio en las tablas "for_sale" y "for_rent" dependiendo si se ha introducido un precio en $price['sale'] y $price['rent']. ¿Sabeis alguna manera limpia de hacerlo? ¿O creeis que es mejor crear dos columnas más en la tabla property para indicar si se vende o alquila?

Gracias!
#56
Hola buenas, estoy teniendo problemas con el estilo css para mostrar y ocultar input text cuando se checkea un checkbox.

Tengo cuatro <li>, el primero y tercero son los checkboxes y el segundo y cuarto los input text. Necesito que esten alineados horizontalmente, pero que no se mueva nada al aparecer los input text los checkboxes no deben moverse y los input aparezcan a la derecha.

Código (html5) [Seleccionar]
<ul>
    <li style="margin-top: 9px;">
        <input type="checkbox" id="price1" value="">
        <label for="price1"><span></span>Se Vende</label>
    </li>
    <li class="price-1" style="display: none;">
        <input type="text" placeholder="Precio de Venta" name="price[sale]" /> <span class="unit unit-2">&euro;</span>

    </li>
    <li class="test">
        <input type="checkbox" id="price2" value="">
        <label for="price2"><span></span>Se Alquila</label>
    </li>
    <li class="price-2" style="display: none;">
        <input type="text" placeholder="Precio de Alquiler" name="price[rent]" /> <span class="unit unit-2">&euro;</span>

    </li>
</ul>


Alomejor tengo que cambiar la estructura o es simplemente arreglando el css.

Aquí un link a fiddle: http://jsfiddle.net/nazu61p7/

Gracias!
#57
Desarrollo Web / input type file no sube archivos
7 Noviembre 2015, 05:41 AM
(Edito toda la pregunta)

Estoy usando la libreria dropzone.js para que se pueda ver un preview de la imagen antes de subirla. He estado teniendo problemas para adaptar el formulario (que al parecer el area de soltar archivos ocupa todo el formulario y no funcionan las opciones para cambiar esta area a otro contenedor y aunque se usen sigue ocupando todo el form).

Encontré una opción (que no venia en la web) para poner (append) el <input type="file"> donde se desee, asi que lo puse dentro de un div en mi formulario, pero al parecer los archivos no se están subiendo (creo que se debe a un evento de la libreria, aparte de que tengo que poner una opción para que no se suban automaticamente).

Modifique un poco la libreria para que le pusiera el atributo "name="file[]"" (linea 548) al hidden input y ahora si parece que funciona pero al contar los archivos solo cuenta 1...

Código (javascript) [Seleccionar]
_this.hiddenFileInput.setAttribute("name", "file[]");

Ahora el input que crea es el siguiente (dentro de mi form):
Código (html5) [Seleccionar]
<input class="dz-hidden-input" type="file" name="file[]" multiple="multiple" accept="image/*" style="visibility: hidden; position: absolute; top: 0px; left: 0px; height: 0px; width: 0px;">

En php cuento los archivos pero siempre imprime 1:
Código (php) [Seleccionar]
$file_count = count($_FILES['file']['name']);
echo $file_count;


Y por ultimo las opciones que le doy al instanciarse:

Código (javascript) [Seleccionar]
Dropzone.options.myAwesomeDropzone = {
   url: 'upload.php',
   paramName: "file",
   acceptedFiles: 'image/*',
   addRemoveLinks: true,
   parallelUploads: 6,
   maxFilesize: 6,
   maxFiles: 6,
   autoDiscover: false,
   autoProcessQueue: false,
   uploadMultiple: true,
   hiddenInputContainer: '#inputFile',

   init: function () {
       thisDropzone = this;
       thisDropzone.on("maxfilesexceeded", function(file) { thisDropzone.removeFile(file); });
   }
};


Me gustaría saber si hay alguna manera de comprobar que los archivos soltados en el area estan realmente en el hidden input type file, porque no lo parece...

Al final va ser más facil crear los previews que estar dependiendo de esta libreria...
#58
Hola buenas, estoy buscando una manera de enviar variables a php a la vez que le doy a un link para cambiar de pagina (?page=2), ya que la lista y la paginación se cargan mediante ajax y al darle a un link las variables enviadas por ajax post se borran y hay que enviarlas de nuevo.

Necesito saber de alguna manera para hacerlo, no se me ocurre nada por el momento...

Gracias!
#59
Hola buenas, estoy intentando enviar variables a php sin tener que recargar la página y ya tengo el script creado, aunque estoy teniendo problemas...

Código (javascript) [Seleccionar]
   $('.click').click(function() {

       if ($('#res_prop').is(':checked')) {
           var prop_type = $('#res_prop').val();
       }
       else if ($('#com_prop').is(':checked')) {
           var prop_type = $('#com_prop').val();
       }

       $.ajax({
           method: "POST",
           url: "/search",
           data: {
               prop_type: prop_type,
               city: $('select[name=city]').val(),
               zone: $('select[name=zone]').val(),
           }
       }).done(function(data) {
           $('.cont-1').hide();
           $('.cont-2').show();
       });

       return false;
   });


No tengo mucha idea de como funciona Ajax, espero una cosa pero recibo otra, me explico: yo creía que al darle al botón el nuevo código ya compilado sería mostrado automaticamente en la página (sin recargar ni hacer nada más) pero sin embargo me encuentro con que el nuevo código se encuentra dentro de data y no tengo ni idea de como reemplazar el codigo actual (todo el código de la página actual) con el nuevo recibido.

Gracias!
#60
Hola buenas, ¿alguien sabe que es eso de CORS? estoy viendo en la consola de firefox que se esta bloqueando las fuentes de mi web (en un hosting, en local funciona bien).

Las fuentes (y css, js, etc) están en un subdominio, ya que las url son procesadas por el index.php y no funcionan las rutas en el dominio.

CitarCross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/Oxygen-Regular.ttf. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown>
downloadable font: download failed (font-family: "Oxygen-Regular" style:normal weight:normal stretch:normal src index:0): bad URI or cross-site access not allowed source: /fonts/Oxygen-Regular.ttf styles.css:10:12
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/Montserrat-Regular.ttf. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown>
downloadable font: download failed (font-family: "Montserrat-Regular" style:normal weight:normal stretch:normal src index:0): bad URI or cross-site access not allowed source: /fonts/Montserrat-Regular.ttf styles.css:6:12
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/glyphicons-halflings-regular.woff2. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown>
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:1): bad URI or cross-site access not allowed source: /fonts/glyphicons-halflings-regular.woff2 bootstrap.css:267:12
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/glyphicons-halflings-regular.woff. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown>
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:2): bad URI or cross-site access not allowed source: /fonts/glyphicons-halflings-regular.woff bootstrap.css:267:12
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/glyphicons-halflings-regular.ttf. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown>
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:3): bad URI or cross-site access not allowed source: /fonts/glyphicons-halflings-regular.ttf bootstrap.css:267:12

He estado leyendo sobre el problema y me parece que hay que activar en el hosting algo sobre CORS pero he estado viendo (en kloxo) y no veo nada parecido.

¿Alguien sabe como solucionar esto?

Gracias!

Edito: Acaba de encontrar la web enable-cors.org pero parece que no funciona... ya he añadido el header al archivo .htaccess (ya que no se como acceder desde kloxo a archivos conf de apache).

Así es como lo tengo actualmente, pero no funciona de ninguna de las maneras (tal vez hay que reiniciar apache o esperar mas?):

Options -Indexes

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"

DirectoryIndex index.php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
#61
Electrónica / cambiar cable de auriculares
12 Octubre 2015, 12:10 PM
Hola, necesito saber de alguna página donde comprar los componentes que necesito para cambiar el cable que trae el koss porta pro (que es algo mediocre, tanto el cable como el conector).

He estado leyendo en varios foros audiófilos y creo saber como hacer el trabajo: desmontar los auriculares, desoldar el cable actual y soldar el nuevo (en caso de que venga el conector ya soldado). Pero lo que más me interesa es mejorar la calidad de sonido (que ya de por sí es muy buena por el precio que tienen), si no me equivoco por encima de los 70 ohm.

¿Alguien conoce de algún sitio donde comprar lo que necesito?

Gracias.
#62
Hardware / Ordenador se apaga a los pocos segundos
23 Septiembre 2015, 02:40 AM
Hola buenas, tengo un ordenador que empezó a hacer un ruido raro, lo apagué y al volver a encenderlo salio un mensaje diciendo "error cpu" o algo así pero desde entonces dejó de salir ese mensaje, ahora simplemente se enciende normal, pero se sigue apagando solo a los pocos segundos.

El ordenador tiene ya unos 6-7 (puede que 8) años y me parece normal que empiece a fallar, aunque me gustaría encontrarle una solución, aunque sea por aprender :)

Al abrirlo desmonté el disipador (uno grande de Asus, socket 755) y al parecer era el ventilador que se ha roto, no gira bien y es lo que causaba el ruido. Solo tengo un disipador intel de serie (reciente) y lo he podido encajar "a presión" pero hace contacto completo con la superficie del procesador (no se mueve ni nada esta bien sujeto) y supongo que eso es lo importante, aunque desconozco si eso es lo que está causando los apagones, yo diría que no, pero no estoy seguro del todo, agradecería una confirmación.

He probado otra fuente de alimentación (de otro pc de casa) y lo mismo, se sigue apagando a los pocos segundos de cargar windows, lo único raro que he notado es que el ventilador de la fuente de prueba no funciona; veo como intenta girar pero se para, los leds "al menos" funcionan (a pesar de esto en el pc original funciona correctamente, tiene 5 años y es de 700W corsair). No sé que más intentar, tampoco sé cual puede ser la causa (a parte de lo del disipador).

¿Es posible que sea la placa base? (Lo único que queda ya...) Probé conectando otra tarjeta gráfica (un modelo inferior que consume menos) pero no funcionaba, la señal de vídeo no llegaba al monitor, desconozco porque no funcionó (o no la reconocía, es del mismo pc que el de la fuente de prueba y funciona perfectamente). Sin embargo la gráfica del pc roto si que funciona normal... A lo mejor fue un fallo mio, al conectarla o algo...

¡Ayuda por favor!
#63
Redes / aplicación para monitorizar router
7 Septiembre 2015, 23:25 PM
Hola buenas! Estoy buscando una buena aplicación (si puede ser libre mejor) que me permita monitorizar el router (conexiones entrantes y salientes, el bando de ancha utilizado por ip, con velocidades, etc).

Mi sistema operativo es Manjaro (arch linux) supongo que no habrá problemas de compatibilidad.

Es la primera vez que uso una aplicación de este tipo, pero me familiarizo rápidamente y sin problemas.

Agradezco cualquier sugerencia.

Gracias.
#64
GNU/Linux / problema al instalar hda analyzer
7 Septiembre 2015, 03:01 AM
Necesito usar el puerto jack "line in" (el azul) para los auriculares ya que el puerto frontal no funciona y el de la placa ya esta con los altavoces. Según he estado leyendo con esta aplicación se pueden remapear los puertos.

Sigo los pasos de la guia oficial, pero no detecta la dependencia instalada pygtk y da el siguiente error:

Código (bash) [Seleccionar]
$ sudo python run.py
[sudo] password for chazy:
 File "run.py", line 12
   print "Please, install pygtk2 or python-gtk package"
                                                      ^
SyntaxError: Missing parentheses in call to 'print'


Código (bash) [Seleccionar]
$ pacman -Q | grep pygtk
pygtk 2.24.0-5


Supongo que al decir que instale "pygtk2" se referirá a la versión 2+ del paquete pygtk, no creo que haya ningún paquete llamado así exactamente... El otro paquete no lo encuentro por ninguna parte.

Estoy usando la ultima versión estable de Manjaro. ¿Alguna idea de por qué no funciona?

Gracias.

Edito: Encontré otra solución, instalando alsa-tools y usando hdajackretask (es gui).
#65
Hola buenas, explico brevemente mi situación:

Necesitaba un emulador de android para correr algunas aplicaciones y juegos, pero resulta que uno de los juegos no funciona en genymotion, que al parecer es el único emulador que he encontrado para linux. Entonces decidí instalar virtualbox para instalar windows y correr el bluestacks que con ese emulador funciona todo, pero resulta que va muy lagado todo, no se puede hacer nada en bluestacks. Por ultimo instalé vmware workstation player 12 y al parecer todo va suave y estable, con este se puede usar bluestacks en windows virtualizado sin ningún problema. (instale las herramientas guest en ambos)

El problema está en que al reiniciar, el adaptador de red se restablece y entonces da error al iniciar la maquina virtual:

CitarCould not open /dev/vmmon: No such file or directory.
Please make sure that the kernel module `vmmon' is loaded.
Y después este:
CitarFailed to initialize monitor device.

Buscando en internet encontré un post en los foros de vmware con una posible solución:

Citarsudo mv /usr/lib/vmware/modules/binary /usr/lib/vmware/modules/binary.old

sudo vmware-modconfig --console --install-all --appname="VMware Player" --icon="vmware-player"

Al ser un post antiguo, el archivo/carpeta "binary" de la primera ruta no existe, no sé si se encuentra en otra ubicación o ya no está en esta versión (lo estuve buscando pero nada).

Lo segundo si que funciona perfecto, se ejecutan unas operaciones y vuelve a configurar el adaptador de red para permitirme ejecutar la maquina virtual. Pero ocurre lo mismo, se vuelve a restablecer al reiniciar... A lo mejor es por el archivo ese, que tiene que volver a generarlo de 0 pero al existir (en alguna parte...). Este es el output.

Estoy usando Manjaro Linux Cinnamon (archlinux), ¿alguien sabe por qué ocurre esto?

Gracias!


P.D.: Estuve investigando más, porque al parecer pasaba algo parecido con otra aplicación, que al reiniciar se revertían los cambios, como si no se guardaran (solo en la memoria ram) y al reiniciar se carga el archivo sin los cambios... Solo me ha pasado con la aplicación catalyst control center (gráficos amd), al posicionar mis 3 monitores correctamente y guardar, al reiniciar estaba como al principio, la solución fue volver a posicionarlo desde el ccc, guardar y abrir la aplicación nativa "display" y darle a aplicar cambios, de esa manera si que se guardaba y al reiniciar todo correcto.

Estuve contemplando la idea de que fuera algo con los permisos, pero parece que no. Ahora solo se me ocurre que tenga algo que ver con que encripté el disco o partición (en el instalador elegí la opción), o puede que no, simplemente lo menciono por si tiene algo que ver... Es muy extraño el hecho de que con aplicaciones nativas no ocurra esto.
#66
Hola, estoy buscando la manera de deshabilitar una opción, que al parecer no es del sistema operativo (como pensaba) si no de la configuración de los drivers de la gráfica.

Cuando hay 2 o mas monitores y apagas uno, los demás se autodetectan automaticamente y las ventanas cambian de sitio (incluso de monitor). No mola nada esta función, creo que está en amd y nvidia...

Mi gráfica es AMD R9 290. Seguro que en la configuración xorg.conf hay alguna manera de desactivar esto, o en cualquier otra parte. Uso los drivers propietarios de AMD y tengo instalado el catalyst control center pero ya he mirado y no encuentro ninguna opción (en Windows si que la vi, pero creo que estaba de adorno...).

Gracias!
#67
Hola buenas! Quiero volver a Linux de nuevo, hecho de menos ese mundo y me gustaría encontrar una buena distribución que soporte bien mi hardware.

Ando cansado ya de Windows, actualicé al 10 pero parece que es algo general... Digamos que tiene muchos "efectos secundarios"...

En el pasado probé varias distribuciones Linux; Ubuntu, Mint y Debian (en ese orden). La que más me gusto en cuanto a diseño y estabilidad fue Mint (aunque cinamon no soportaba bien mi gráfica y tuve que cambiar, eso fue lo que me echó para atrás).

Mi gráfica es: AMD Radeon r9 290... Supongo que el soporte habrá mejorado desde la ultima vez.

Creo, si no recuerdo mal, que ya abrí un mensaje aquí preguntando por el soporte de mi gráfica en Linux Mint Cinnamon y creo que me respondieron que por alguna razón no daban buen soporte a esa gráfica (en Cinnamon solo).

¿Conocéis alguna distribución que soporte bien las gráficas AMD y la configuración multi-pantalla?

Gracias!
#68
Hola buenas, necesito mover de un ordenador muy antiguo (con windows xp) un programa de clientes y accesos que requiere activación, pero funciona sin conexión por lo que tengo que encontrar claves del registro y todos los archivos correspondientes.

El problema es que la ultima vez que se formateó, no funcionaba el serial que me dieron al comprarlo, y tuve que estar mandando emails hasta que me dieron otro (que ahora ya no funcionará).

¿En que parte del registro suelen estar las claves de activación de los programas? El programa instala librerias y otro tipo de archivos en win32. No sé si alguno de ellos tiene que ver con la activación.

El programa se llama ASV Gimnasios.

Gracias.
#69
Windows / Realtek HD manager y altavoces 5.1
28 Julio 2015, 18:19 PM
Desde siempre he tenido un problema en Windows con el manager del realtek para configurar altavoces 5.1. Hoy he estado mirando en google y al fin me he enterado de cual es el problema. Sin embargo no puedo solucionarlo ya que no me da la opcion al conectar los cables a la placa de sonido (que soporta 8 canales).

Según he visto en la wikipedia, los 5 canales son: los frontales (3) y los traseros (2). He leido en otras partes que 5.1 son laterales, pero seguramente se equivoco el que escribió.

Entonces en el Realtek HD Manager al conectar los cables solo me pide que elija el verde, los otros dos los "detecta" o los configura por defecto que son laterales y no sé como cambiarlos a traseros. Si elijo la configuración 7.1 y le doy a los traseros si que se escuchan, pero al cambiar a la configuración 5.1 en el manager solo estan los dos laterales.

¿Alquien sabe alguna manera de configurarlo bien?

Gracias.
#70
Hola buenas! Hace un tiempo instalé Debian 8 para usarlo como servidor y poder usar skype y firefox en un windows virtualizado (vmware player / la persona que lo usa no le gusta linux  :-( ).

Al principio parecia que todo funcionaba normal, pero la verdad es que va muy lento, tarda mucho en cargar una simple ventana de archivos o un programa como el navegador de internet... (y esto recién iniciado el sistema, sin abrir el vmware player) El inicio también se demora mas de lo normal y hay algunos errores:

Citar[drm:cpt_set_fifo_underrun_reporting] *ERROR* uncleared pch fifo underrun on pch transcoder A
[drm:cpt_serr_int_handler] *ERROR* PCH transcoder A FIFO underrun
systemd-fsck[305]: fsck.fat 3.0.27 (2014-11-12)
systemd-fsck[305]: 0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
systemd-fsck[305]: Automatically removing dirty bit.
systemd-fsck[305]: performing changes
systemd-fsck[305]: /dev/sda: 3 files, 33/130812 clusters
r8169 0000:03:00.0: firmware: failed to load rtl_nic/rtl_nic/rt18168e-3fw (-2)
http://i62.tinypic.com/vo1kxk.png

¿Es posible que esos errores reduzcan el rendimiento? He estado viendo algunos logs y tambien he visto algunos errores, pero no sé cuales exactamente están causando el problema con el rendimiento.

El ordenador es suficientemente potente como para que todo vaya suave y ligero. Es un intel core i5-3570 con 8gb de ram (y no creo que sea porque haya 1 stick y no esté activado dual channel). La virtualización (o como se llame la característica) está activada en BIOS.

¿Hay alguna manera de saber que está causando el problema de rendimiento?

Gracias!
#71
Hola buenas! Estoy intentando unir varias tablas en una sola, pero no estoy muy seguro de como hacerlo. La estructura de las tablas es la siguiente:

Código (sql) [Seleccionar]
-- tablas: en, fr, de, zh_cn, es, ru, pt_br
`geoname_id` int (11),
`continent_code` varchar (200),
`continent_name` varchar (200),
`country_iso_code` varchar (200),
`country_name` varchar (200),
`subdivision_1_name` varchar (200),
`subdivision_2_name` varchar (200),
`city_name` varchar (200),
`time_zone` varchar (200)


Son 7 tablas (cada una un idioma diferente) y me gustaría juntarlas todas en una sola, añadiendo como prefijo el código del pais delante de los nombres de las columnas.

Esta es la estructura de la nueva tabla, donde el contenido de las demás sera añadido:

Código (sql) [Seleccionar]
CREATE TABLE `geo_lists` (
`city_id` int (11), -- en.geoname_id (same for all 7 tables)
`continent_code` varchar (2), -- en.continent_code (same for all 7 tables)
`continent_name` varchar (200), -- en.continent_name (just in english)
`country_code` varchar (2), -- en.country_iso_code (same for all 7 tables)
`en_country_name` varchar (200), -- en.country_name
`fr_country_name` varchar (200), -- fr.country_name
`de_country_name` varchar (200), -- de.country_name
`zh_country_name` varchar (200), -- zh_cn.country_name
`es_country_name` varchar (200), -- es.country_name
`ru_country_name` varchar (200), -- ru.country_name
`pt_country_name` varchar (200), -- pt_br.country_name
`en_state_name` varchar (200), -- en.subdivision_1_name
`fr_state_name` varchar (200), -- fr.subdivision_1_name
`de_state_name` varchar (200), -- de.subdivision_1_name
`zh_state_name` varchar (200), -- zh_cn.subdivision_1_name
`es_state_name` varchar (200), -- es.subdivision_1_name
`ru_state_name` varchar (200), -- ru.subdivision_1_name
`pt_state_name` varchar (200), -- pt_br.subdivision_1_name
`en_province_name` varchar (200), -- en.subdivision_2_name
`fr_province_name` varchar (200), -- fr.subdivision_2_name
`de_province_name` varchar (200), -- de.subdivision_2_name
`zh_province_name` varchar (200), -- zh_cn.subdivision_2_name
`es_province_name` varchar (200), -- es.subdivision_2_name
`ru_province_name` varchar (200), -- ru.subdivision_2_name
`pt_province_name` varchar (200), -- pt_br.subdivision_2_name
`en_city_name` varchar (200), -- en.city_name
`fr_city_name` varchar (200), -- fr.city_name
`de_city_name` varchar (200), -- de.city_name
`zh_city_name` varchar (200), -- zh_cn.city_name
`es_city_name` varchar (200), -- es.city_name
`ru_city_name` varchar (200), -- ru.city_name
`pt_city_name` varchar (200), -- pt_br.city_name
`time_zone` varchar (30) -- en.time_zone (same for all 7 tables)
);


Así lo que estoy intentando hacer, pero algo va mal:

Código (sql) [Seleccionar]
INSERT INTO geo_lists
-- columns
(city_id, continent_code, continent_name, country_code,
en_country_name,
fr_country_name,
de_country_name,
zh_country_name,
es_country_name,
ru_country_name,
pt_country_name,

en_state_name,
fr_state_name,
de_state_name,
zh_state_name,
es_state_name,
ru_state_name,
pt_state_name,

en_province_name,
fr_province_name,
de_province_name,
zh_province_name,
es_province_name,
ru_province_name,
pt_province_name,

en_city_name,
fr_city_name,
de_city_name,
zh_city_name,
es_city_name,
ru_city_name,
pt_city_name,

time_zone)

-- end columns

SELECT
en.geoname_id, en.continent_code, en.continent_name, en.country_iso_code,
en.country_name AS en_country_name,
fr.country_name AS fr_country_name,
de.country_name AS de_country_name,
zh_cn.country_name AS zh_country_name,
es.country_name AS es_country_name,
ru.country_name AS ru_country_name,
pt_br.country_name AS pt_country_name,

en.subdivision_1_name AS en_state_name,
fr.subdivision_1_name AS fr_state_name,
de.subdivision_1_name AS de_state_name,
zh_cn.subdivision_1_name AS zh_state_name,
es.subdivision_1_name AS es_state_name,
ru.subdivision_1_name AS ru_state_name,
pt_br.subdivision_1_name AS pt_state_name,

en.subdivision_2_name AS en_province_name,
fr.subdivision_2_name AS fr_province_name,
de.subdivision_2_name AS de_province_name,
zh_cn.subdivision_2_name AS zh_province_name,
es.subdivision_2_name AS es_province_name,
ru.subdivision_2_name AS ru_province_name,
pt_br.subdivision_2_name AS pt_province_name,

en.city_name AS en_city_name,
fr.city_name AS fr_city_name,
de.city_name AS de_city_name,
zh_cn.city_name AS zh_city_name,
es.city_name AS es_city_name,
ru.city_name AS ru_city_name,
pt_br.city_name AS pt_city_name,

en.time_zone

FROM en, fr, de, zh_cn, es, ru, pt_br

WHERE en.geoname_id = fr.geoname_id
AND fr.geoname_id = de.geoname_id
AND de.geoname_id = zh_cn.geoname_id
AND zh_cn.geoname_id = es.geoname_id
AND es.geoname_id = ru.geoname_id
AND ru.geoname_id = pt_br.geoname_id


El problema es que nunca termina de ejecutarse... Estoy usando SQLYog Community Edition en Windows 8.1. Lleva casi 1 hora ejecutandose y nada, los archivos csv solo pesan 42mb todas (no se cuanto pesaran ahora que estan metidos en tablas - usando LOAD DATA INFILE)

Gracias!

Edito para añadir estructura de la nueva tabla, y como se juntan todas en la nueva.

Vale el problema es que se me olvido poner primary key para la primera columna (id).
#72
Me lleva pasando algun tiempo ya. Cuando entro al foro empiezo a tener como lag en firefox. El scroll no es suave y se atasca y luego sigue. Lo mismo al navegar por el foro, se atasca al entrar a algun subforo o leer mensajes...

Reinicie firefox en modo compatibilidad (sin complementos ni nada) y funciona bien...

Solo tengo dos extensiones instaladas: Adblock Plus (indispensable  ;D) y el complemento de MEGA para descargas grandes.

Plugins tengo 6:

- Módulo de descifrado de contenido Primetime proporcionado por Adobe Systems, Incorporated (10)
- OpenH264 Video Codec proporcionado por Cisco Systems, Inc. (1.4)
- Shockwave Flash (17.0.0.188)
- AdobeAAMDetect (1.0.0.0)
- Google Update (1.3.27.5)
- Silverlight Plug-In (5.1.40416.0)

He probado a desactivarlos 1 a 1, pero no se si hay que desactivarlos y reiniciar firefox para comprobarlo... De todas maneras, ahora que me fijo, algunos de esos plugins ni se lo que son ni se porque se han instalado, los desactivaré.

A lo mejor a alguien le ha pasado lo mismo...
#73
Hola buenas, necesito crear variables de sesión despues de que la sesión haya sea destruida (por inactividad), para imprimir un mensaje y para saber a que url redireccionar.

La página platform requiere que estes logueado para mostrarse, si no es el caso redirecciona automaticamente a login y al loguear detecta que session url esta declarada entonces en lugar de redireccionar a la web por defecto (la principal) redirecciona a la página platform.

Mi funcion session_start destruye la sesion cuando pasan 5 minutos sin actividad:

Código (php) [Seleccionar]
$hasExpired = NULL;

if (isset($_SESSION['client_id'], $_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY']) > 300) {
// last request was more than 5 minutes ago
$_SESSION = array();                    // unset $_SESSION variable for the run-time
$params = session_get_cookie_params();  // Get session parameters
setcookie(session_name(),               // Delete the actual cookie
 '',
 time() - 3600,
 $params["path"],
 $params["domain"],
 $params["secure"],
 $params["httponly"]);
session_destroy();                      // destroy session data in storage

$hasExpired = true;                     // now we know the user has lost his session for inactivity
}


Para avisar al usuario de que su sesión ha expirado y por esa razón se le ha redireccionado a la pagina login:

Código (php) [Seleccionar]
$hasExpired = $web_user::sec_session_start();

if ($hasExpired == true) {
$_SESSION['msg'] = 'msg_afk';  // no funciona
$_SESSION['url'] = 'platform';  // no funciona
die(header('Location: ' . $path_login));
}


En la página login se deberia mostrar el mensaje, pero no aparece ninguno porque la variable esta vacia... y tampoco redirecciona a la misma pagina de la que se le cerró la sesión.

Más abajo, en index.php, tengo otro header y ahí si que funciona la variable de sesión:

Código (php) [Seleccionar]
// if logged in == true
else {
   $_SESSION['url'] = 'platform'; // working
   die(header('Location: ' . $path_login));
} // if I log in again I'm redirected to platform


¿Alguna idea de por qué no funcionan las variables de sesión despues de destruirse la sesión?

Ya he probado a empezarla de nuevo antes de declarar las variables, pero nada...

Gracias!
#74
Hola buenas, hace poco compré un laptop Asus X554LD (el modelo con Intel Core i3 4030U) pero decidí formatearlo e instalarle la versión limpia de Windows 8.1.

Cuando terminé de instalarle todo (actualizaciones y drivers adicionales) no me fijé en el administrador de dispositivos que aún faltaban drivers por instalar, y resulta que la controladora HDMI está fallando debido a que falta otro driver del que este depende. Dejo una captura e información detallada:



Estos son los drivers adicionales que instalé (de la web Asus):

- Chipset: Intel INF Update Driver
- Audio: Realtek Audio Driver
- Otros: Intel Management Engine Interface
(Y otras cosillas menores para que todo funciones bien, como el wifi, funcionalidades del touchpad, etc)

Algo en lo que me he fijado es que no están actualizados (o por lo menos no son de este año). Por ejemplo el primer driver, el del chipset (según la web asus), data del año 2013 (finales). Lo digo porque es posible que en la web de Intel hayan drivers más recientes, pero no me aclaro con tanto código numérico y tantos chipsets... ¿Alguien sabe exactamente que descargar de la web de intel?

El problema con el HDMI es que cuando conecto el laptop al televisor, la calidad es muy mala (aparte la relación aspecto no se ajusta, la imagen sale fuera y tengo que cambiarlo manualmente para que se ajuste) y el sonido no funciona (no aparece en dispositivos de reproduccion). Probé con dos cables distintos y lo mismo, por lo que supongo que el problema se debe a que los controladores están mal instalados o directamente no lo están.

El chipset gráfico (no sé exactamente cual se usa, si el de intel o el de nvidia) utilizado para mostrar escritorio extendido en el televisor debería soportar la resolución máxima de 1080p, ¿no? No creo que esa sea la razón por la que se ve mál el escritorio en el televisor.

Gracias!
#75
Hola buenas! Tengo un pequeño problema para terminar un formulario animado con sliders y checkboxes.

Hay un slider principal que muestra y oculta checkboxes al moverse. Los checkboxes crean sliders y el problema es el siguiente:

Cuando muevo el slider principal para mostrar los checkboxes y checkeo un checkbox para que genere otro slider, al mover el slider principal y ocultarse el checkbox checkeado el slider creado sigue visible pero deberia ocultarse. Para ello necesito generar la id del slider, pero es algo complicado.

Así es como muestro los checkboxes y supongo que aquí es donde debería generar los ids de los sliders creados:

Código (jquery) [Seleccionar]
$("#slider").slider({
min: 1,
max: 30,
value: 1,

slide: function( event, ui ) {
$( "#result" ).html( ui.value );

var startx = 1;
var slider = $("#slider-10"); // ESTE ES EL NUMERO

$("input:checkbox").hide();
$('label').hide();
if ($("input:checkbox").is(":checked")) {
slider.hide();
}

$(new Array(ui.value)).each(function () {
// Get elements ID
var checkbox = $("#checkbox-" + startx);
var label = $("#label-" + startx);
var slider = $("#slider-" + startx);

checkbox.show();
label.show();
if ($(checkbox).is(":checked")) {
slider.show();
}

startx++;
});
}
});


Para que se pueda entender mejor dejo un link a jsfiddle: http://jsfiddle.net/t4dL6n7L/1/

Gracias!

Edito: Ya lo arreglé, creando una función y usando filtros.
#76
Hola buenas!

Estoy creando un formulario un poco complejo y necesito que al cambiar el value de un slider aparezcan checkbox segun el numero del value.

Código (jquery) [Seleccionar]
$("#slider").slider({
min: 1,
max: 100,
value: 1,
slide: function( event, ui ) {
$( "#result" ).html( ui.value );
}
});

Código (html5) [Seleccionar]
<div id="slider" class="slider"></div><br>
Cantidad: <span id="result">1</span>


Código (html5) [Seleccionar]
<div data-role="fieldcontain" style="display:none;">
<fieldset data-role="controlgroup" data-type="horizontal">
  <input type="checkbox" name="checkbox-1" id="checkbox-1" class="custom" />
  <label for="checkbox-1">1</label>
</fieldset>
</div>


¿Como puedo hacer esto? ¿Usando simplemente jquery append para crear los checkboxes?

Gracias!
#77
PHP / strtotime no convierte correctamente
19 Mayo 2015, 01:44 AM
Hola buenas, estoy intentando pasar unas fechas a formato entero de unix con la función strtotime() pero devuelve dos horas menos; al solo ser fecha sin hora pues al convertir unix a un formato leible deberia verse 00:00:00, pero en lugar de eso aparece 22:00:00 y un dia menos.

Es para almacenar fechas de nacimiento en la db y prefiero que se almacenen en formato entero, por ejemplo mi fecha de nacimiento la introduzco en el campo:
04/04/1993 o 04-04-1993 (en este caso da igual, pero tendré que decidir si uso formato americano o europeo)
y strtotime devuelve:
Código (php) [Seleccionar]
print strtotime($client_info[3]);
//733874400 -> Sat, 03 Apr 1993 22:00:00 GMT

Para saber si se ha convertido bien uso una herramienta de conversion, por ejemplo onlineconversion y me encuentro con el problema. Sin embargo si trato de convertir mi fecha usando esta web me devuelve:
Citar733881600 -> Sun, 04 Apr 1993 00:00:00 GMT
Ese unix timestamp si que es correcto.

¿A alguien le ha pasado esto? ¿Como puedo solucionarlo?

Gracias!

Edito: no creo que sea por el filtrado...

Código (php) [Seleccionar]
$client_info = filter_input(INPUT_POST, 'client_info', FILTER_SANITIZE_STRING, FILTER_REQUIRE_ARRAY);
#78
Hola buenas!

Necesito instalar sendmail en debian 8 para poder enviar mails usando php.

He estado buscando guias y maneras de instalarlo y configurarlo correctamente, pero siempre da errores del archivo de configuración. Intente hacer purge remove por si habia alguna configuracion corrupta pero nada.

Modifiqué el archivo hosts para arreglar un error del dominio:

CitarMay 16 20:43:08 1337-server sendmail[23777]: My unqualified host name (1337-server) unk$
May 16 20:44:08 1337-server sendmail[23777]: unable to qualify my own domain name (1337$

Citar127.0.0.1       localhost localhost.localdomain 1337-server
127.0.1.1       1337-server

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Lo acaba de instalar otra vez siguiendo una guia:

Citarchazy@1337-server:~$ sudo apt-get install sendmail-bin sensible-mda
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  liblockfile1 sendmail-base sendmail-cf
Suggested packages:
  sendmail-doc logcheck resolvconf sasl2-bin
The following NEW packages will be installed:
  liblockfile1 sendmail-base sendmail-bin sendmail-cf sensible-mda
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/1,530 kB of archives.
After this operation, 3,323 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Selecting previously unselected package liblockfile1:amd64.
(Reading database ... 174114 files and directories currently installed.)
Preparing to unpack .../liblockfile1_1.09-6_amd64.deb ...
Unpacking liblockfile1:amd64 (1.09-6) ...
Selecting previously unselected package sendmail-base.
Preparing to unpack .../sendmail-base_8.14.4-8_all.deb ...
Unpacking sendmail-base (8.14.4-8) ...
Selecting previously unselected package sendmail-cf.
Preparing to unpack .../sendmail-cf_8.14.4-8_all.deb ...
Unpacking sendmail-cf (8.14.4-8) ...
Selecting previously unselected package sendmail-bin.
Preparing to unpack .../sendmail-bin_8.14.4-8_amd64.deb ...
Unpacking sendmail-bin (8.14.4-8) ...
Selecting previously unselected package sensible-mda.
Preparing to unpack .../sensible-mda_8.14.4-8_amd64.deb ...
Unpacking sensible-mda (8.14.4-8) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for systemd (215-17) ...
Setting up liblockfile1:amd64 (1.09-6) ...
Setting up sendmail-base (8.14.4-8) ...
Setting up sendmail-cf (8.14.4-8) ...
Setting up sendmail-bin (8.14.4-8) ...
update-alternatives: using /usr/lib/sm.bin/sendmail to provide /usr/sbin/sendmai        l-mta (sendmail-mta) in auto mode
update-alternatives: using /usr/lib/sm.bin/sendmail to provide /usr/sbin/sendmai        l-msp (sendmail-msp) in auto mode
Updating sendmail environment ...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Writing configuration to /etc/mail/sendmail.conf.
Writing /etc/cron.d/sendmail.
Could not open /etc/mail/databases(No such file or directory), creating it.
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Writing configuration to /etc/mail/sendmail.conf.
Writing /etc/cron.d/sendmail.
Could not open /etc/mail/databases(No such file or directory), creating it.
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/databases...

Checking filesystem, this may take some time - it will not hang!
  ...   Done.

Checking for installed MDAs...
Adding link for newly extant program (mail.local)
Adding link for newly extant program (procmail)
sasl2-bin not installed, not configuring sendmail support.

To enable sendmail SASL2 support at a later date, invoke "/usr/share/sendmail/up        date_auth"


Creating/Updating SSL(for TLS) information
Creating /etc/mail/tls/starttls.m4...
Creating SSL certificates for sendmail.
Generating DSA parameters, 2048 bit long prime
This could take some time
........+......+...........+....+...............+............+...+.....+...+...+        ++++++++++++++++++++++++++++++++++++++++++++++++++*
...+.......+............+..............+.+...+........+............+.....+..+...        ..+....+.............+...+.....+.....................+...+........+...........+.        .+.........+...+........+...........+.......+......+.....+......+..+..+.........        ...........+.........................+.....+.........+................+.......+.        ....+........+.+.......+...............+.+..........+......+..+........+........        ....+.+...............+........+..+......+............+....+....+.......+..+....        ..+...........+....+...+............................+..+......+......+........+.        .+.+...........+..............+..........+......+....+....+...+.....+...+..+..+.        ..+..+..........+...+..........................................+................        .+.........+.+..................+.....................+.......+.....+.......+...        .......+..............+...+.....+.......+.....+..+....+..........+......+.......        ..................+........+.+...................+.....+....................+...        .....+..............+......+......+...+............+......+......+..........+...        ...+.......+.........+......+.......+...........+...+...........................        .................+.+...+....+.......+............+..........+...................        ...........+..........+........+.+.........................+.......+............        .....+..........+...............+.....+.......+.....+................+.+....+...        +......+........+..+..+......+.........................+.....+..................        ...+.+..+.......+......................+...+.............+..................+...        +.......................+..........................+....+.....+............+....        ......................................................................+........+        .....+.......................+....+........+......+..+.........+.......+.....+.+        .......+....................+....+...................+....+.+..+..+..+..+.+.....        .....+.......+....................+.+......+........+.................+......+..        ....................................+.........+.......+.........................        ..............+....+..+............+..+.........................................        ...........+........+..........+...+.+.......+........................+.......+.        +....+.+..................+...+...+.+.................+...+...+......+.....+....        +.....+.+..........+...........+...............+.................+.+.....+.+....        ...............................+..................+........+.....+..+.........+.        ......+......+....+.......+......................+.......+...+.............+....        .........+..+..........+.+.+........+....+.........+.+.......+.+........+......+        ............+.+.....+.......+..+.+.......+........+..+............+........+...+        ...................+.........+...+..+......+.............+......+...+...........        .+......+....+.+.................+.........+........+......+..+...+.....+.......        .....+...............+.+........+.................+.......................+.....        ..+......................+..........+..+.+.............+.....+..+......+......+.        ...+.......+.....+.............+....................+.......+...................        .....+..+.......................................................................        .......+....+......+.....+.....+.......+......................+....+............        .+.....+...........+.......+..+.+..+........+....+..........+............+.+...+        .........+.................+..+.......+...+......+...+.....+...+.............+..        ...+.......+..............................+.....+..+.......+.+..+.......+..+.+..        .+......................+...........+...............+.....+..+..................        +.......+......+...+.........+..+....+....+....+.......+++++++++++++++++++++++++        ++++++++++++++++++++++++++*
Generating RSA private key, 2048 bit long modulus
.................................+++
..................................................+++
e is 65537 (0x10001)

*** *** *** WARNING *** WARNING *** WARNING *** WARNING *** *** ***

Everything you need to support STARTTLS (encrypted mail transmission
and user authentication via certificates) is installed and configured
but is *NOT* being used.

To enable sendmail to use STARTTLS, you need to:
1) Add this line to /etc/mail/sendmail.mc and optionally
   to /etc/mail/submit.mc:
  include(`/etc/mail/tls/starttls.m4')dnl
2) Run sendmailconfig
3) Restart sendmail

Checking {sendmail,submit}.mc and related databases...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/databases...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/databases...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/Makefile...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Writing configuration to /etc/mail/sendmail.conf.
Writing /etc/cron.d/sendmail.
Disabling HOST statistics file(/var/lib/sendmail/host_status).
Creating /etc/mail/sendmail.cf...
*** ERROR: FEATURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`always_add_domain')*** ERROR: FEA        TURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`allmasquerade')*** ERROR: FEATURE        () should be before MAILER()

Creating /etc/mail/submit.cf...
Informational: confCR_FILE file empty: /etc/mail/relay-domains
Warning: confCT_FILE source file not found: /etc/mail/trusted-users
it was created
Informational: confCT_FILE file empty: /etc/mail/trusted-users
Updating /etc/mail/access...
Linking /etc/aliases to /etc/mail/aliases
Updating /etc/mail/aliases...
WARNING: local host name (1337-server) is not qualified; see cf/README: WHO AM I        ?
/etc/mail/aliases: 13 aliases, longest 10 bytes, 143 bytes total

Warning: 1 database(s) sources
        were not found, (but were created)
        please investigate.

Warning: These messages were issued while creating sendmail.cf
        make sure they are benign before starting sendmail!

Errors in generating sendmail.cf
*** ERROR: FEATURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`always_add_domain')*** ERROR: FEA        TURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`allmasquerade')*** ERROR: FEATURE        () should be before MAILER()

Setting up sensible-mda (8.14.4-8) ...
Processing triggers for libc-bin (2.19-18) ...
Processing triggers for systemd (215-17) ...
chazy@1337-server:~$ dpkg --purge exim4
dpkg: error: requested operation requires superuser privilege
chazy@1337-server:~$ sudo dpkg --purge exim4
(Reading database ... 174526 files and directories currently installed.)
Removing exim4 (4.84-8) ...
Purging configuration files for exim4 (4.84-8) ...
chazy@1337-server:~$ sudo dpkg --purge exim4-base
(Reading database ... 174526 files and directories currently installed.)
Removing exim4-base (4.84-8) ...
Purging configuration files for exim4-base (4.84-8) ...
chazy@1337-server:~$ sudo dpkg --purge exim4-config
(Reading database ... 174522 files and directories currently installed.)
Removing exim4-config (4.84-8) ...
Purging configuration files for exim4-config (4.84-8) ...
dpkg-statoverride: warning: no override present
chazy@1337-server:~$ sudo dpkg --purge exim4-daemon-light
(Reading database ... 174468 files and directories currently installed.)
Removing exim4-daemon-light (4.84-8) ...
Purging configuration files for exim4-daemon-light (4.84-8) ...
chazy@1337-server:~$ sudo dpkg --purge sa-exim
dpkg: warning: ignoring request to remove sa-exim which isn't installed
chazy@1337-server:~$ sudo apt-get install libmail-sendmail-php5
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libmail-sendmail-php5
chazy@1337-server:~$ sudo apt-get install libmail-sendmail-perl
Reading package lists... Done
Building dependency tree
Reading state information... Done
libmail-sendmail-perl is already the newest version.
libmail-sendmail-perl set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

¿Como puedo solucionar esos errores? No puedo enviar nada por consola y en php tampoco funciona mail().

Si es más facil puedo usar otro, pero no conozco ningun que sea sencillo para instalar y configurar y me permita enviar mails (a poder ser html, con headers).

Gracias!
#79
Hola buenas. Necesito crear un sistema de traduccion para una web y estoy pensando en usar memcached para que no disminuya el rendimiento al tener que cargar tantos textos.

La idea sería guardar todo en una tabla de base de datos, cargarlo en la memoria y de ahí a los clientes. Pero es la primera vez que voy a usar esto y no estoy muy seguro de como hacerlo.

De todas formas agradezco cualquier otra surgerencia para hacer esto, pero no creo que vaya a cargar directamente de la db o de un fichero xml o bueno no se si hay alguna manera para que no sea lento pero creo que lo mejor será usar memcache.

Primero se detectará el lenguaje del navegador:

Código (php) [Seleccionar]

$languages = array('en', 'es', 'fr', 'de', 'it');

$preference = (isset($_COOKIE['lang'])) ?
   $_COOKIE['lang'] : ((isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) ?
       Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']) : '');

$locale = Locale::lookup($languages, $preference, false, 'en');


No estoy seguro de como hacer esto, pero supongo que a peticion de la pagina cargada se enviarian los textos correspondientes o ¿de que manera podría hacer esto?

Gracias!
#80
GNU/Linux / configurar vsftpd correctamente
6 Mayo 2015, 22:31 PM
Hola buenas! Acaba de instalar un servidor ftp en debian 8 pero no consigo configurarlo correctamente para poder conectarme. Lo he instalado y he cambiado algunas cosillas en el archivo de configuración, lo que más o menos explican en casi todas las guias que he leido:

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=NO
chroot_list_enable=YES
userlist_enable=YES
userlist_deny=NO

Luego he creado dos archivos: vsftpd.chroot_list y vsftpd.user_list que contienen el nombre del usuario local.

He reiniciado el servicio pero sigue sin funcionarme. Si intento acceder mediante el navegador con la ip privada y el puerto 21 me da el siguiente error (en firefox):

Citar
Esta dirección está restringida

Esta dirección usa un puerto de red que normalmente se utiliza con fines distintos a la navegación web. Para su protección, Firefox ha cancelado la petición.

Y si intento acceder de forma remota, usando por ejemplo net2ftp.com, tampoco me deja (el puerto esta abierto en el router y apunta al servidor ftp).

Tampoco se como hacer para que la carpeta del ftp sea "/var/www". No he visto en la configuracion nada de esto. De todo modos le di permisos:

Citarsudo chmod 755 /var/www

¿Tengo que ser el dueño de esa carpeta o con los permisos es suficiente?

Gracias!
#81
Hardware / ordenador lento y con retraso
5 Mayo 2015, 16:09 PM
Hola buenas, tengo un ordenador que lo necesito usar como servidor y le instale ubuntu para realizar pruebas. Ha tenido Windows instalado durante un tiempo y ultimamente ha funcionado muy lento, pero supongo porque solo tenia 2gb de ram.

Ya le instale Ubuntu hace 1 año y funcionaba muy mal. A veces se quedaba la bios congelada y no arrancaba, carga muy lento las ventanas y a veces se congela (tenia 8gb de ram 2x4). Esta ocurriendo lo mismo (menos lo de quedarse en la bios sin arrancar) y no puedo tener ni una maquina virtual (windows) sin que todo funcione lentisimo, la web cam tampoco funciona bien, la imagen se queda congelada y a los segundos vuelve a cambiar pero nada mas (ahora solo tiene 1 modulo de 4gb y tengo pensando cambiarlo por 1 de 8gb).

El ordenador tiene algo de polvo porque hace tiempo que no lo limpio, pero no creo que funcione asi de mal por eso. Primero instale ubuntu y luego virtualbox. Me di cuenta de que no tenia la virtualización activada en la bios, pero lo hice. Sigue funcionando mal... lo unico es que me deja instalar sistemas de 64 bits.

El procesador es Intel Core i5-3570, la placa base es Gigabyte GA-Z87X-UD3H, la fuente es Corsair VS550 y el disco duro es WD NAS Red de 1TB. ¿Es posible que funcione todo lento porque no termino de rellenarlo con ceros? Supongo que al parar solo deja de escribir ceros... pero el disco solo tenia los primeros 50-100gb usados y estubo mas de 2 horas. De todas formas cuando paso la primero vez el disco estaba nuevo.

Me parece que con Windows (no virtual) funciona bien, todo fluido, pero no estoy seguro ya que no fui yo quien usaba Windows en ese equipo.

Puede ser que ubuntu no sea 100% compatible con el hardware o puede ser que haya algún problema fisico. ¿Hay alguna manera de saber esto?

Gracias.
#82
Hardware / Comparación i5 4210U vs A4 6210
6 Febrero 2015, 22:24 PM
Estoy buscando un portatil con la mejor relación calidad precio, sobre los 500€ y no me decido entre estos dos procesadores. He mirado varias webs de comparación y no me ha quedado claro.

454€
Acer Aspire E5-521-48QR

524€
Acer Aspire E5-571G-544E

Si tuviera que elegir, el i5 ganaría por la cache y el threading/turbo boost aunque por el otro lado son 4 nucleos y el ahorro de unos 70€

¿Alguien que este mas al dia sobre procesadores podria aconsejarme?

Gracias! Espero vuestras opiniones :)
#83
Acaba de instalar y configurar un servidor Lamp en Linux Mint 17.1 siguiendo una guia reciente que encontré en google, pero los archivos de las webs que tengo no funcionan.

Los hice cuando trabajaba en Windows, con notepad++ todos con codificación "utf-8 without BOM". He probado a añadir codigo html y funciona solo si lo pongo antes o entre los tags <?php ?> y los echo tambien funcionan, pero no me carga la web (includes, etcs).

Los permisos creo que los he puesto bien:
Código (bash) [Seleccionar]

chazy@1337-h4x0r /var/www $ sudo chown -R chazy html
chazy@1337-h4x0r /var/www $ sudo chgrp -R www-data html
chazy@1337-h4x0r /var/www $ sudo chmod -R 750 html
chazy@1337-h4x0r /var/www $ sudo chmod g+s html
chazy@1337-h4x0r /var/www $ ls -l
total 4
drwxr-s--- 10 chazy www-data 4096 Dec 19 13:30 html


Porque www-data es el usuario de apache, ¿no?

En la consola de firefox me sale el siguiente error al cargar, la pagina en blanco:

CitarGET http://localhost/ [HTTP/1.0 500 Internal Server Error 1ms]
GET http://localhost/ [HTTP/1.0 500 Internal Server Error 0ms]
GET http://localhost/ [HTTP/1.0 500 Internal Server Error 0ms]
GET http://localhost/ [HTTP/1.0 500 Internal Server Error 1ms]
GET http://127.0.0.1/ [HTTP/1.0 500 Internal Server Error 0ms]

Sin embargo, si que funciona si entro a "localhost/info.php" (phpinfo();)

Ahora utilizo el Sublime Text (sin registrar) para editar los archivos, pero no se si es problema de la codificación o algo.

Cuando configuraba apache y php (no recuerdo que archivo fue) cambie el mime type a utf-8, o la codificación por defecto. ¿Puede ser ese el problema?

Este es el .htaccess (en windows funcionaba bien):
Options -Indexes

DirectoryIndex index.php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>


Gracias.

Añado el link: http://84.120.219.199/info.php
#84
Hola, he estado buscando por google pero no he podido encontrar mucha información util (o no he buscado bien...).

Tengo un torniquete de acceso y una pistola laser lectora de codigos de barra. Necesito saber si es posible controlarlos desde el cliente navegador: Desde el ordenador donde estan conectados se accederá a la web y se controlarán desde una interfáz de usuario. Actualmente funcionan con una aplicacion de escritorio.

Nunca he trabajado con nada parecido y me gustaría saber como se hace y si es necesaria una libreria o algo para controlar estos aparatos.

Gracias.
#85
PHP / comprobar variables de db
2 Diciembre 2014, 01:44 AM
Hola, siento que el titulo no sea muy intuitivo pero no encuentro manera de nombrar el problema que tengo.

Estoy reescribiendo un código que imprime una lista con datos de una tabla, pero con ciertas condiciones:

Código (php) [Seleccionar]
if ($stmt = $mysqli->prepare("  SELECT members.*, account_type.*, friends.*, friendsCount.*,
                                       COUNT(friendsCount.friendID) AS num_f
                                FROM members
                                INNER JOIN account_type ON account_type.id = ?
                                INNER JOIN friends ON friends.friendID = ?
                                INNER JOIN friends AS friendsCount ON friendsCount.userID = ?
                                WHERE members.id = ?")) {

    $stmt->bind_param('iiii', $_SESSION['acc_type'], $_GET['id'], $_SESSION['user_id'], $_GET['id']);
    $stmt->execute();

    $result = $stmt->get_result();
    $row = $result->fetch_array();

    $monthNames = array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
    $paid = array(); //Placeholder for paid months.

    for ($i = 1; $i < 13; $i++) {

        $month = 'month' . $i;
        $bonus_month = 'bonus_month' . $i;

        // check if the user received the monthly bonus
        if ($row[$bonus_month] == 0) {

            // check if the friend's member account is active
            if ($row['status'] == 1) {

                // check if the friend paid the month
                if ($row[$month] == 1) {

                    $paid[] = 'Pagado';

                    // check the user account type
                    if ($row['type'] == 'Base') {

                        // TODO: check if the friend is one of the three first (special promotion)
                        // (user gets double bonus for the first three invited friends)
                        if ($row['extra'] == 1) {
                            $extra = $row['bonus'] + 5;
                            $bonus[] = $extra . '€';
                        }

                        else {
                            $bonus[] = $row['bonus'] . '€';
                        }
                    }

                    else {
                        $bonus[] = $row['bonus'] . '€';
                    }

                    $cashed[] = 'No';
                    //$non_cashed[] = $bonus[];
                }

                else {
                    $paid[] = 'No Pagado';
                    $bonus[] = 'n/a';
                    $cashed[] = 'n/a';
                }
            }

            else {
                $paid[] = 'n/a';
                $bonus[] = 'n/a';
                $cashed[] = 'n/a';
            }
        }

        else {
            $paid[] = 'Pagado';
            $bonus[] = $row[$bonus_month] . '€';

            // TODO: find a way to check if user already received the bonus
            // 12 new columns? (bonus_received_month1-12)
            if (1 == 0) {
                $cashed[] = 'Si';
                //$total_cashed[] = $row[$bonus_month];
            }

            else {
                $cashed[] = 'No';
                //$non_cashed[] = $row[$bonus_month];
            }
        }
    }

    //Now make the HTML list

    foreach ($monthNames as $key => $month) {

        echo '
                <div class="list">
                    <ul>
                        <li><a class="month">' . $month . '</a></li>
                        <li><a class="status">' . $paid[$key] .'</a></li>
                        <li><a class="bonus">' . $bonus[$key] . '</a></li>
                        <li><a class="cashed">' . $cashed[$key] . '</a></li>
                    </ul>
                </div>';
    }
} else echo $mysqli->error;


Basicamente son esos 2 "TODOs". Las relaciones de las tablas son muy sencillas:

1º members: contiene informacion de todos los usuarios y en este caso obtiene los datos del amigo ($_GET['id']) del usuario. Las columnas utilizadas son -> "id", "status" (0 or 1; inactive/active), "name" and "month1-12" (12 columns: 0 or 1; not paid / paid month).

2º account_type: contiene los diferentes tipos de cuenta (actualmente solo sirve para asignar bonificaciones segun el tipo). Las columnas utilizadas son -> "id" (members.acc_type), "type" (the type name) and "bonus" (5, 10, 15 etc...).

3º friends: contiene información acerca del usuario y las bonificaciones referentes a un amigo. Las columnas utilizadas son -> "friendID" (members.id, el usuario/amigo invitado), "userID" (members.id, el usuario que ha invitado a un amigo), "extra" (1 para los 3 primeros usuarios invitados y 0 para el resto; 1 es bonus doble, 0 es bonus normal. columna temporal), "bonus_month1-12" (12 columns; 0 is para este o un futuro mes, 1+ es el bonus que el usuario ha ganado este mes(el de la tabla: 1-12), referente al amigo)

Primero me gustaría poder reemplazar la columna friends.extra que indica si el usuario obtiene doble bonus o no, algo así como:

Código (php) [Seleccionar]
// the number of friends
$count = $row['num_f'];
// the current friendID
$f_id = $_GET['id'];
$match = 'the first 3 ids (with acc status 1)';

if ($count > 2 && $f_id == $match) {
    $extra = $row['bonus'] + 5;
    $bonus[] = $extra . '€';
} else $bonus[] = $row['bonus'] . '€';


La idea es que los usuarios con tipo de cuenta "Base" obtengan doble beneficio por los tres primeros amigos invitados, teniendo en cuenta que una de las tres primeras cuentas este desactivada (status 0) entonces la siguiente deberia incluirse, un ejemplo:

Si la cuenta número 1 no esta activa pero la 2 y la 3 si, entonces la 4 debería incluirse en $match.

Pero no se como hacer esto, aunque tengo una ligera idea, ¿sería como crear un array con las ids que solo tengan status 1?

Lo otro debería ser más sencillo: una manera de comprobar si el usuario ya recibió la bonificación. Creo que lo mejor es hacer lo mismo que para saber si la mensualidad ha sido pagada, month1-12 usando 0 y 1, en este caso algo como bonus_received_month1-12. Y contar lo que tiene pendiente por recibir y el total recibido:

Código (php) [Seleccionar]
$non_cashed[] = $bonus[];
$total_cashed[] = $row[$bonus_month];
$non_cashed[] = $row[$bonus_month];

// not received
echo '<p>Total acumulado: ' . array_sum($non_cashed[]) . '€</p>';
// total received
echo '<p>Total recibido: ' . array_sum($total_cashed[]) . '€</p>';


Creo que lo que falla aqui son las variables / arrays que no esta bien puestos...

Sinceramente, lo que mas agradecería serían los consejos, si hay fallos en el código y la manera de estructurar la DB (me han dicho que no se deben usar números en los nombres de las columnas por algo llamado normalización).

Gracias!
#86
Ayer instale Linux Mint 17.1 Cinnamon Edition para trastearlo y ver que tal va. En principio funciona bien con mi hardware, pero parece que no esta soportando multiples pantallas, aunque por el momento solo he probado escritorio extendido (no eyefinity). Solo funciona bien, los drivers, con 1 solo escritorio y las demás pantallas en modo espejo.

Lo he intentado con los drivers propietarios de AMD, bajando la ultima version de amd.com, instalandolos y lo mismo que los libres: solo funcionan con 1 escritorio, si se configuran mas, al reiniciar aparece la BSOD...

La gráfica es una AMD Radeon R9 290 (Sapphire Tri-X).

Espero que se pueda solucionar de alguna manera, me gustaría migrar a Linux para trabajar.

¿Hay algún usuario de AMD que haya podido configurar bien 2 o más pantallas?

Gracias.
#87
PHP / Conectar a sqlite remoto
7 Noviembre 2014, 12:16 PM
Necesito conectarme a la base de datos de una aplicación desde php, pero por desgracia la aplicación utiliza SQLite (creo que msaccess .mdb). La web utiliza MySQL.

El sistema operativo donde esta la aplicación es Windows, la web esta en Ubuntu. ¿Es posible dar permisos de lectura y escritura a ese archivo para la web en Ubuntu?

Tal vez hay alguna libreria para hacer esto. ¿Es posible?

Gracias!
#88
PHP / [Resuelto] JOIN query y mysqli_num_rows
22 Octubre 2014, 22:51 PM
Hola, me gustaría saber como se usa el count cuando necesito juntar varias sentencias en una misma consulta.

Estoy haciendo una lista de fotos con likes: primero necesito obtener todas las imagenes de una tabla, segundo comprobar (row count) si el usuario ya le dio like a la imagen sacando el id de la imagen y por ultimo otro row count para saber cuantos likes tiene la imagen, usando el mismo id de imagen.

Tengo algo así, me falta el count, no estoy seguro de como hacerlo y si usar INNER JOIN:

Código (sql) [Seleccionar]
SELECT user_uploads.* AS uu, members.*, COUNT(img_id, user_id) AS usr_liked, COUNT(img_id) AS total_likes
FROM user_uploads
INNER JOIN members AS m ON m.id = uu.user_id -- owner info
INNER JOIN img_likes AS il ON il.img_id = uu.imgID AND il.user_id = ? -- check if logged in user already liked
INNER JOIN img_likes AS ilt ON ilt.img_id = uu.imgID -- total likes
GROUP BY img_id, user_id
ORDER BY up_time DESC


Tengo un prepared statement y luego con un foreach imprimo todas las imagenes. Pero antes de empezar a imprimir la lista de fotos tengo que comprobar si el usuario ya le dio like a la imagen para cambiar el boton (like o unlike) y sacar el numero total de likes.

Tampoco se, en este caso de juntar tablas, como comprobar el row count, normalmente uso mysqli_num_rows($stmt); pero ahora no se si esto funciona asi.

Código (php) [Seleccionar]
if ($stmt = $mysqli->prepare("SELECT user_uploads.* AS uu, members.*, COUNT(img_id, user_id) AS usr_liked, COUNT(img_id) AS total_likes
                              FROM user_uploads
                              INNER JOIN members AS m ON m.id = uu.user_id
                              INNER JOIN img_likes AS il ON il.img_id = uu.imgID AND il.user_id = ?
                              INNER JOIN img_likes AS ilt ON ilt.img_id = uu.imgID
                              GROUP BY img_id, user_id
                              ORDER BY up_time DESC")) {
$stmt->bind_param('i', $id);
$Items = $stmt->execute(); // get photos

foreach ($Items as $ItemInfo) {

$liked = mysqli_num_rows($Items); // como hacerlo ahora?
$total_likes = mysqli_num_rows($Items);

$img_id = $aItemInfo['img_id'];

if ($liked == 0) {
$like = 'Me gusta';
}
else if ($liked == 1) {
$like = 'Ya no me gusta';
}

$photo_list .= '
// lista de fotos
// boton like
<span class="total_likes" id="lik' . $status_id . '">' . $totallikes . '</span>
<a id="' . $total_likes . '" class="likes">' . $like . '</a>
';
}
}


Si hay alguna forma mejor de hacer esto me gustaría saberla.

Gracias!
#89
PHP / [resuelto] imprimir lista con datos de db
7 Octubre 2014, 02:52 AM
Hola buenas! Estoy haciendo una lista que imprima informacion de varias tablas de una base de datos mysql. Estas son las tablas:

- account_type: tiene dos columnas: type (varchar, usada en la consulta) y bonus (int, imprimida en la lista).
- friends: de aqui necesito las columnas total y cashed_month1-12 (todas int)
- members: varias columnas: id y acc_type (usadas en la consulta), las demás columnas tambien son seleccionadas y se deberían de imprimir normal.

Lo que el siguiente script debería hacer sería lo siguiente:

Seleccionar de estas 3 tablas: friends.*, members.*, y account_type.* pero con la unica condición de INNER JOIN account_type ON account_type.type = members.acc_type

Código (php) [Seleccionar]
if(isset($_GET['id'], $_SESSION['user_id'])) {

/* prepare statement */
if ($stmt = $mysqli->prepare("SELECT COUNT(*) rowCount FROM friends WHERE friendID = ? AND userID = ?")) {
$stmt->bind_param('ii', $_GET['id'], $_SESSION['user_id']);
$stmt->execute();
/* bind variables to prepared statement */
$stmt->bind_result($rowCount);

/* fetch values */
if($stmt->fetch()) {
if ($rowCount > 0) {

$stmt->close();

if ($stmt = $mysqli->prepare("SELECT members.*, account_type.* FROM members INNER JOIN account_type ON account_type.type = members.acc_type
                                                                                               WHERE members.acc_type = ?")) {
$stmt->bind_param('s', $_SESSION['acc_type']);
$stmt->execute();

$result = $stmt->get_result();
$row = $result->fetch_array();


if ($row['status'] == 1) {
$status = 'Activa';
} elseif ($row['status'] == 0) {
$status = 'No Activa';
}

echo '<p>La cuenta esta ' . $status . ';

$monthNames = array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
$paid = array(); //Placeholder for paid months.

for ($i = 1; $i < 13; $i++) {
$month = 'month' . $i;
$cashed_month = 'cashed_month' . $i;
if($row[$month] == 1) {
$paid[] = 'Pagado';
$bonus[] = $row['bonus'] . '€';
} else {
$paid[] = 'No Pagado';
$bonus[] = 'n/a';
}
if ($row[$cashed_month] == 1) {
$cashed[] = 'Si';
} elseif ($row[$month] == 1) {
$cashed[] = 'No';
} else {
$cashed[] = 'n/a';
}
}

//Now make the HTML list

foreach($monthNames as $key => $month) {
echo '
<div class="list">
<ul>
<li><a class="month">' . $month . '</a></li>
<li><a class="status">' . $paid[$key] .'</a></li>
<li><a class="bonus">' . $bonus[$key] . '</a></li>
<li><a class="cashed">' . $cashed[$key] . '</a></li>
</ul>
</div>';
}

echo '<div class="clear"></div>';

echo '<p>Total recibido para ' . date('Y') . ': ' . $row['total'] . '€</p>';

echo '<a href="/friend">Volver</a>';

} else echo $mysqli->error;

} else{
echo $_SESSION['username'], ', no estás autorizado para ver la información de este socio ya que no es tu amigo...';
}
}
/* close statement */
$stmt->close();
} else echo $mysqli->error;
/* close connection */
$mysqli->close();
}


Pero no encuentro la manera de agregar esta tercera tabla sin necesidad de condicion, ya que si hago otro inner join con la tercera tabla, no funciona como es debido:

Por ejemplo, necesito trabajar con $row['bonus'] (tabla account_type) pero que sea el del usuario actual, no del otro (friendID). Si ambas cuentas (friendID y userID) tienen el mismo tipo de cuenta (acc_type) todo funciona, pero no todos las cuentas son iguales, entonces si cambio el acc_type del usuario logueado no funciona nada, es como si solamente se muestra información si ambas cuentas tienen el mismo tipo, y eso no debería ser así. Por eso no puedo juntar esta tercera tabla.

¿Es posible selecionar una tabla más sin ninguna condicion? Simplemente cogiendo toda la informacion sin más y en la misma sentencia preparada.

Gracias!
#90
Hola, tengo una pagina que muestra informacion de un usuario. Necesito protegerla para que no se pueda acceder a ella si no se cumplen dos requisitos, 1º estar logueado y 2º ser "amigo" de ese usuario.

Utilizo $_GET para saber la informacion que coger de la base de datos.

Hago un if para saber si esta definida la variable get y si el usuario está conectado, por ultimo compruebo si son amigos.

Código (php) [Seleccionar]
<?php

if(isset($_GET['id'], $_SESSION['user_id'])){
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n"mysqli_connect_error());
exit();
}

$id $_GET['id'];
$connectedUserID $_SESSION['user_id'];

/* prepare statement */
if ($stmt $mysqli->prepare("SELECT COUNT(*) rowCount FROM friends WHERE friendID = ? AND userID = ?")) {
$stmt->bind_param('ii'$id$connectedUserID);
$stmt->execute();
/* bind variables to prepared statement */
$stmt->bind_result($rowCount);

/* fetch values */
if($stmt->fetch()) {
if ($rowCount 0) {
// zona segura
echo 'It works!';
} else{
echo $_SESSION['username'], ', no estás autorizado para ver la información de este socio ya que no es tu amigo...';
}
}
/* close statement */
$stmt->close();
}
/* close connection */
$mysqli->close();
} else {
echo 'No estás autorizado para acceder a esta página';

if (login_check($mysqli) == false) {
echo '. Por favor, <a href="login">inicia sesión</a>.';
} else{
echo ' '.$_SESSION['username'];
}
}
?>


Me gustaría saber si es igual de seguro comprobar isset($_SESSION['user_id']) o hacer un login_check == true.

Gracias!