Blog de darkchicles ¬¬

Archivo de Autor

FLISOL 2011 en UPIICSA y tu escritorio Linuxero

 

image
Se acerca peligrosamente la fecha … FLISOL 2011, donde la comunidad de software libre se reúne para difundir tecnología asociada al mismo, su objetivo principal es promover el uso de software libre, y UPIICSA participara de forma activa, la cita es:

Viernes 8 de abril a partir de las 9am y hasta las 6pm
UPIICSA
Edificio de Culturales.

 

Para mas detalles visiten el siguiente link: http://www.installfest.net/FLISOL2011/Mexico/UPIICSA

*A mi parecer hay dos temas muy interesantes que atender en la FLISOL UPIICSA 2011 (-Detección de arp-poisoning -Hardware libre en México )

 

desktop-1024x640

 

Ese mismo día el buen Alex por parte de foroupiicsa.net organiza un pequeño concurso en el cual pone a prueba el espíritu linuxero😛. Si quieres conocer las bases del concurso “Escritorios Linuxeros” así como los premios visita el siguiente link: http://foroupiicsa.net/?p=549

 

Y pues…. ya….. ponte a jugar…. libre!

Via | upiicsalibre.org & foroupiicsa.net

Fatal error: Call to undefined function oci_pconnect()

En un Escenario de PHP 5 trabajando con Oracle 9 , si de forma inexplicable (fantasmal) deja de funcionar OCI8, entonces… tienes un problema😄.

Este error suele ocurrir por que algún programa recientemente instalado, modifica las variables de entorno, para solucionarlo podemos modificar las variables de entorno de forma manual.

 

path

 

 

Botón Secundario en Mi PC –> Propiedades de sistema –> Pestaña Opciones avanzadas –> Clic en Botón Variables de entorno.

Editaremos la variable llamada PATH dando doble clic sobre ella.

 

 

 

 

Agregaremos al final de “valor de variable” -> ;C:\instantclient_10_2\

La línea que agregamos corresponde al directorio donde se instalo Instant client de Oracle (en nuestro caso se descomprimió directamente en C:\ ), recuerda sustituir este directorio según sea tu caso.

Damos clic en Aceptar , de nuevo Aceptar y para que los cambios se apliquen, reiniciamos el equipo.

 

*Nota:

Ojo con el ; que se antepone a la dirección.

Si lo que buscas es como lograr la conexión de PHP 5 con Oracle 9 visita el siguiente post (pronto)

 

Via | Sue

Donde guarda los sitios Filezilla

filezilla

Vallamos al grano, los sitios se guardan en archivos XML, simples y sin cifrar en la ruta:

Windows:

   1: C:\Documents and Settings\Usuario\Datos de programa\FileZilla\sitemanager.xml
   2: C:\Documents and Settings\Usuario\Datos de programa\FileZilla\recentservers.xml

Linux:

   1: /home/usuario/.filezilla/sitemanager.xml
   2: /home/usuario/.filezilla/recentservers.xml

Y con esto, “lloro amargamente” por que en las etiquetas XML esta mi nombre de usuario contraseña en texto plano (yo que te recomendaba tanto al amigo Filezilla) :

   1: <Server>
   2:             <Host>ftp.darkchicles.com</Host>
   3:             <Port>21</Port>
   4:             <Protocol>0</Protocol>
   5:             <Type>0</Type>
   6:             <User>darkchicles</User>
   7:             <Pass>MyPassword</Pass>
   8:             <Logontype>1</Logontype>
   9:             <TimezoneOffset>0</TimezoneOffset>
  10:             <PasvMode>MODE_DEFAULT</PasvMode>
  11:             <MaximumMultipleConnections>0</MaximumMultipleConnections>
  12:             <EncodingType>Auto</EncodingType>
  13:             <BypassProxy>0</BypassProxy>
  14:         </Server>

 

De buenas y primeras, ¡que felicidad!… así me los puedo trasportar en mi USB y consultar los password cuando se me olvide, todo de forma fácil y rápida.

Pero hablando de seguridad…. que… seguridad…. ¿Cual? … ninguna.

Referencia | Seguridad en Filezilla

Filtros de búsqueda con jQuey

