Problemas con Ajax en Google Chrome.
Por admin - Ajax, Programación - Jueves, 12 agosto 2010
Puede darse el caso que al ejecutar alguna actualización del navegador, o usando algún programa de limpieza del registro de nuestro ordenador deje de funcionar el AJAX en nuestro navegador Google Chrome. Esto significará que no podremos usar Gmail, etc … Para solucionarlo bastaría con seguir estos sencillos pasos:
- Salimos del Chrome y localizamos la carpeta local del programa.
- C:\Documents and Settings\{usuario}\Configuración local\Datos de programa\Google\Chrome\User Data\Default
- Borramos la carpeta llamada “Cache” e iniciamos el programa.
- Solucionado.
Estilando checkbox de formularios usando jQuery+CSS
Por admin - Ajax, Programación, jQuery - Sábado, 8 mayo 2010
Estilar nuestros checkbox en formularios se puede hacer facil usando jQuery. Partiendo de una lista de opciones en formato HTML, un SPRITE para el rollover del estado del checkbox y un poquito de código en jQuery y ya podremos tener unos checkbox de lo mas originales para todos los formularios que desemos utilizar. Con un poquito de imaginación y retocando el sprite y la hoja de estilos podremos darle otra apariencia mas acorde a lo que estemos buscando.
El ejemplo en cuestión tiene dispnibles 3 set disponibles para elegir. Adjunto el PSD con el SPRITE que ha creado el autor para el intercambio de imagen cuando hacemos click en el checkbox. Podéis retocarlo a vuestro gusto o también es posible crear uno de cero tirando de imaginación.
Los métodos y eventos de JQuery que se han usado para crear este ejemplo son los siguientes:
- click(): evento usado para cuando hacemos click con el ratón.
- parent(): Consigue el padre del elemento que seleccionemos.
- addClass() y removeClass(): método muy útil en este ejemplo para asignar o remover clases.
- attr() y removeAttr(): método para conseguir o remover atributos.
- preventDefault(): alterar comportamientos.
- find(): método que nos permitirá encontrar algo en concreto.
- fadeIn() y fadeOut(): son métodos para ocultar o mostrar elementos usando transparencias.
Fuentes:
http://aaronweyenberg.com/90/pretty-checkboxes-with-jquery
http://combinedartsmedia.com/sean/check-boxes_and_radio-buttons/
refresh & reload + setInterval con ajax y jQuery
Por admin - Ajax, Programación, jQuery - Domingo, 25 abril 2010
Frecuentemente a la hora de programar necesitamos refrescar y cargar contenido en una capa y que ejecute un fichero cada x segundos. Esta práctica es muy útil en chats, blogs, e-commerce, cms, etc … El siguiente ejemplo actualiza el contenido de una capa cada 10 segundos y carga en ella el contenido del fichero que le indiquemos. El efecto de fundido usando fadeOut y fadeIn es para darle más dinamismo al script.
<script>
function actualizar(){
$('#capa').fadeOut("slow").load('fichero.php').fadeIn("slow");
}
setInterval( "actualizar()", 10000 );
</script>
<div id="capa"></div>
click aquí para ver una pequeña demostración.
Tenéis más documentación de los métodos y funciones usados en el ejemplo a continuación. Haz click en los enlaces para obtener más información:
- .load() es el método de JQuery usado para cargar los datos desde servidor y la cual nos retornará los resultados en formato HTML.
- fadeOut() es un método de jQuery para ocultar elementos usando transparencias.
- fadeIn() es un método de jQuery para mostrar elementos usando transparencias.
- setInterval es una función JavaScript que nos permitirá ejecutar una función cada X segundos que le indiquemos.
Eliminando registros duplicados de una tabla SQL usando DISTINCT ó GROUP BY.
DISTINCT es una palabra clave que usamos e nuestras consultas SQL para eliminar filas duplicadas.
SELECT DISTINCT columna FROM tabla
Ahora bien si queremos eliminar los registros duplicados de una tabla y copiarlos en una nueva podremos hacerlo con la palabra clave DISTICT o la cláusula GROUP BY que suele tener menos BUGS que la primera.
Opción 1: CREATE TABLE nueva_tabla AS SELECT DISTINCT columna FROM tabla; Opcion 2: CREATE TABLE nueva_tabla AS SELECT * FROM tabla GROUP BY (id);
Eliminamos la tabla con los registros duplicados:
DROP TABLE tabla;
Renombramos la nueva tabla por el nombre de la que ya teníamos:
RENAME TABLE tabla_nueva TO tabla;
Creando un Script en PHP para chequear IPs en Listas negras (Blacklist)
Por admin - Firewall, Linux, PHP, Programación - Lunes, 14 septiembre 2009
Una lista negra (black list) es una lista donde se registran direcciones IPs que generan SPAM ya sea de forma voluntaria o involuntaria. Estas listas aunque las hay de pago suelen ser libres y cualquiera puede añadir una IP inocente de manera malintencionada por lo que también podemos solicitar ser removidos de ellas si hemos sido incluidos.
Tanto chequear diferentes tipos de webs con listas negras he decidido crear este pequeño Script en PHP que nos será de utilidad ya que comprueba una lista personalizada de Black List y nos devuelve el resultado en pantalla o a un email si se lo indicamos. Es totalmente personalizable y muy sencillo de modificar.
if ($_POST['ip']) { $ip = $_POST['ip']; }
function blacklist($ip) {
$dnsbl=array("b.barracudacentral.org"=>"",
"bl.deadbeef.com"=>"",
"bl.emailbasura.org"=>"",
"bl.spamcannibal.org"=>"",
"bl.spamcop.net"=>"Blacklist de Spamcop",
"blackholes.five-ten-sg.com"=>"",
"blacklist.woody.ch"=>"",
"bogons.cymru.com"=>"",
"cbl.abuseat.org"=>"Composite Blocking List)",
"cdl.anti-spam.org.cn"=>"",
"combined.abuse.ch"=>"",
"combined.rbl.msrbl.net"=>"",
"db.wpbl.info"=>"",
"dnsbl-1.uceprotect.net"=>"",
"dnsbl-2.uceprotect.net"=>"",
"dnsbl-3.uceprotect.net"=>"lista de pago",
"dnsbl.ahbl.org"=>"",
"dnsbl.cyberlogic.net"=>"",
"dnsbl.inps.de"=>"",
"dnsbl.njabl.org"=>"",
"dnsbl.sorbs.net"=>"rangos dinámicos",
"drone.abuse.ch"=>"",
"drone.abuse.ch"=>"",
"duinv.aupads.org"=>"",
"dul.dnsbl.sorbs.net"=>"rangos dinámicos",
"dul.ru"=>"",
"dyna.spamrats.com"=>"rangos dinámicos",
"dynip.rothen.com"=>"",
"fl.chickenboner.biz"=>"",
"http.dnsbl.sorbs.net"=>"",
"images.rbl.msrbl.net"=>"",
"ips.backscatterer.org"=>"",
"ix.dnsbl.manitu.net"=>"",
"korea.services.net"=>"Block Asian spam (Korea)",
"misc.dnsbl.sorbs.net"=>"",
"noptr.spamrats.com"=>"",
"ohps.dnsbl.net.au"=>"",
"omrs.dnsbl.net.au"=>"",
"orvedb.aupads.org"=>"",
"osps.dnsbl.net.au"=>"",
"osrs.dnsbl.net.au"=>"",
"owfs.dnsbl.net.au"=>"",
"owps.dnsbl.net.au"=>"",
"phishing.rbl.msrbl.net"=>"",
"probes.dnsbl.net.au"=>"",
"proxy.bl.gweep.ca"=>"",
"proxy.block.transip.nl"=>"",
"psbl.surriel.com"=>"Passive Spam Block List",
"rbl.interserver.net"=>"",
"rdts.dnsbl.net.au"=>"",
"relays.bl.gweep.ca"=>"",
"relays.bl.kundenserver.de"=>"",
"relays.nether.net"=>"",
"residential.block.transip.nl"=>"rangos dinámicos",
"ricn.dnsbl.net.au"=>"",
"rmst.dnsbl.net.au"=>"",
"short.rbl.jp"=>"",
"smtp.dnsbl.sorbs.net"=>"",
"socks.dnsbl.sorbs.net"=>"",
"spam.abuse.ch"=>"",
"spam.dnsbl.sorbs.net"=>"",
"spam.rbl.msrbl.net"=>"",
"spam.spamrats.com"=>"",
"spamlist.or.kr"=>"",
"spamrbl.imp.ch"=>"",
"t3direct.dnsbl.net.au"=>"",
"tor.ahbl.org"=>"",
"tor.dnsbl.sectoor.de"=>"",
"torserver.tor.dnsbl.sectoor.de"=>"",
"ubl.lashback.com"=>"Tracking Unsubscribe Abuse",
"ubl.unsubscore.com"=>"",
"virbl.bit.nl","virus.rbl.jp"=>"",
"virus.rbl.msrbl.net"=>"",
"web.dnsbl.sorbs.net"=>"",
"wormrbl.imp.ch"=>"",
"sbl.spamhaus.org"=>"Spamhaus Block List",
"xbl.spamhaus.org"=>"Spamhaus Exploits Block List",
"pbl.spamhaus.org"=>"Spamhaus Policy Block List",
"zen.spamhaus.org"=>"Spamhaus (Combinación Spamhaus)",
"zombie.dnsbl.sorbs.net"=>"",
"1.apews.org"=>"Anon. Postmasters Early Warning System",
"2.apews.org"=>"Anon. Postmasters Early Warning System",
"bulk.rhs.mailpolice.com"=>"domains",
"porn.rhs.mailpolice.com"=>"pornograf sites",
"fraud.rhs.mailpolice.com"=>"phising",
"block.rhs.mailpolice.com"=>"bulk y fraud",
"dynamic.rhs.mailpolice.com"=>"dinamicas",
"adv.rhs.mailpolice.com"=>"email marketing",
"webmail.rhs.mailpolice.com"=>"webmails services",
"adult.rhs.mailpolice.com"=>"adult sites, blogs etc",
"redir.rhs.mailpolice.com"=>"sites redirigidos");
if ($_POST['ip']) {
$parte=explode(".",$ip);
$rip=$parte[3].".".$parte[2].".".$parte[1].".".$parte[0];
foreach ($dnsbl as $key=>$value){
if (checkdnsrr($rip.".".$key . '.',"A")) { $lista[]=$key." - ".$value; }
}
echo "<ul>";
foreach ($lista as $server){
echo "<li>".$server."</li>";
$bl .= $server."\n";
}
echo "</ul>";
# ---------------------------------------------
# - enviamos un reporte a un email.
if ($_POST['report'] == "on") {
$email = "su@email";
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
$headers .= "From: $email \r\n";
$asunto = "Report Blacklist: $ip";
$txt = "La ip $ip esta listada en:\n\n".$bl;
mail($email, $asunto, $txt, $headers);
} # fin reporte
# ---------------------------------------------
} # fin if
} // fin funcion listas negras
if ($_POST['ip']) {
echo "Su IP: <strong>".getenv('REMOTE_ADDR')." </strong>esta en las siguientes listas negras:<p />";
echo blacklist($ip);
}
El formulario en HTML quedaría de la siguiente forma:
<form method="post"> <input name="ip" type="text" /> <input name="report" type="checkbox" /> Enviar reporte por email. <input type="submit" value="Comprobar" /> </form>
Para una demo del script:
http://www.artegrafico.net/laboratorio/php/blacklist.php