Un formulario de contacto en HTML y PHP

Abril 2016: Post recuperado de Aprendiendo PHP (web ya inactiva)

Valencia, 17/07/2013, G.B.
Aunque un tanto ‘alejado’ de la ‘marcha’ habitual de Aprendiendo PHP antes de su parada, voy a seguir incluyendo pequeñas ‘utilidades’, códigos que os pueden servir. Más adelante volveré con la ‘temática’, el orden que he pensado seguir en este blog. Pero ahora mismo, y tras el re-arranque la semana pasada de Aprendiendo PHP, me apetece ir por este camino, aunque un poco más adelante vuelva a la ‘normalidad’.

Sin más, paso a dejaros un pequeño sistema de formulario de contacto con HTML y PHP. Consta de 3 archivos, uno en HTML y 2 en PHP:

  • contacta.html (la página del formulario propiamente dicha)
  • enviar_correo.php (el código PHP del formulario)
  • enviado.php (la página que nos indica si ha habido algún error o todo ha ido bien)

Este ‘sistema’ lo leí en un tutorial que ahora mismo no recuerdo, pero que buscaré e incluiré aquí como referencia. Lo utilizo desde hace ya algún tiempo en un par de webs; en concreto en un par de directorios de enlaces. el de INDAGA.net y el de Webcontenidos.es. Funciona perfectamente. tan solo le he añadido algunas pequeñas variaciones, si no recuerdo mal. Bien, veamos como funciona:

Primero creamos un archivo HTML y lo denominamos, por ejemplo, contacta.html. Os adjunto el código. Por supuesto, deberéis cambiar todas las referencias a esta web, así como las URLs absolutas que adjunto y que hacen referencia a este sitio (www.aprendiendophp.net):
<!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>
<title>Contactar con AprendiendoPHP.net </title>
<meta name="title" content="AprendiendoPHP.net" />
<meta http-equiv="title" content="AprendiendoPHP.net" />
<meta name="keywords" content="aprender php. aprendiendo php, php, guillermo beltran pilato" />
<meta http-equiv="description" content="Aprendiendo PHP" />
<meta name="author" content="Guillermo Beltr⮠Pilato" />
<meta name="distribution" content="all" />
<meta name="robots" content="all" />
<meta name="revisit" content="30 days" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="http://www.aprendiendophp.net/wp-content/themes/deepblue/style.css" />
<link href="http://www.aprendiendophp.net/favicon.ico" rel="shortcut icon" />
<meta name="description" content="Contactar con Aprendiendo PHP">
</head>
<body>
<div align="center">
<form action="enviar_correo.php" method="post">
<p>
<br />
<b>Tu Nombre:<b>
<input name="name" type="text" id="name" size="40" />
</p>
<p><b>Tu email:</b>
<input name="email" type="text" id="email" size="42" />
</p><br />
<p>
<b> Escribe tu mensaje o consulta:</b>
</p>
<textarea name="query" cols="46" rows="20" id="query"></textarea>
<p>
<input name="submit" type="submit" class="boxx1" value="Enviar mensaje" />
</p>
</form>
<!-- <p align="center"> Si el correo se ha enviado correctamente, <br />volver&aacute;s a la p&aacute;gina principal del directorio</p><br /><br /> -->
<p><a href="http://www.aprendiendophp.net" alt="AprendiendoPHP.net">www.aprendiendophp.net</a>
</div>
</body>
</html>
Como podéis observar, en este código HTML, además de los meta tags, vemos un formulario cuya acción al enviarlo nos remite a la página: enviar_correo.php. Este es el código PHP de la página, que es la que hace que funcione el formulario:
<?
/* Para AprendiendoPHP.net */
$mailto = 'tuemail@direccioncorreo.com'; // PON AQUÍ TU DIRECCIÓN DE CORREO ELECTRÓNICO, DONDE QUIERES QUE TE LLEGUE EL CONTACTO
$returnpage = 'http://www.aprendiendophp.net/enviado.php'; // INSERTA AQUÍ LA PÁGINA A LA QUE QUIERES QUE VUELVA EL USUARIO TRAS ENVIAR EL CONTACTO
$sitename = '[AprendiendoPHP.net - Contacto]'; // INSERTA AQUÍ EL NOMBRE DE TU SITIO; APARECERÁ EN EL ASUNTO DEL EMAIL QUE RECIBAS
/* NO EDITES NADA TRAS ESTAS LÍNEAS, A NO SER QUE SEPAS LO QUE ESTÁS HACIENDO */

$name = $_POST['name'];
$email = $_POST['email'];
$enquiry = stripslashes($_POST['query']);

