Recursos de fin de semana (II)

Con un poco de retraso llegan los recursos de fin de semana para los que no dejan de trabajar ni domingos:

Que les sirva ;)

Controles Personalizados en ASP.NET

En esta oportunidad quiero mostrar un ejemplo sencillo de como realizar un control personalizado, éste simplemente va a extender el control TextBox que trae el .NET Framework, haciendo que sólo acepte valores definidos en una expresión regular.

Continue reading

Client does not support authentication protocol requested by server

Siempre que hago una nueva instalación de MySQL, y entro por phpMyAdmin para administrar mi base de datos me encuentro con el siguiente error:

#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client

Esto sucede porque a partir de la versión 4.1.1 MySQL usa un protocolo de autenticación basada en un algoritmo de encriptación de passwords y ya no se puede entrar como estabamos acostumbrados los usuarios antiguos.

Podemos solucionar este problema fácilmente con los siguiente pasos (Para el ejemplo estoy usando MySQL 4.1.12a-nt y Windows XP con Service Pack 2):

  1. Entramos por consola a la carpeta de MySQL y escribimos: mysql -u root -p, donde root es el usuario principal de MySQL nos pedirá que ingresemos la contraseña, en mi caso es 'mysql'.

  2. Ahora vamos a "actualizar" la contraseña de root, para eso escribimos:

    SQL:
    SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('mysql');
    donde root es el usuario con el cual quiero usar la antigua forma de autenticación, localhost es el nombre de mi servidor de base de datos y 'pass' es la contraseña que quiero usar (Si tenemos mas usuarios, debemos hacer lo mismo por cada usuario; es decir si tuviera algun usuario llamado 'valois' tendría que escribir SET PASSWORD FOR 'valois'@'localhost' = OLD_PASSWORD('PasswordDeValois'); y lo mismo para otros usuarios).

    Inicio de sesión en MySQL y actualización de contraseña

  3. Listo :)

Eso es todo, despues de eso podremos entrar sin problemas a administrar nuestra base de datos; sea por consola, phpMyAdmin o cualquier herramienta, cualquier duda ya saben donde molestarme.

Como salir de beta al estilo Microsoft, WTF!

Comentábamos con Alex como Microsoft terminaba la fase beta de Windows Custom Domains y al cargar la página gracias a mi conexión lenta vi unas letras rojitas que decían "Beta", las cuales desaparecieron misteriosamente después, mi curiosidad me llevó a ver el código fuente y encontré esto:

Como salir de Beta

Si asi de fácil terminan las betas, estamos seguros que pronto también estará listo IE7 ;).

Internet Explorer 7 Beta 3

Acaba de salir una beta más de Internet Explorer, esta vez trae algunas novedades entre ellas: nuevos íconos, posibilidad de ordenar las pestañas, autentificación FTP y otras mas.

Stefano Demiliani ha bautizado a esta última beta como IE-Zilla, pero creo que eso todos ya lo sabíamos :P, supongo que cuando salga la versión final yo ya me habré jubilado. Si quieres probarlo te dejo los enlaces:

Recursos de fin de semana

Les dejo algunos enlaces interesantes para poder leer este fin de semana:

PHPMailer con GMail

En un hilo publicado en forosdelweb, en el que un usuario desea utilizar el servidor SMTP de GMail para enviar correos usando PHPMailer, hacen referencia a esta interesante entrada que sirve justamente para lo antes mencionado.

Hice algunos cambios en class.phpmailer.php (línea 537) para separar correctamente el host y el puerto cuando se tienen cosas como $mail->Host = 'ssl://smtp.gmail.com:465';, estos cambios se hicieron debido a que GMail usa SSL/TLS como protocolo de comunicación/autenticación.

php:
# Original
if(strstr($hosts[$index], ":"))
        list($host, $port) = explode(":", $hosts[$index]);
else
{
        $host = $hosts[$index];
        $port = $this->Port;
}
php:
# Modificación
if (preg_match('#(([a-z]+://)?[^:]+):(\d+)#i', $hosts[$index], $match))
{
        $host = $match[1];
        $port = $match[3];
}
else
{
        $host = $hosts[$index];
        $port = $this->Port;
}

Página de prueba:

php:
<?php

require_once 'class.phpmailer.php';

$mail = new PHPMailer ();

$mail -> From = "foo@gmail.com";
$mail -> FromName = "Foo";
$mail -> AddAddress ("bar@domain.com");
$mail -> Subject = "Test";
$mail -> Body = "<h3>From GMail!</h3>";
$mail -> IsHTML (true);

$mail->IsSMTP();
$mail->Host = 'ssl://smtp.gmail.com';
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = 'foo@gmail.com';
$mail->Password = '******';

if(!$mail->Send()) {
        echo 'Error: ' . $mail->ErrorInfo;
}
else {
{       echo 'Mail enviado!'.
}

?>
 

Nota: Para hacerlo funcionar es necesario que la extensión OpenSSL esté habilitada.

Archivos relacionados