Gracias a mi amigo Rodrigo, he conseguido recopilar algunos “plugs” en jQuery para realizar búsquedas y filtros, a continuación los muestro:

Filtrar un Gridview con Jquery

image

 

Una estupenda explicación de como crear tu propia búsqueda con jQuery, bastante fácil y entendible. Tiene un pequeño detalle con Internet Explorer pero es fácil de corregir😉 (lee los comentarios")

URL: http://geeks.ms/blogs/gperez/

DEMO: Ver demo

Quicksearch

image 

Filtra ya sea por tabla completa ó bien por columna especifica, cuenta con un pequeño “loadig” y es personalizable para mostrar los resultados, además es sencillo de entender. Con una gran extensión de registros, llega a ser lento y hasta podría trabar tu explorador.

URL: http://lomalogue.com/jquery/quicksearch/

DEMO: http://lomalogue.com/jquery/quicksearch/super_table.html

TableFilter-0.2

image 

Este filtra al puritito estilo Excel, filtra por columna, a mi parecer bastante sencillo, pero tiene poca documentación y explicaciones, si te gusta investigar  y ver código adelante.

URL: http://blog.stekl.org/2009/12/nueva-version-plugin-jquery-para-filtrar-contenido-tablas/

DEMO:http://stekl.org/stuff/jqueryTableFilter-0.2/

 

Datatables jQuery

image

Este ultimo cuenta con paginación y contador de registros al momento de filtrar, su código fuente es un poco mas avanzado, como quien diría; es de bájame y úsame.

URL: http://www.datatables.net/

DEMO: http://www.datatables.net/

Enviar correo electrónico con PHP – PHPMailer

Si, alguna vez necesitamos enviar un correo electrónico con PHP, gracias a la recomendación de http://twitter/ivonsue conocí una librería de PHP, llamada PHPMailer; la cual facilita en definitivo el envió de email con PHP; entre sus características tenemos:

  • La opción de enviar datos adjuntos.
  • Elegir Servidor SMTP.
  • Tipo de Seguridad SMTP.
  • Cuerpo del mensaje personalizado con HTML.
  • Cuenta a la que se responderá el email.
  • etc…

En fin, sus bondades son muchas, pasemos a lo que nos importa.

Crear pagina PHP que envié correo utilizando una cuenta de terra.com.mx

1.- Nos creamos una cuenta en terra.com.mx especialmente para enviar correos desde allí.

2.- Bajamos la librería de PHPMailer de aqui

3.- Levantamos nuestro servidor ( en este caso utilizo XAMPP ).

4.- Creamos un archivo php con lo siguiente:

   1: <?php
   2:     require("class.phpmailer.php");
   3:     $mail             = new PHPMailer();
   4:     $mail->IsSMTP();
   5:     $mail->SMTPAuth   = true;
   6:     //$mail->SMTPSecure = "ssl";
   7:     $mail->Host       = "smtp.terra.com.mx";
   8:     $mail->Port       = 587;
   9:     $mail->Username   = 'micorreodeterra@terra.com.mx';
  10:     $mail->Password   = "myPassWord";
  11:     //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  12:     //====== DE QUIEN ES ========
  13:     $mail->From       = "micorreodeterra@terra.com.mx";
  14:     $mail->FromName   = "Mi Nombre";
  15:     $mail->AddAttachment("images/foto.jpg", "foto_regalo.jpg"); //Archivo adjunto
  16:     //====== PARA QUIEN =========
  17:     $mail->Subject    = "Test Mail";
  18:     $mail->AddAddress("juanscutiaa@terra.com.mx","Para ti juan");
  19:     $mail->AddAddress("albertinn@hotmail.com","Para ti alberto");
  20:     
  21:     //Cuerpo del mensaje
  22:     $mail->Body      = "HOLA ESTO ES UNA PRUEBA";
  23:     $mail->Send();
  24: ?>

5.- Colocamos nuestro archivo php en la misma carpeta que los archivos class.phpmailer.php y class.smtp.php que descargamos de la pagina de phpMailer.

image

6.- Para probar nuestra pagina basta con abrir nuestro explorador e ingresar la dirección de nuestra pagina que acabamos de hacer.

«Por ultimo me gustaría explicar un poco el código de la pagina para no dejar alguna duda, a mi parecer es bastante sencillo pero quien sabe😉 »

En la línea:

   1: require("class.phpmailer.php");

Simplemente “importamos” los métodos necesarios de la clase phpmailer

 

En la línea:

   1: $mail             = new PHPMailer();

Creamos un objetos de tipo PHPMailer, para poder interactuar con sus

métodos.

En las líneas:

   1: $mail->IsSMTP();
   2:     $mail->SMTPAuth   = true;
   3:     //$mail->SMTPSecure = "ssl";
   4:     $mail->Host       = "smtp.terra.com.mx";
   5:     $mail->Port       = 587;
   6:     $mail->Username   = 'micorreodeterra@terra.com.mx';
   7:     $mail->Password   = "myPassWord";

Configuramos el SMTP de terra.com.mx 😉 colocamos los datos de nuestra cuenta de terra.

En las líneas:

   1: //====== DE QUIEN ES ========
   2: $mail->From       = "micorreodeterra@terra.com.mx";
   3: $mail->FromName   = "Mi Nombre";
   4: $mail->AddAttachment("images/foto.jpg", "foto_regalo.jpg"); //Archivo adjunto
   5: //====== PARA QUIEN =========
   6: $mail->Subject    = "Test Mail";
   7: $mail->AddAddress("juanscutiaa@terra.com.mx","Para ti juan");
   8: $mail->AddAddress("albertinn@hotmail.com","Para ti alberto");

Configuramos departe de quien es el correo y si deseamos agregar algun archivo adjunto como en este caso una foto que se encuentra en la carpeta images, entonces haremos uso del método AddAttachment , de igual forma colocamos el Asunto del mensaje y los distintos destinatarios, si deseamos agregar mas destinarios simplemente lo hacemos con el método AddAddress.

Ya por ultimo en las líneas:

   1: //Cuerpo del mensaje
   2:     $mail->Body      = "HOLA ESTO ES UNA PRUEBA";
   3:     $mail->Send();

Escribimos el cuerpo del mensaje –>Body y enviamos el correo con –> Send()

Si desean tener una mayor seguridad de que el correo se envió correctamente pueden agregar una condición de la siguiente forma:

   1:  
   2: if($mail->Send()) {
   3: echo "Mensaje enviado correctamente";
   4: } else {
   5: echo "Error al enviar mensaje: " . $mail->ErrorInfo;
   6: }

Si todo sale correctamente ustedes verían el correo algo similar a esto:

image

*Es muy importante tomar en cuenta que este ejemplo es inseguro ya que al dejar en “texto plano” la contraseña de la cuenta, esta podría ser leída con facilidad.

Gracias Sue:)