if (!$name) {
print("<strong>Error:</strong> Escribe tu nombre.<br/><br/><a href='javascript:history.go(-1)'>Volver</a>");
exit;
}

if (!$email) {
print("<strong>Error:</strong> Por favor, escribe tu direcci&oacute;n de e-mail.<br/><br/><a href='javascript:history.go(-1)'>Volver</a>");

exit;

}

if (!$enquiry) {
print("<strong>Error:</strong> Por favor, escribe un mensaje.<br/><br/><a href='javascript:history.go(-1)'>Volver</a>");

exit;

}

if (!eregi("^[a-z0-9]+([-_.]?[a-z0-9])+@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}", $email)){

print("<strong>Error:</strong> Este email no es v&aacute;lido, por favor escribe una direcci&oacute;n de e-mail v&aacute;lida<br/><br/><a href='javascript:history.go(-1)'>Volver</a>");

exit;

}

$message = "n$name te ha enviado el siguiente mensaje:nn$enquirynn Sus datos son:nnNombre: $namenCorreo: $emailnn";

mail($mailto, "$sitename Petición de contacto de $name", $message, "From: $email");

header("Location: " . $returnpage);

?>
Una vez el usuario ha cumplimentado los campos de nuestro formulario en HTML (la página contacta.html) y enviado así la petición de contacto, el archivo enviar_contacto.php se encargará de validar la petición y enviarla al correo que le hayamos determinado a través de la función $mailto. Si todo es correcto, la página enviado.php será la encargada de decir al usuario si todo ha ido bien o si ha habido algún error. Este es el código de dicha página:
<?php 
echo '<h3>Su mensaje se ha enviado satisfactoriamente</h3>';
echo '<p>En breve contactaremos con usted. Muchas gracias por su inter&eacute;s</p>';
echo '<p><a href="http://www.aprendiendophp.net" target="_self">Volver a la Home</a> de AprendiendoPHP.net</p>';
?>
Y con estos 3 archivos, ya tenemos montado nuestro formulario de contacto con validación incluida.  Podéis comprobarlo aquí: Contactar con Aprendiendo PHP. Eso sí, el tema de los formularios en PHP lo veremos más adelante, esto solo era un pequeño ‘adelanto’, valga la redundancia…
Hasta pronto!

El plugin Shareaholic, otra vez al garete…

AddThis
¿Alternativa? AddThis…

Valencia, 16/07/2013, G.B.
Tras la última y reciente actualización del plugin para WordPress Shareaholic, he comprobado que este ha dejado de funcionar en varios de mis blogs; con lo bien que iba últimamente! Pero en fin, así son las cosas (maldita sea!!…). En este, KnowHow, no lo he actualizado y parece que sigue funcionando.

Para compensarlo, he seguido utilizando ShareThis como plugin y AddThis como código embebido para mostrar los botoenes sociales. Así, el problema ha dejado de serlo. Os adjunto la dirección (de nuevo) de AddThis, así como un par de ejemplos de su código: Smart Layers; Share Buttons (este último es el que ya llevo tiempo utilizándolo, como, por ejemplo, en Aprendiendo PHP):

<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style ">
<a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>
<a class="addthis_button_tweet"></a>
<a class="addthis_button_pinterest_pinit"></a>
<a class="addthis_counter addthis_pill_style"></a>
</div>
<script type="text/javascript">var addthis_config = {"data_track_addressbar":true};</script>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4daea9f81fbe2731"></script>
<!-- AddThis Button END -->

<!-- AddThis Smart Layers BEGIN -->
<!-- Go to http://www.addthis.com/get/smart-layers to customize -->
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4daea9f81fbe2731"></script>
<script type="text/javascript">
addthis.layers({
'theme' : 'transparent',
'share' : {
'position' : 'left',
'numPreferredServices' : 5
},
'whatsnext' : {}
});
</script>
<!-- AddThis Smart Layers END -->

Un ejemplo del uso de condicionales en WordPress

Valencia, 15/07/2013, G.B.
Vamos a ver un pequeño ejemplo del uso de las instrucciones condicionales en PHP aplicadas al (maravilloso) gestor de contenidos WordPress.

En este caso, vamos a mostrar un determinado mensaje o elemento en determinadas páginas de nuestro blog en WordPress. Para ello, utilizaremos una sentencias If que ya conocemos y haremos que se muestre el código que decidamos, como por ejemplo un mensaje o un ‘trozo’ de código HTML, en la barra lateral de nuestro blog (archivo sidebar.php) siempre y cuando no sea la página principal.

Como ejemplo sencillo, vamos a crear un texto en H2 en nuestra barra lateral que contenga lo siguiente:

