PHP — Sin comentarios
16
Mar 10
Una función muy útil para poder generar una contraseña aleatoria para un usuario.
<?php
function generate_password( $length = 8 ) {
$chars = "abcdefghijklmnopqrstuvwxyz0123456789";
for( $i=0; $i<$length; $i++ ) {
$pos = rand( 0, 36 );
$pass .= $chars{$pos};
}
return( $pass );
}
?>
PHP — Sin comentarios
09
Mar 10
Leo en kabytes (un blog más que recomendado) una utilidad para encriptar el email en webs para robots curiosos con una función bastante simple y eficiente con php que genera javascript.
El uso en bien sencillo
<?php echo( hide_email('test@test.com') ); ?>
Hace uso de la función:
function hide_email( $email ) {
$character_set = '+-.0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ' . '_abcdefghijklmnopqrstuvwxyz';
$key = str_shuffle($character_set); $cipher_text = ''; $id = 'e'.rand(1,999999999);
for ($i=0;$i<strlen($email);$i+=1)
$cipher_text.= $key[strpos($character_set,$email[$i])];
$script = 'var a="'.$key.'";var b=a.split("").sort().join("");var c="'.$cipher_text.'";var d="";';
$script.= 'for(var e=0;e<c.length;e++)d+ = b.charAt(a.indexOf(c.charAt(e)));';
$script.= 'document.getElementById("'.$id.'").innerHTML = "<a href=\\"mailto:"+d+"\\">"+d+"</a>"';
$script = "eval(\"".str_replace(array("\\",'"'), array("\\\\",'\"'), $script)."\")";
$script = '<script type="text/javascript"> /* <![CDATA[*/'.$script.'/*]]>*/</script>';
return '<span id="'.$id.'">[javascript protected email address]</span>'.$script;
}
Esta función se encuentra disponible en www.maurits.vdschee.nl/php_hide_email/
PHP — Sin comentarios
02
Mar 10
Este sistema de codificación (encriptación) de cadenas ya fue usado por Julio César (con un desplazamiento de 3 caracteres siempre hacia adelante) y aunque en general es fácil de decodificar, para almacenar datos no sensibles de forma temporal podría ser útil. La función de esta encriptación es el desplazamiento por el abecedario de cada caracter 13 posiciones hacia delante o hcia atrás en función de qué caracter se trate.
function rot13( $cadena ) {
for( $i = 0; $i < strlen( $cadena ); $i++ ) {
$caracter = ord( $cadena[$i] );
if ($caracter >= ord( 'n' ) & $caracter <= ord( 'z' ) | $caracter >= ord( 'N' ) & $caracter <= ord( 'Z' ) )
$caracter -= 13;
elseif ($caracter >= ord( 'a' ) & $caracter <= ord( 'm' ) | $caracter >= ord( 'A' ) & $caracter <= ord( 'M' ) )
$caracter += 13;
$cadena[$i] = chr( $caracter );
}
return $cadena;
}
Wordpress — Sin comentarios
26
Feb 10
Con este script podemos hacer copias por correo electrónico automático a las 5 de la mañana cada día. Seguro que muchos de vosotros teneis el mismo problema y es muy difícil encontrar un script adecuado.
<?
$db["host"] = "localhost";
$db["user"] = "usuariomysql";
$db["pass"] = "contraseñamysql";
$db["name"] = "nombremysql";
// MySQL
$fichero_mysql = "/home/user/backups/".$db["name"] . date("d-m-Y") . '.sql';
system( "mysqldump -h ".$db["host"]." -u ".$db["user"]." -p".$db["pass"]." ".$db["name"]." > ".$fichero_mysql );
// Ahora de la carpeta wp-content
$fichero_wp_content = "/home/user/backups/wp-content" . date("d-m-Y") . '.tgz';
system( "tar czvf ".$fichero_wp_content." /home/user/public_html/wp-content" );
// Ahora enviamos el mail
include "libmail.php"; // Esta librería solo ocupa 9kb http://lwest.free.fr/doc/php/lib/index.php3?page=mail&lang=en
$m= new Mail;
$m->From( "Copia de Seguridad MYSQL <backup@electronico.biz>" );
$m->To( "Yo <micorreo@electronico.biz>" );
$m->Subject( "Copia Diaria de MYSQL de mi Wordpress" );
$m->Body( "Copia de seguridad MySQL\nSaludos." );
$m->Priority(3) ;
$m->Attach( $fichero_mysql ) ;
$m->Attach( $fichero_wp_content ) ;
$m->Send();
// Borramos los fichero del servidor
unlink( $fichero_mysql );
unlink( $fichero_wp_content );
?>
Luego con “crontab -e” en la consola añadimos un cron nuevo para que lo haga solo:
00 5 * * * root php mi_programita.php
Por supuesto hay que cambiar los valores de las variables por los nuestros
PHP — Sin comentarios
24
Feb 10
En esta ocasión, una función para convertir una cadena en formato BBCode (Bulletin Board Code), típico de los foros, y convertirlos a html para mostrarlos.
Este parser nos permite almacenar los textos con código diferente al HTML y así evitar que alguien guarde contenido en javascript o sentencias HTML que puedan perjudicar.
function BBCodeAHTML( $cadena ) {
// Eliminamos etiquetas HTML que pueda contener la cadena
$cadena = strip_tags( $cadena );
// Ahora con la cadena limpia de etiquetas HTML definimos las etiquetas BBCode que queremos tener
$etiquetas = array(
'N' => array( 'type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<strong>', 'close_tag'=>'</strong>' ), // Negrita
'C' => array( 'type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<i>', 'close_tag'=>'</i>' ), // Negrita
'S' => array( 'type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<span style="text-decoration:underline">', 'close_tag'=>'</span>' ), // Subrayado
'D' => array( 'type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<span style="text-align:right">', 'close_tag'=>'</span>' ), // Alinieación Derecha
'I' => array( 'type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<span style="text-align:left"', 'close_tag'=>'</span>' ), // Izquierda
'M' => array( 'type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<span style="text-align:rcenter"', 'close_tag'=>'</span>' ), // Centrada
);
// Eltras etiquetas son: [N] Para negrita, [C] Para cursiva, [S] Para subrayado, [D], [I], [M] Para las alineaciones, derecha, izquierda o medio
// Procesamos los cambios
$parser = bbcode_create( $etiquetas );
$cadena = bbcode_parse( $parser, $cadena );
// Eliminamos el resto de las etiquetas que pudiera haber
$cadena = preg_replace( '[\[(.+)\]]', '', $cadena );
// Devolvemos la cadena limpia y traducida al HTML
return( $cadena );
}