Después del artículo medio en broma donde explico cómo desactivar la tecla mayúscula, traigo un filtro anti mayúsculas que soluciona uno de los problemas más frecuentes que generan los HOYGANS, y otras "criaturas" similares.

La función filtro anti-mayúsculas está escrita en PHP mediante lenguajes regulares.
Recoge una cadena de texto, comprueba si hay demasiadas palabras en mayúscula, y si es así, escribe la primera letra después de cada punto en mayúscula y el resto en minúscula.
function anti_mayusculas ($texto) {
//Calculamos la cantidad de letras y mayusculas
$letras = strlen (preg_replace ('/[^a-zA-Z]+/', '', $texto));
$mayusculas = strlen (preg_replace ('/[^A-Z]+/', '', $texto));
//Si la cantidad de mayusculas es superior al 50%, se aplica el filtro
if ((($mayusculas * 100) / $letras) >= 50) {
$origen = array ('Á', 'Ä', 'É', 'Ë', 'Í', 'Ï', 'Ó', 'Ö', 'Ú', 'Ü', 'Ñ', 'á', 'ä', 'é', 'ë', 'í', 'ï', 'ó', 'ö', 'ú', 'ü', 'ñ');
$destino = array ("'A", ":A", "'E", ":E", "'I", ":I", "'O", ":O", "'U", ":U", "'N", "'a", ":a", "'e", ":e", "'i", ":i", "'o", ":o", "'u", ":u", "'n");
//Protegemos los caracteres con tildes o dieresis
$texto = str_replace ($origen, $destino, $texto);
//Nos aseguramos que tenga un punto al final
$texto = (preg_match ('/\.$/', $texto)) ? $texto : $texto.'.';
//Convertimos a mayuscula la primera letra despues de cada punto y el resto en minuscula
$texto = preg_replace ('/([a-zA-Z])([^\.]+)\./e', "strtoupper('\\1').strtolower('\\2').'.'", $texto);
//Restauramos los caracteres con tildes o dieresis
$texto = str_replace ($destino, $origen, $texto);
}
return $texto;
}
Ahora, en la página donde recibes las variables cuando se envía un comentario, (antes de que se almacene en la base de datos), debes aplicar el filtro anti-mayúsculas. Ejemplo:
$contenido = anti_mayusculas ($_POST ['comentario']);
Ando algo ocupado estos días entre estudiar y programar, por lo que no he podido actualizar el blog.
Acabo de hacer una función que puede resultar útil en algunas ocasiones, la de convertir los códigos de colores CSS de hexadecimal a rgb (binario).
La función dechex (); predefinida en PHP, nos facilita un poco las cosas, ya que convierte un número binario a hexadecimal.
Ahora, teniendo en cuenta que los colores Hexadecimales están compuestos por 3 números binarios (#000000) que representan los 3 colores primarios, construimos la siguiente función.
<?php
function rgbHex ($red, $green, $blue) {
$red = dechex ($red);
if (strlen ($red) < 2) $red = '0'.$red;
$green = dechex ($green);
if (strlen ($green) < 2) $green = '0'.$green;
$blue = dechex ($blue);
if (strlen ($blue) < 2) $blue = '0'.$blue;
$hex = strtoupper ($red.$green.$blue);
return "#".$hex;
}
Esta función se encarga de convertir cada uno de los 3 colores primarios de rgb a hexadecimal, además de añadir un cero en cada color en caso de que solo devuelva un número.
Podemos hacer lo contrario, en vez de pasar de rgb a hexadecimal, de hexadecimal a rgb; basta con usar la función hexdec () y cambiar un poco la función anterior.
Ahora por poner un ejemplo práctico, imaginemos que queremos remplazar en un texto todos los estilos CSS que posean colores en rgb, por el formato hexadecimal.
Recurrimos, como es costumbre, a lenguajes regulares y a la función preg_replace ().
<?php
function rgbHex_replace ($string) {
$string = preg_replace ('/\s+/', ' ', trim ($string));
$pattern = '/style="color:[\s]?rgb\(([0-9]{1,3}), ([0-9]{1,3}), ([0-9]{1,3})\);"/e';
$replacement = "'style=\"color: '.rgbHex ('\\1', '\\2', '\\3').'\"'";
return preg_replace ($pattern, $replacement, $string);
}
?>
Espero que les haya sido de utilidad, cualquier cosa dejad un comentario.
Por muchos motivos es esencial disponer de un formulario de contacto en tu blog o página web.
En ocasiones un lector puede necesitar contactar contigo ya sea para hacer una crítica, para avisarte de posibles fallos o simplemente para preguntarte algo.

Este tutorial explica cómo hacer un formulario de contacto usando HTML y PHP, y como validar los campos por si se equivocan al escribir algún dato.
Lo voy a dividir en 3 partes, la primera es el formulario de contacto en HTML, la segunda valida los campos en PHP, y la tercera se encarga de enviar el correo.
A continuación pongo el formulario que puedes modificar o mejor su diseño con estilos CSS.
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulario de contacto</title>
</head>
<body>
<h2>Formulario de contacto</h2>
<div style="border: #333 1px dotted; padding: 20px; width: 300px">
<form method='post' action="enviar.php">
<p style="font-size: 12px">Asunto</p>
<input type="text" name="Asunto" size="30" maxlength="100"/> <br/>
<p style="font-size: 12px">Mail</p>
<input type="text" name="Email" size="30" maxlength="300"/> <br/>
<p style="font-size: 12px">Mensaje</p>
<textarea name="Mensaje" rows="10" cols="30"></textarea> <br/><br/>
<input value="Enviar Correo" type="submit" />
</form>
</div>
</body>
</html>
Como puedes ver (action="enviar.php"), al pulsar el botón del formulario, accederá a la página enviar.php, enviando el valor de las variables Asunto, Email y Mensaje.
Esta función implementada en PHP, recibe un email y el mensaje y comprueba si están vacíos o si hay algún dato incorrecto.
<?php
function validar ($mail, $mensaje) {
$error = '';
if (! empty ($mail)) {
if (! preg_match('/^([a-z0-9._]+)@([a-z0-9.-]+).([a-z]{2,5})$/', strtolower ($mail))) {
$error = 'Email incorrecto';
}
if (! empty ($mensaje)) {
if (strlen ($mensaje) > '4000') {
$error = 'El mensaje es demasiado largo';
}
}
else {
$error = 'El campo Mensaje está vacío';
}
}
else {
$error = 'El campo Email está vacío';
}
return $error;
}
?>
Primero comprueba la IP del usuario, y la hora y fecha a la que envió el correo, después valida los datos recibidos desde formulario, con la función validar.php, y si está todo correcto guarda los datos del correo y lo envía.
<?php
require ('validar.php');
$hora = date('H').':'.date('i').':'.date('s'); //hora del servidor
$fecha = date('d').'/'.date('m').'/'.date('y'); //fecha del servidor
$IP = $_SERVER['REMOTE_ADDR']; //IP Usuario
$asunto = trim ($_POST['Asunto']); //Asunto del mensaje
$mail = trim ($_POST['Email']); //Email del remitente
$mensaje = trim ($_POST['Mensaje']); //Contenido del mensaje
$tuemail = 'email'; //IMPORTANTE: Escribe aquí tu email
$error = validar ($mail, $mensaje);
if (empty ($error)) {
//Guarda los datos de la consulta en la variable $message
$message = "
Enviado el día ".$fecha." a las ".$hora.".
Email: ".$email."
IP: ".$IP."
Mensaje:
".$mensaje."";
//Intenta enviar el mensaje
if (mail ($tuemail, $asunto, $message, "From: $mail")){
$error = '<p>Correo enviado correctamente.</p>';
}
else {
$error = 'No se ha podido enviar el correo, intentalo más tarde.';
}
}
echo '<p>'.$error.'</p>';
?>
Es un ejemplo muy sencillo y está listo para funcionar, solo hay que indicar tu email ($tuemail = 'email';) y subirlo a un servidor.
Y como siempre, si tienes alguna duda, deja un comentario e intentaremos ayudarte.
Vuelvo de nuevo con otro tutorial básico para comprender y meternos más en el mundo de las webs dinámicas, aunque si aun estás un poco perdido puedes consultar los anteriores tutoriales: Primeros pasos en PHP.
En esta ocasión, enseño las consultas más simples para poder usar una base de datos desde PHP.
Es importante saber controlar una base de datos mediante PHP, y aprender no resulta difícil, incluso sin saber SQL puedes hacerlo, ya que rara vez se usan consultas demasiado complejas, basta con conocer algunas instrucciones básicas (Buscar, Insertar, Modificar, Borrar), y unas pocas funciones en PHP.
Las consultas desde PHP se realizan con la función mysql_query (" ");, siempre y cuando uses la base de datos MySql, pero valdría cualquier otra, como Postgres, solo habría que cambiar mysql por postgres.
Para insertar datos en una tabla, en SQL se usa INSERT INTO, y en PHP sería:
<?
mysql_query ("INSERT INTO usuarios (nombre, email, url)
VALUES ('Michael', 'michael@gmail.com', 'http://www.michael.com')");
?>
En este ejemplo, usuarios es el nombre de la tabla donde quieres insertar los datos; nombre, email y url los campos de dicha tabla, y lo que está entre comillas, después de VALUES, son los valores que quieres insertar (si es un valor numérico puede ir sin comillas).
Además puedes sustituir los valores por variables PHP, por ejemplo, en vez de poner Michael podrías haber puesto la variable $nombre, a la que le habrás dado valor anteriormente, $nombre = "Michael";.
Para buscar y obtener datos en una tabla, en SQL se usa SELECT. Tomando como referencia el ejemplo anterior, en PHP sería:
<?
$result = mysql_query ("SELECT nombre, email, url FROM usuarios");
while ($row = mysql_fetch_array ($result))
{
echo 'Nombre: '.$row['nombre'];
echo 'Mail: '.$row['email'];
echo 'Url: '.$row['url'];
}
?>
Lo que hace este código es obtener y guardar todos los datos de la tabla usuarios en un array, mientras los va mostrando uno a uno con un bucle while.
Pero esto es demasiado básico, llegará el momento en que necesites obtener determinados datos según ciertos criterios, y no todos a la vez. Digamos que necesito saber el email y la url de un usuario determinado, de "Michael", lo haríamos de la siguiente manera:
<?
$nombre = 'Michael';
$result = mysql_query ("SELECT email, url FROM usuarios
WHERE nombre = '$nombre'");
while ($row = mysql_fetch_array ($result))
{
echo 'Mail: '.$row['email'];
echo 'Url: '.$row['url'];
}
?>
Como ves solo he añadido una condición WHERE, le estoy diciendo que me devuelva el email y la url de todos los usuarios que se llamen Michael, en este caso usé una variable, pero se podría haber puesto 'Michael' directamente.
A parte de mostrar los datos obtenidos, muchas veces te encontraras con la necesidad de contarlos, y eso se puede hacer fácilmente con la función mysql_num_rows ();, ejemplo:
<?
$result = mysql_query ("SELECT usuario FROM usuarios");
$numUsuarios = mysql_num_rows ($result);
?>
Como ves, en la variable $numUsuarios se guarda el número de filas que devolvió la consulta.
Muchas veces necesitamos actualizar o modificar un determinado dato en una tabla, para ello se usa UPDATE, el cual funciona de forma parecida a SELECT, se busca el dato o los datos que necesitas modificar y se le aplica el cambio:
<?
$nuevoEmail = 'michael_85@gmail.com';
$result = mysql_query ("UPDATE usuarios SET email = '$nuevoEmail'
WHERE email = 'michael@gmail.com'");
?>
El usuario con el email "michael@gmail.com" cambiará su email por en nuevo. Pero hay que tener especial cuidado con esto; imaginemos que ponemos en la condición WHERE, que cambie su email si el usuario es igual a "Michael", sucedería que todos los usuarios que se llamen Michael, sufrirían un cambio de email, y no creo que nos interese eso.
No podía faltar la consulta para eliminar filas de una tabla, para ello se usa DELETE FROM, ejemplo:
<?
$Mail = 'michael_85@gmail.com';
mysql_query ("DELETE FROM usuarios WHERE email='$Mail'");
?>
Al igual que al actualizar, establecemos la condición usando el email del usuario, ya que dudo que existan dos usuarios distintos con el mismo email, por tanto en este caso se eliminaría solo al usuario cuyo email sea igual al indicado.
Si no me equivoco estas son las consultas más simples usadas en PHP, si estás empezando rara vez necesitaras usar las más avanzadas, hablo de consultas que ya requieren ciertos conocimientos de SQL.
<< Anterior | Como crear una base de datos
Delivered by FeedBurner
Categorías
Archivos
Blogroll
Enlázanos
Si te gusta MirarPorMirar, puedes poner un enlace en tu web o blog.