Esto solo se muestra en el sidebar si no es la página principal

Tendremos que modificar nuestro archivo sidebar.php. El código, que añadiremos es muy sencillo:

<?php if (!(is_home() )) { ?>
<h2> Esto solo se muestra en el sidebar si no es la página principal</h2>
<?php } ?>

 Para más información al respecto, visita el Codex de WordPress: http://codex.wordpress.org/Conditional_Tags

Un ejemplo del uso de condicionales en WordPress

Abril 2016: Post recuperado de Aprendiendo PHP (web ya inactiva)
Valencia, 15/07/2013, G.B.
Vamos a ver un pequeño ejemplo del uso de las instrucciones condicionales en PHP aplicadas al (maravilloso) gestor de contenidos WordPress.

En este caso, vamos a mostrar un determinado mensaje o elemento en determinadas páginas de nuestro blog en WordPress. Para ello, utilizaremos una sentencias If que ya conocemos y haremos que se muestre el código que decidamos, como por ejemplo un mensaje o un ‘trozo’ de código HTML, en la barra lateral de nuestro blog (archivo sidebar.php) siempre y cuando no sea la página principal. Como ejemplo sencillo, vamos a crear un texto en H2 en nuestra barra lateral que contenga lo siguiente:

Esto solo se muestra en el sidebar si no es la página principal

Tendremos que modificar nuestro archivo sidebar.php. El código, que añadiremos es muy sencillo:

<?php if (!(is_home() )) { ?>
<h2> Esto solo se muestra en el sidebar si no es la página principal</h2>
<?php } ?>

 Para más información al respecto, visita el Codex de WordPress: http://codex.wordpress.org/Conditional_Tags

Averiguar la versión de PHP de tu servidor web

Otro post para ayudar al re-arranque de Aprendiendo PHP…

Valencia, 13/07/2013, G.B.
Bueno, aquí va otro post para poner de nuevo ‘en el mapa’ a Aprendiendo PHP… En este caso se trata de algo de lo que ya hemos hablado, aunque todavía no había puesto un ejemplo práctico. Se trata de averiguar la versión de PHP de tu servidor (así como otros parámetros…), para poder ajustar tu código a la misma. Para ello, simplemente debemos crear un archivo .php con un pequeño código PHP y subirlo a nuestro servidor. El código del archivo  PHP es el siguiente:

<?php
phpinfo();
?>

 Yo he creado una página .ph p con ese código y la he subido al directorio raíz de mi sitio, de mi hosting. Al escribir la URL http://www.aprendiendophp.nes/phpInfo.php obtendré una página interpretada que me mostrará la versión de PHP qu utiliza mi servidor.

Haced la prueba y podréis comprobarlo por vosotros mismos. Hasta pronto!

Redirección múltiple 301 con el archivo .htaccess

Abril 2016: Post recuperado de Aprendiendo PHP (web ya inactiva)
Un pequeño adelanto al re-arranque de Aprendiendo PHP

Valencia, 13/07/2013, G.B.
Bueno, como os he comentado hace un rato, voy a re-arrancar Aprendiendo PHP. Pero es una tarea ardua que me llevará más tiempo del que tiempo para estos menesteres… De todas formas, y como muestra de ‘buena voluntad’, os dejo un pequeño post acerca de la redirección 301 de un dominio, es decir, cómo redirigir un dominio antiguo a uno nuevo sin perder el posicionamiento web adquirido en el viejo. Para ello, debemos utilizar el archivo de configuración del servidor Apache que ya conocemos denominado .htacccess. Os dejo un pequeño ejemplo:

#Redirige un dominio antiguo a uno nuevo (o de un dominio a otro)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^indaga.net$ [NC]
RewriteRule ^(.*)$ https://www.indaga.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^indaga.net/blog$ [NC]
RewriteRule ^(.*)$ http://blog.indaga.net/$1 [R=301,L]

#En caso de error 404 página no encontrada), rediriges a una página de error personalizada
ErrorDocument 404 /404.html

En este caso, hemos redirigido la web https://indaga.net a la web https://www.indaga.net sin perder el posicionamiento web, al ser una redirección 301 (movido permanentemente). Así mismo, hemos redirigido en el mismo archivo .htaccess el directorio http://www.indaga,net(blog al subdominio http://blog.indaga.net, sin perder el posicionamiento web. Por supuesto, para ello deberemos crear primero el subdominio en el panel de control de nuestro hosting. Así, disponemos de una redirección 301 múltiple en un solo archivo de configuración. Simple, senciullo y efectivo, gracias a los desarrolladores de Apache.