Descargar archivos fuentes

 

Update: 21-Marzo-2011

Si desean agregar un mensaje que acompañe el mail, basta con agregar las siguientes líneas:

   1: $htmlBody = "<html><head><title>HTML Email</title></head><body>
<br /><h2>Titulo</h2><p>Esto es un link
<a href=\https://darkchicles.wordpress.com\
title=\"Blog darkchicles\">Da clic para visitar el blog</a>
Tu puedes colocar etiquetas html como lo quieras</p>"
;

   2:  

   3:    $mail->Body=$htmlBody;

   4:    $mail->isHTML(true);

Body, es el cuerpo del mail, allí podremos ocupar código html.

 

Mas info:

Uso de la clase PHPMailer

PHP Mailer Tutorial (en ingles)

Enviar email con PHPMailer utilizando tu cuenta de Gmail

Otro ejemplo para enviar correos con PHPMailes desde tu propio smtp

Configurar Outlook 2007 con cuenta de hotmail

PHPM@iler: http://phpmailer.worxware.com/

Cifrar password con javascript

La  seguridad en nuestras aplicaciones web es esencial, por lo que almacenar un registro con el campo de contraseña en texto plano es una debilidad en nuestro sistema.

Para cifrar nuestros passwords podemos usar “algoritmos de cifrado no reversibles” como es md5 o SHA-1 , los lenguajes de programación tiene funciones predefinidas, como:

1295149174_application-pgp-signature

 

PHP –> SHA1 | MD5

JAVA –> SHA1 | MD5

 

 

