PHPDetectar Llegada por Buscador en PHP

Detectar Llegada por Buscador en PHP

-

- Advertisment -

Este código sirve para detectar si un usuario llegó o no por algún buscador como por ejemplo Google, Bing, etc, aquí se hace uso de la superglobal $_SESSION. este tipo de código se usa por ejemplo para mostrar cierto datos si llegó por Google o para controlar las impresiones de Adsense.

Si tienes un sitio web bastante visitado y estás con el problema de impresiones de Adsense que a la larga te bajan el ingreso (muchas impresiones, pocos clicks) quizás quieras limitar las impresiones de publicidad. Por regla general si un usuario es recurrente a tu sitio web (la visita siempre) este entra por un marcador en su navegador o escribiendo la URL en la barra de direcciones, y este usuario casi nunca o jamás le da click en la Publicidad. así que te está generando impresiones.

Además que al ser usuario recurrente quizás quieras “recompensarlo” al no mostrarle publicidad y por tanto un sitio más limpio para que pueda navegar.

<?php
	session_start(); //comenzamos la session: Tema: https://www.elcodigofuente.com/como-usar-variable-session-php-305/
	if (!isset($_SESSION['llego_por_buscador'])) //Verificamos si la variable existe, SI no existe ejecutamos el codigo, si existe es porque ya llego ya sea por buscador o directamente
	{
		$_SESSION['llego_por_buscador']=FALSE; //Seteamos que llego de manera directa.
		$buscadores="google.|yahoo.|ask.|alltheweb.|aol.|hotbot.|altavista.|gigablast.|lycos.|netscape.|metacrawler.|bing."; //buscadores predefinidos, puedes aumentar mas
		$spiders = preg_quote("almaden.ibm.com|gigabot|appie 1.1|architext|ask jeeves|asterias2.0|augurfind|baiduspider|bannana_bot|bdcindexer|crawler|crawler@fast|docomo|fast-webcrawler|fluffy the spider|frooglebot|geobot|googlebot|mediapartners-google|gulliver|henrythemiragorobot|ia_archiver|infoseek|kit_fireball|lachesis|lycos_spider|mantraagent|mercator|msnbot|moget|muscatferret|nationaldirectory-webspider|naverrobot|ncsa beta|netresearchserver|ng/1.0|osis-project|polybot|pompos|scooter|seventwentyfour|sidewinder|sleek spider|slurp|steeler|szukacz|t-h-u-n-d-e-r-s-t-o-n-e|teoma|turnitinbot|ultraseek|vagabondo|voilabot|w3c_validator|zao|zyborg", '/'); //Colocamos la lista de arañas, ya que a ellas SI le vamos a mostrar la publicidad.

		if (preg_match('/('.$buscadores.')/i', $_SERVER['HTTP_REFERER'])) //verficamos si llegó por buscador
		{
			$_SESSION['llego_por_buscador']=TRUE; //si llego por buscador, entonces le ponemos TRUE
		}

		if (preg_match('/('.$spiders.')/i', strtolower($_SERVER['HTTP_USER_AGENT']))) //si es una araña, le ponemos en FALSE
		{
			$_SESSION['llego_por_buscador']=FALSE; //FALSE si es una araña, el equivalente a entrar directamente
		}
	}
?>

Este código por ejemplo, lo puedes usar en el HEADER de tu plantilla, ya sea en WordPress, Joomla, vBulletin, etc. y luego usarlo en cualquier parte del sitio invocando a la variable $_SESSION[‘llego_por_buscador’] donde si es TRUE quiere decir que llegó por buscador.

Artículo anteriorAngularJS de Google el Framework
Artículo siguienteUsando reCAPTCHA en PHP

2 COMENTARIOS

  1. amigo necesito ayuda;yo tengo una tabla para filtra por fecha;pero a la vez necesito solo que me reflejen el rango de fecha por el nombre que voy a ingresar;
    ejemplo ingreso los rango de fecha y ala vez necesito ingreso un nombre que tengo registro y solo quiero que se filtren por el nombre que ingrese.
    necesito declarar mas variables en isset

    ya tengo esto pero necesito agregar una variable mas

    Listado Por Fecha

    Búsqueda por Fecha

    Fecha comienzo:

    Fecha final:

    Nombres:

    <?php
    $SDATE = $_GET['start_date'];
    $SSDATE = explode('/', $SDATE);
    $START_DATE = $SSDATE[2]."-".$SSDATE[0]."-".$SSDATE[1];
    echo('’.$START_DATE.”);

    $EDATE = $_GET[‘end_date’];
    $EEDATE = explode(‘/’, $EDATE);
    $END_DATE = $EEDATE[2].”-“.$EEDATE[0].”-“.$EEDATE[1];
    echo(”.$END_DATE.”);

    //SELECT * FROM test WHERE course_date BETWEEN ‘2015-01-09’ AND ‘2015-10-01’

    $strsql = “SELECT * FROM prueba2 WHERE Fecha BETWEEN ‘$START_DATE’ AND ‘$END_DATE’ and nombres=’$m'”;
    $rs = mysql_query($strsql) or die(mysql_error());
    $row = mysql_fetch_assoc($rs);
    $total_rows = mysql_num_rows($rs);

    //print_r($row);
    ?>

    no
    fecha
    unid_acad
    nombres
    seccion
    categ_act

    0) {
    do {
    ?>

    No data found.

    Regresar

    necesito declarar la varible que esta dentro de la consulta (nombres=’$m’)

    • No se que andas haciendo con todo eso codigo, pero para agregar un campo texto en un select es:

      $strsql = “SELECT * FROM prueba2 WHERE Fecha BETWEEN ‘”.$START_DATE.”‘ AND ‘”.$END_DATE.”‘ and nombres like ‘%”. $nombre .”%'”;

      y depende si lo mandas por un metodo POST o GET es que debes usar el $nombre= $_POST[‘nombre’] o $nombre= $_GET[‘nombre’] según corresponda.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Últimas Noticias

WordPress – Crear BBCODE o shortcode personalizados

Los BBCODES o "shortcode" son esas funciones que tiene Wordpress y que se usan con corchetes, que generalmente te...

WordPress – Enviar título de la página o campo oculto, en Contact Form 7

Problema: Tengo un cliente que tiene una web con muchos productos y en todas sus páginas usa el mismo formulario...

Laravel – Modo Debug según IP

En algunos casos se necesita el modo DEBUG según IP, por ejemplo cuando estamos en producción y tenemos un...

Reemplazar URLs cuando cambias de dominio en WordPress (también de http a https)

Cuando haces un cambio de dominio por alguna razón (antes te llamabas www.viejodominio.com y ahora www.nuevodominio.com) si bien ya...
- Advertisement -

Como ejecutar comandos Artisan desde consola Git

Voy a suponer que ya tienen instalado el composer y php de manera global y un proyecto en Laravel....

Ejecutar Composer y/o PHP de manera Global en Windows

Si por alguna razón al instalar Composer este no funciona desde cualquier ruta estando en linea de comandos (ya...

Debe leer

- Advertisement -

También podría gustarteRELACIONADA
Recomendada para usted