Contador de visitas en un sitio web utilizando PHP

En esta publicación vamos a realizar un script en “php” que nos servirá como un contador de visitas para nuestro sitio web.

Un contador de visitas sirve para indicar el número de visitantes que ha tenido un sitio web de forma que incrementa cada vez que una persona acceda al sitio.
Actualmente se puede ver esta “estrategia” en sitios web personales ya que muestran la cantidad de lectores que tienen un interés en común.

Existen muchas formas de realizar un contador de visitas.

  • Obtener un servicio gratuito en Internet y pegar el código con un script ya establecido.
  • Crear un propio script y manipularlo directamente en una tabla de una base de datos enlazada a nuestro sitio web.
  • Crear un propio script y guardarlo en un archivo de texto plano el contador.

A continuación realizaremos un script y lo guardaremos en un archivo de texto plano, este método es el más sencillo de implementar y se puede visualizar el objetivo general de tener un contador de visitas.

Pasos:

  1. Crear un archivo de texto plano con cualquier extensión ya sea .txt, .contador, etc. Y escribir el numero 0 como único contenido y guardarlo en el mismo directorio del archivo .php que crearemos a continuación.
  2. Crear un script que llamaremos “contador_visitas.php” para aumentar el número que está almacenado en el archivo que creamos anteriormente ya que se activara cada vez que cargue el sitio web y sea llamado el script.

a.- Ubicamos el archivo que creamos anteriormente. (1)
b.- 
Abrimos el archivo en modo de lectura con la letra “r”. (2)
c.- 
Verificamos si el archivo vea abierto exitosamente. (3)
d.-
 Leemos el archivo y guardamos su contenido en la variable “contador”. (4)
e.-
 Aumentamos 1 a nuestro variable contador. (5)
f.-
 Abrimos nuevamente el archivo pero ahora en modo de escritura con “w+”. (6)
g.- 
Escribimos en el archivo el nuevo número de visitantes. (7)

4.- Ahora podremos utilizar este script en cualquier sitio web que queramos. Podremos ejecutarlo desde el inicio al cargar el sitio.

Uso de POST, GET y REQUEST en PHP

El lenguaje de PHP es un lenguaje de código abierto muy popular adecuado para el desarrollo web; PHP cuenta con etiquetas que nos ayudan al envió y recuperación de datos desde un servidor como lo son POST, GET  Y REQUEST.

Para utilizar estas etiquetas antes que nada se requiere de tener un servidor activo ya sea WampServer, Xampp, etc.

El siguiente formulario será utilizado para los tres próximos ejemplos modificando solo partes significativas del código.

El código de HTML es el siguiente:

GET

El método GET es un arreglo asociativo de variables enviados por medio de la URL. Consiste en enviar la información de un formulario y que se “incruste” en la URL junto con la página php.

La estructura de la URL es la siguiente.

altaRegistro.php?txtNombre=Nombre&txtAlias=Alias&txtPwd=123&retxtPwd=123

Donde se divide la URL en la dirección y los datos que se envían. El ‘?’ tiene la función de ser un separador entre la página y la información enviada y el ‘&’ sirve para separar los datos entre sí.

Para extraer la información por GET se utiliza la etiqueta $_GET y el nombre de la variable en el arreglo, tomando como ejemplo $_GET[‘txtNombre’].

POST

El método POST es un arreglo dinámico de variables asociadas a una petición. Aunque es algo parecido al método GET la característica de este método es que el envió de información es “invisible” para el usuario ya que a comparación del método GET no se muestra la información en la URL.

Para extraer la información por POST se utiliza la etiqueta $_POST y el nombre de la variable en el arreglo, tomando como ejemplo $_POST[‘txtNombre’].

REQUEST

El método REQUEST es un arreglo asociativo que por defecto contiene el contenido de tres métodos: GET, POST y COOKIE.

Una gran característica que tiene REQUEST es que se considera como una variable “superglobal” lo que significa que es una variable que estará disponible en cualquier parte del script ya sean métodos o funciones dentro del mismo.

Al utilizar REQUEST para obtener la información enviada desde un formulario en la parte de la etiqueta “method” se puede usar tanto GET como POST.

Uso básico de PHPmailer

A continuación les muestro un código que ejemplifica las lineas necesarias para el envío de correo electrónico usando PHPmailer via SMTP.
Inicialmente necesitamos descargar al menos las clases las clases class.phpmailer.php y class.smtp necesarias para su funcionamiento, la descarga se puede hacer desde aquí .

<?php
require "includes/class.phpmailer.php";
$mail = new phpmailer();

//parametros de configuración del servidor de envio
$mail-Mailer = "smtp";
$mail->Host = "servidor.dominio.com";
$mail->Username = "Nombre-de-usuario";
$mail->Password = "******************";
//en caso de que el servidor utilice autenticación para conectarse especificamos
$mail->SMTPAuth = true;
//si el puerto utilizado no es el predeterminado (25) debemos especificar explicitamente el puerto de conexion utilizado por el servidor
$mail->Port = 587;

$mail->From = "usuario@dominio.com";
$mail->FromName = "Nombre del usuario";

$mail->Timeout=30;

//Indicamos cual es la dirección de destino del correo
$mail->AddAddress("destino@dominio.com");

$mail->Subject = "Colocamos aquí el asunto del correo";
$mail->Body = "Dentro de Body colocamos el cuerpo del correo electónico“;

$mail->AltBody = “AltBody es un mensaje de texto alternativo al contenido del cuerpo del mensaje, debe ser descriptivo al contenido del mensaje”;
$seEnvio = false;
//se realizan hasta 5 intentos de envio de correo
$intentos=0;
while ((!$seEnvio) && ($intentos < 5)) {
sleep(5);
$seEnvio= $mail->Send();
$intentos=$intentos+1;
}
if(!$seEnvio)
{
echo “Ocurrio un error al intentar enviar el correo “;
echo “
“.$mail->ErrorInfo;
}
else
{
echo “El mensaje de correo electrónico se envió correctamente”;
}
?>

Las consideraciones que debemos tener son:

  • Verificar el nombre o IP del servidor de correo que utilizaremos para enviar el correo
  • Verificar el puerto de comunicación
  • Verificar si el servidor requiere autenticación
  • Verificar el puerto de comunicación
  • Proporcionar correctamente el nombre y contraseña de la cuenta de usuario

Saludos