Recordemos que el archivo .htaccess podemos crearlo con cualquier editor de texto plano y que siempre deberemos subirlo a la raíz de nuestro servidor web. Para más información al respecto:

La renovada interfaz de Flickr, con 1 TB de espacio!

La renovada interfaz e Flickr, con 1 TB de espacio!
Valencia, 08/07/2013, G.B.
Acabo de enterarme de que Flickr (siempre me ha costado escribirlo…), la famosa red de fotografía y ahora vídeo de Yahoo! ha renovado su interfaz, sus funcionalidades y el espacio gratuito de almacenaje. Ahora, disponemos nada más y nada menos que de 1 TB de espacio en su red para almacenar nuestras fotos y vídeos (de hasta 3 minutos en alta calidad cada uno de ellos). Eso sí, la nueva interfaz no ha gustado a todos los antiguos usuarios de este servicio web comprado por Yahoo! Algunos usuarios incluso han solicitado a la veterana empresa que vuelva a poner en marcha la anterior interfaz; nunca llueve a gusto de todos, ¿verdad?

El caso es que yo nunca he utilizado Flickr, siempre me he ‘apañado’ con Picasa y Panoramio, ambos servicios comprados por su omnipresente competidor Google. Pero ahora, ante tal anuncio, me refiero a lo de la ampliación de espacio gratuito, me lo estoy pensando seriamente. además, Flickr permite la venta de fotografías, que aunque a mi no me sea realmente de utilidad -no soy fotógrafo profesional, ni mucho menos- creo que puede ‘venirle muy bien‘ a más de un fotógrafo que quiera probar la venta online de sus servicios desde una plataforma externa, sin mantenimiento por su parte.

En definitiva, que voy a darme de alta y probar la nueva interfaz de flickr, denominada Photostream, si no me equivoco, y que parece ser es muy similar a la resentación de fotos en la red de Google Plus, sin dejar espacios en blanco y con la posibilidad de crear álbumes web (al estilo Picasa). Voy a echarle un vistacillo…

Tablet y portátil todo en uno: Wolder Mitab Evolution T1

Cabe en la palma de tu mano…
Tablet y portátil todo en uno: Wolder Mitab Evolution T1
Valencia, 07/07/2013, G.B.
Acabo de leer en una revista especializada que el fabricante Wolder Electronics  ha sacado un nuevo dispositivo  que combina las funciones de Tablet y portátil todo en uno, a un precio muy, muy competitivo: 169 euros!

La verdad es que quiero probarlo y descubrir por mí mismo si es un producto que vale la pena o no, aunque por las características técnicas y el precio, parece ser, a priori, que sí. Se trata del modelo Wolder Mitab Evolution T1, el primer tablet duo de 7 pulgadas de Wolder.

Este ‘híbrido’ entre tablet y portátil dispone de las siguientes características:

  • Pantalla de 7 pulgadas
  • Funda, atril, teclado y tablet todo en uno
  • Sistema operativo Android 4.1.
  • Pantalla HD táctil
  • Procesador Core de 1,5 Ghz
  • Procesador gráfico 3D de 4 núcleos
  • WiFi, Bluetooh 3.0
  • Salida mini HDMI
  • Salida micro USB
  • 522 gramos de peso
  • Carcasa de goma resistente
  • Cabe en la palma de la mano…

La verdad es que me apetece probarlo…

Firefox OS, este mes de julio!

Valencia, 01/07/2013, G.B.
Una buena noticia: los chicos de Firefox van a lanzar próximamente su sistema operativo para smartphones, -teléfonos inteligentes. Se trata de Firefox OS, que sigue las premisas de la organización en cuanto a innovación, calidad, Firefox OS, este mes de julio!gratuidad y accesibilidad.

Aunque no suelo hacerlo aquí, en KnowHow, os adjunto su mensaje, ya que creo que vale la pena difundirlo. Ah, y enhorabuena a Firefox! Aquí va:

A partir de este mes, estaremos trabajando con fabricantes de dispositivos móviles y operadores de red líderes para llevar Firefox OS a varios países del mundo.

Puedes ayudarnos a generar expectación aunque no esté disponible aún en el lugar donde vives. Mantente atento a más información sobre dónde y cuándo puedes encontrar Firefox OS.

¿Qué es Firefox OS? Es un nuevo sistema operativo para teléfonos inteligentes basado en los mismos principios de apertura, innovación y oportunidad de nuestro navegador Firefox. Creemos que Internet es un recurso global y público que tiene que seguir siendo accesible para todos. Por ello hemos creado Firefox OS, para permitir el acceso a la Web a más personas, desde más lugares y de muchas más maneras que antes.

