Siempre he dicho que wordpress es flexible ahora muchos ya conocerán el error genera wordpress cuando no establece conexión con la base de datos, claro es muy tosco o simple.
Error establishing a database connection
Pero podemos personalizarlo muy fácilmente,es bien sencillo creamos un archivo llamado db-error.php en la carpeta /wp-content/ de la instalación de wordpress el cual será nuestro template de error de conexión de la base de datos.
El siguiente ejemplo solo es un simple template que lo puedes personalizar a gusto.
< ?php
//ejemplo de : /wp-content/db-error.php
if (!empty($_SERVER['SCRIPT_FILENAME']) &amp;&amp; 'db-error.php' == basename($_SERVER['SCRIPT_FILENAME']))
die ('Por favor no juegues :D, gracias');
header( 'Content-Type: text/html; charset=utf-8' );
?>
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php if ( function_exists( 'language_attributes' ) ) language_attributes(); ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Error en la DB</title>
</head>
<body>
<h1>No se pudo establecer conexion con la DB</h1>
</body>
</html>
Y desde ahora cuando por algún error del servidor de base de datos o cuanto intentes migrar ya no tendrás el error todo simple que traía Wordpress por defecto si no uno personalizado a tu gusto.
Tags:
PHP,
Wordpress
Esto es una forma de limpiar tu cadena de caracteres no deseados, que nos puede ser util especialmente antes de insercciones a nuestra base de datos o donde necesitemos verificar los datos mandados por el usuario.
function limpiar ($cadena){
if (empty($cadena)) return false;
//limpiamos todos los caracteres invalidos
$nueva_cadena = ereg_replace("[^ A-Za-z0-9_]", "", $cadena);
return $nueva_cadena;
}
$cadena = "Esto es un texto de letras, numeros 12345 y caracteres raros !£$%^&";
echo limpiar ($cadena);
Tags:
PHP,
Scripts
La gran mayoría de sistemas de estadísticas nos brindan información relacionada al tipo de navegador que visita nuestra página, con la que tenemos una visión más grande de como optimizar nuestro sitio para los distintos navegadores.
Existen varias formas de poder detectar el navegador del cliente para fines estadísticos o para darle una mejor experiencia al usuario, en Wordpress se trabaja de una forma sencilla la detección de navegadores Web utilizando la variable global $_SERVER['HTTP_USER_AGENT'].
// Simple browser detection
$is_lynx = $is_gecko = $is_winIE = $is_macIE = $is_opera = $is_NS4 = $is_safari = $is_chrome = false;
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Lynx') !== false) {
$is_lynx = true;
} elseif ( strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'chrome') !== false ) {
$is_chrome = true;
} elseif ( strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'webkit') !== false ) {
$is_safari = true;
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') !== false) {
$is_gecko = true;
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'Win') !== false) {
$is_winIE = true;
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
$is_macIE = true;
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== false) {
$is_opera = true;
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Nav') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'Mozilla/4.') !== false) {
$is_NS4 = true;
}
$is_IE = ( $is_macIE || $is_winIE );
Entonces la forma de usarlo es muy fácil
if ($is_IE):
// se ejecuta el codigo que esta designado para Internet Explorer
endif;
if ($is_chrome):
// se ejecuta el codigo que esta designado para Chrome (google)
endif;
Esto no solo nos puede servir para estadísticas globales, Wordpress lo utiliza para detectar el navegador de los usuarios que comentan en el blog.
También podemos utilizarlo para asignar mensajes o acciones para un navegador en especifico
.
Tags:
Navegadores,
Scripts,
Wordpress
Hoy en día la funcion md5 es la más usada ya que el hash devuelto consiste en una cadena de 32 números en formato hexadecimal, este método es irreversible por lo cual si estamos desarrollando una aplicación web la cual integre un sistema de usuarios tendríamos añadir la opción de que un usuario pueda resetear su contraseña si lo olvida alguna vez.
Este proceso es sencillo, existen varias maneras la más común es pedirle al usuario su email de registro mediante un formulario el cual verificara si existe dicho email en la db luego se enviara un mensaje de verificación el cual si lo acepta automáticamente se genera una contraseña aleatoria y se envía al email correspondiente.
Hay innumerables formas de generar contraseñas aleatorias, yo he tratado de construir una función que me satisface dicho requerimiento.
function random_pwd($length=5,$mode='alfa'){
switch ($mode):
case "alfa":
$source = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
case "int":
$source = '1234567890';
break;
case "extra":
$source = '|@#~$%()=^*+[]{}-_';
break;
case "all":
$source = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890|@#~$%()=^*+[]{}-_';
break;
default:
$source = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
endswitch;
if($length>0){
$rstr = "";
$source = str_split($source,1);
for($i=1; $i< =$length; $i++){
mt_srand((double)microtime() * 1000000);
$num = mt_rand(1,count($source));
$rstr .= $source[$num-1];
}
}
return $rstr;
}
echo random_pwd(10,'all');
//salida aleatoria : RJ}JwFdC%C
Si observan esta funcion nos da la posibilidad de generar una contraseña dependiendo de cuantos caracteres necesitamos o vemos que sea necesario y la opción de personalizar el tipo de caracteres que tendrá nuestra contraseña mediante los siguientes parámetros.
- “alfa” que son el alfabeto completo
- “int” que son caracteres enteros
- “extra” que son caracteres para una contraseña más compleja
- “all” la union de todos los caracteres
Tags: PHP, Scripts
1stwebdesigner a recopilado más de 300 menús los cuales nos ayudaran a enriquecer la experiencia del usuario implementando una navegación accesible e intuitiva, tenemos de todos los gustos y colores entre los que resaltan el uso de JQuery, Mootools y CSS.
Jcrop es un plugin de JQuery el cual nos permite recortar imagenes de una manera rápida y fácil, y ni hablar de su excelente manual y ejemplos que nos brinda. [Descarga]
Vero es un programador que a lo largo de estos años a estado puliendo una inmejorable forma de aliviarnos las penurias, cuando de hacer un upload se trate.
Para mi esta clase Upload es casi completa, tiene de todo y es re contra configurable.
¿Que es lo que diferencia esta clase de las demás?
- Después de subir un archivo, uno puede hacer tantas copias, conversiones y cambios de tamaños que uno desee.
- Se puede manipular la imagen de muchas maneras, rotar la imagen, jugar con los colores, añadir bordes y marcas de agua.
- Añadir textos.
- Validación del tipo de archivo a subir.
- Sumamente Flexible.
- Es Gratis.
La clase es tan poderosa para mi gusto que con un simple ejemplo veremos su potencial.
$foo = new Upload($_FILES['form_field']);
if ($foo->uploaded) {
// subimos la imagen
$foo->Process('/home/user/files/');
if ($foo->processed) {
echo 'copia original de la imagen';
} else {
echo 'error : ' . $foo->error;
}
// Volvemos a subir la imagen con otro nombre
$foo->file_new_name_body = 'carlos-montalvo';
$foo->Process('/home/user/files/');
if ($foo->processed) {
echo 'Imagen renombrada con el nombre "carlos-montalvo"';
} else {
echo 'error : ' . $foo->error;
}
// Esta vez le creamos una miniatura de 100px de ancho
$foo->file_new_name_body = 'image_miniatura';
$foo->image_resize = true;//activamos la opcion de miniaturaa
$foo->image_convert = gif; //lo convertimos a gif
$foo->image_x = 100;//asignamos 100px
$foo->image_ratio_y = true;//activamos el ratio
// Subimos la imagen con los cambios realizados
$foo->Process('/home/user/files/');
if ($foo->processed) {
echo 'Imagen renombrada y en miniatura con 100px de ancho
y convertida en gif';
$foo->Clean();//limpiamos
} else {
echo 'error : ' . $foo->error;
}
}
Así de simple logramos tantos cambios con una sola imagen subida.
Descarga Clase Upload
Documentación
Tags:
Clases,
PHP,
Programación Web,
Scripts,
Upload