Todas estas funciones se ejecutan del lado del servidor, pero que pasa si necesitamos cifrar el password del lado del cliente. Pues para eso podemos utilizar una función en JavaScript para cifrar.

Utilizaremos una librería de JavaScript ( ojo: es “BSD License” )  y aunque esta en su modo Beta, funciona bastante bien, la podemos descargar de aqui .

Para nuestro ejemplo primero, descargaremos el archivo que contiene las funciones en JavaScript  (carpeta: jshash-2.2) enseguida crearemos un archivo HTML de la siguiente forma:

   1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

   2: <html xmlns="http://www.w3.org/1999/xhtml">

   3: <head>

   4: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

   5: <title>Documento sin título</title>

   6: </head>

   7: <script src="jshash-2.2/sha1.js" type="text/javascript"></script>

   8:  

   9:  

  10: <body>

  11: <form id="form1" name="form1" method="post" action="">

  12:   <p>

  13:     <label for="Password"></label>

  14:     Password Natural:

  15:     <input type="text" name="Password" id="Password" />

  16:     <input type="button" name="encripta" id="encripta" value="Encripta" onClick="psw_pass.value = hex_sha1(Password.value);" />

  17:   </p>

  18:   <p>Password Encript:

  19:     <label for="psw_pass"></label>

  20:     <input type="text" name="psw_pass" id="psw_pass" />

  21:   </p>

  22: </form>

  23: </body>

  24: </html>

Como podemos observar que incluimos la librería sha1.js

   1: <script src="jshash-2.2/sha1.js" type="text/javascript"></script>

La forma de utilizarlo es:

   1: onClick="psw_pass.value = hex_sha1(Password.value);"

Así de fácil:) , pero para que quede mas claro dejo los archivos fuentes:

Archivo_zipDescargar

 

Fuente:

http://pajhome.org.uk/crypt/md5

Unos post divertidos sobre C# en Visual Studio:

http://developersdotnet.com/blogs/marcos/archive/2007/06/05/criptograf-237-a-algoritmos-asim-233-tricos.aspx

Días Hábiles con Java ( Quitar sábados y domingos )

Este es un ejemplo muy sencillo para calcular cuantos días hábiles existen entre un rango de fechas:

   1: <%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
   2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   3: <%@ page import="java.util.Calendar"%>
   4: <%@ page import="java.util.Date" %>
   5: <%@ page import="java.util.GregorianCalendar"%>
   6: <html xmlns="http://www.w3.org/1999/xhtml">
   7: <head>
   8: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   9: <title>Documento sin t&iacute;tulo</title>
  10: </head>
  11:  
  12: <body>
  13: <%
  14: /**
  15:      * 
  16:      * @param fechaInicial
  17:      * @param fechaFinal
  18:      * @return dias habiles
  19: */
  20: //public int getDiasHabiles(Calendar fechaInicial, Calendar fechaFinal) {
  21: Calendar fechaInicial = new GregorianCalendar(2011,1-1,01);
  22: Calendar fechaFinal= new GregorianCalendar(2011,1-1,31);
  23:  
  24:         int diffDays= 0;
  25:  
  26:     //mientras la fecha inicial sea menor o igual que la fecha final se cuentan los dias
  27:     while (fechaInicial.before(fechaFinal) || fechaInicial.equals(fechaFinal)) {
  28:  
  29:                 //si el dia de la semana de la fecha minima es diferente de sabado o domingo
  30:                 if (fechaInicial.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY && fechaInicial.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY) {
  31:                     //se aumentan los dias de diferencia entre min y max
  32:                     diffDays++;
  33:                 }
  34:                 //se suma 1 dia para hacer la validacion del siguiente dia.
  35:                 fechaInicial.add(Calendar.DATE, 1);
  36:  
  37:             }
  38:  
  39:        //   return diffDays;
  40:         out.print(diffDays);
  41:  
  42: //    }
  43: %>
  44: </body>
  45: </html>

 

Descarga el código:

imageDescarga

Fuente:

http://godieboy.com/2010/10/obtener-dias-habiles-entre-2-fechas-en-java.html

Mas recursos:

http://www.bit-net.org/java/ud6.html

http://rnt.sectur.gob.mx/rnt/interno/verificacion/DiasHabiles.java

Nube de etiquetas

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.