Difunde el mensaje y muestra tu apoyo a un sistema operativo para móvil que está diseñado con el fin de construir un futuro radiante para la Web y los usuarios de todo el mundo.
Fuente: Firefox

Fallos en la API de los feeds de Twitter

Twitter ha retirado la API v1, el pasado 11 de junio

Twitter ha retirado la API v1
Valencia, 16/06/2013, G.B.
Hace un par de días que he notado que los plugins que utilizo en WordPress para mostrar mis últimos tweets fallan. El “En que estoy pensando…” que utilizo como título del widget que es en realidad un plugin de Twitter estaba en blanco! Investigando un poco -más bien haciendo una sencilla búsqueda en la Red- he podido ver que simplemente la API v1 de Twitter para los feeds, para el RSS o sindicación de los últimos tweets enviados a tu cuenta, ha dejado de funcionar: ahora hay una nueva versión.

Por desgracia, los plugins no han sido actualizados -o yo no los he configurado con la nueva versión-, por lo que he podido observar. He probado un par más de ellos y ninguno ha podido mostrarlos. ¿Qué hacer? Bueno, simplemente esperaré e investigaré un poco más al respecto, aunque ahora mismo no…

Continuar leyendo “Fallos en la API de los feeds de Twitter”

¿Tu web atacada y penalizada en Google? ¿Y ahora qué…?

¿Tu web atacada y penalizada en Google? ¿Y ahora qué...?Valencia, 29/05/2013, G.B.
¿Ha sido tu web o blog atacado y encima Google te ha penalizado por ello -cornudo y apaleado…-? ¿Cuáles son los pasos a seguir para solucionar esa desagradable situación lo antes posible? Como a mí me ha pasado más de una vez, y con distintos proveedores de servicio (hostings o alojamientos web, incluso con servidores virtuales), os lo cuento:

1) Ante todo, mucha calma, tranquilos, el mundo no se acaba, ni vuestro sitio tampoco. Además, eso le puede pasar a cualquiera, de hecho, pasa…

2) Visita las Herramientas de Google Webmaster Tools para ver dónde se encuentra la infección. También visita Google Safe Browsing (http://www.google.com/safebrowsing/diagnostic?site=URL-DEL-SITIO): te darán detalles sobre los archivos infectados y dónde están, probablemente. También el antivirus que tengas instalado te dará buenas pistas al respecto.

Continuar leyendo “¿Tu web atacada y penalizada en Google? ¿Y ahora qué…?”

Hostinger.es: “Solucionado el ataque a WordPress”

Hostinger.es: "Solucionado el ataque a WordPress"
Pulsa para visualizar la información de Hostinger.es

Valencia, 26/05/2013, G.B.
Hace unos días, instalando en Hostinger.es un WordPress a unos amigos para que empezaran a probar este fantástico CMS, me dí cuenta que no era posible acceder al Escritorio o Dashboard de WordPress, no funcionaba wp-admin (que es lo mismo que wp-login.php). En vez de entrar en el Dasboard de WordPress, mostraba una página de Error 403 (Prohibido). Lo solucioné instalándole WordPress en una subcarpeta del subdominio gratuito que habíamos creado en Hostinger.es para tal fin.

Pero esa solución, tampoco es que fuera ‘la bomba’: queríamos que estuviera, como debe ser, en el directorio raiz del subdomonio gratuito, ya que iba a probar una weblog. En el panel de control de Hostinger, creo recordar, vimos un mensaje de Hostinger informando de que debido a un ataque masivo por ‘fuerza bruta’ al archivo de aceso de WordPress, wp-login.php, habían tenido que deshabilitarlo. Ahora veo que ya lo han solucionado. Bien!

Adjunto su mensaje:

Estimados usuarios, ya es posible acceder de forma normal al panel de administración de WordPress. Gracias por su paciencia.

Recientemente ha habido un ataque de fuerza bruta a gran escala hacia el archivo wp-login.php de WordPress, proveniente de una gran cantidad de IPs distribuidas alrededor del mundo.
Una gran botnet de alrededor de 90,000 servidores comprometidos ha estado intentando entrar a sitios basados en WordPress tratando de adivinar el nombre de usuario y la contraseña para acceder al escritorio de WordPress. Hostinger ha deshabilitado temporalmente el acceso a /wp-login.php en todos los servidores.
Tengan en cuenta que esto no tiene relación con la seguridad del servidor, sino con el funcionamiento propio de WordPress. Desde Hostinger se ha tomado esta medida para evitar graves problemas en sus sitios.

2013-05-23 18:12:02