miércoles, 26 de enero de 2011

Copiar imagen desde url

Posted by Jordi 3:05, under ,,, | No comments

function upload_url($image_url, $image_destination)
{
if ($l = fopen($image_destination, 'w'))
{
if (fwrite($l, file_get_contents($image_url)))
return true;
else
return false;
}
else
return false;
}


Modo de uso 1:
Código PHP:

upload_url('http://www.psicofxp.com/blog/wp-content/themes/bubbleboy/images/logo_blog.png', 'imagen.png');

Modo de uso 2:
Código PHP:

if (upload_url('http://www.psicofxp.com/blog/wp-content/themes/bubbleboy/images/logo_blog.png', 'imagen.png'))
{
echo "La imagen fue obtenida correctamente";
}
else
{
echo "Ha habido un error obteniendo la imagen";
}

lunes, 19 de julio de 2010

Deshabilitar teclado en un input y solo permitir números

Con un pequeño script realizaremos esta función que nos viene perfecto para formularios con campos como teléfono, fax, código postal..

En primer lugar escribiremos el siguiente texto preferiblemente dentro de las etiquetas <**head>:

<**script type="text/javascript">
function validar(e) {



tecla = (document.all) ? e.keyCode : e.which;
if (tecla==8) return true; //Tecla de retroceso (para poder borrar)
if (tecla==44) return true; //Coma ( En este caso para diferenciar los decimales )
if (tecla==48) return true;
if (tecla==49) return true;
if (tecla==50) return true;
if (tecla==51) return true;
if (tecla==52) return true;
if (tecla==53) return true;
if (tecla==54) return true;
if (tecla==55) return true;
if (tecla==56) return true;
patron = /1/; //ver nota
te = String.fromCharCode(tecla);
return patron.test(te);
}

y por último dentro de las etiquetas <**body> escribimos lo siguiente:

<**input name="telefono" value="" onKeyPress="return validar(event)" maxlength="9" /**>

Enviar email por SMTP con PHP.

Posted by Jordi 4:38, under ,,,, | No comments

Hoy trabajando me surgió una pequeña duda. Como enviar emails desde mi código PHP de forma segura y que el cliente lo pueda recibir sin que su servidor lo retubiera por "malicioso" o "spam".
Buscando, buscando encontré una libreria que ejecuta a la perfección mi duda.

La función mail() de PHP ya se está quedando algo obsoleta. La mayoría de servidores ya retienen estos emails por malicioso ( era una forma muy útil de hacer spam sin contemplaciones ) y el servidor que los deja pasar ( como gmail ) te los mueve a la carpeta de spam ( evidentemente eso no es lo que queremos ).

Para solucionar este problema, usaremos la libreria Zend. Con esta librería y un pequeño script podemos enviar emails autentificándonos vía SMTP.

Para empezar creamos una clase : sendemail.php

include("Zend/Mail.php");
include("Zend/Mail/Transport/Smtp.php");

class sendEmail{

private $addTo;

/**
* Nombre de destino
*
* @var string
*/
private $nameTo;

/**
* Titulo del email
*
* @var string
*/
private $subject;

/**
* Cuerpo del mensaje
*
* @var string
*/
private $body;

/**
* Enviar email
*
* @param string $addTo
* @param string $nameTo
* @param string $subject
* @param string $body
*/
public function sendDetails($addTo, $nameTo, $subject, $body){

$config = array('auth' => 'login',
'username' => 'USUARIO',
'password' => 'CLAVE');

$transport = new Zend_Mail_Transport_Smtp('HOST', $config);

$mail = new Zend_Mail();
$mail->setBodyText($body);
$mail->setFrom('EMAIL-DE', 'NOMBRE');
$mail->addTo($addTo, $nameTo);
$mail->setSubject($subject);
$mail->send($transport);

}
}
?>

Se debe editar previamente nuestro:
HOST: nombre del servidor SMTP
USUARIO: Nombre del usuario para conectar al servidor SMTP
CLAVE: Clave del usuario para conectar al servidor SMTP
NOMBRE: Nombre que aparecerá en el correo
EMAIL-DE: Email que aparecerá al usuario, de donde proviene el correo.

La usamos de la siguiente forma index.php

include("sendemail.php");

$email = new sendEmail();
$email->sendDetails($addTo, $nameTo, $subject, $body);
?>

Donde:
$addTo: Email del destinarario.
$nameTo: Nombre del destinatario
$subject: Asunto del mensaje
$body: Cuerpo del mensaje.