Foros del Web » Programando para Internet » PHP »

[Aporte] Optimizando tu potencial Busquedas > Registros

Estas en el tema de [Aporte] Optimizando tu potencial Busquedas > Registros en el foro de PHP en Foros del Web. Bueno, tengo algo en mi web que no se si ya existe o es común pero yo no lo sabia xD. Ahi va mi aporte, ...
  #1 (permalink)  
Antiguo 01/10/2009, 09:19
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 9 meses
Puntos: 150
[Aporte] Optimizando tu potencial Busquedas > Registros

Bueno, tengo algo en mi web que no se si ya existe o es común pero yo no lo sabia xD. Ahi va mi aporte, por si os sirve, o quereis optimizarlo mejor.

En los contadores de visitas tenemos la tipica pagina de terminos de busqueda que llegan a nuestra web, pero... realmente ¿cuales de ellos resultan en registro en nuestra pagina?

Partiendo de que en nuestra tabla de usuarios tenemos un campo llamado GOOGLE, colocamos este código en todas nuestras paginas que pensemos que pueden llegar visitas desde el buscador google:

Código:
if ($_SESSION['origen']==""){  
session_register("google");$_SESSION['google']=$_SERVER['HTTP_REFERER'];
}
En la pagina donde realizamos el registro del usuario tendremos la siguiente funcion:


Código:
function GoogleQuery ($url) {
	//Comprobamos que la pagina referente pertenece a Google
	if (strpos ($url, "google"))	{
		//Almacenamos en la variable $string el contenido de la variable $_SERVER["HTTP_REFERER"]
		$string = $url;
		
		//Inicialimamos a 0 el valor de la variable que nos indicara la longitud de la cadena contenida en la variable q.
		$longQuery = 0;
		
		// — Encontramos la variable q y su final delimitado por &
		for ($i=0; $i < strlen ($string); $i++){
			if (substr($string,$i,1) == "q" and substr($string,$i+1,1) == "=" and substr($string,$i-1,1) == "&")	{
				for ($n=$i; $n < strlen ($string)+1 ;$n++) {
					if ($string[$n] == "&" or $n==strlen ($string))	{
						// — Extraemos la subcadena a partir de las posiciones de (inicio)$i+2 [excluimos 'q='] y (fin)$n-2 [adelantamos 2 posiciones el final de la cadena resultante]
						$q = substr ($string, $i+2, $longQuery-2);
						break;
					}
					$longQuery ++;
				}
				break;
			}
		}
		//reemplazamos los símbolos + por espacios en blanco
		$q = str_replace("+"," ",$q);
	}
	return $q;
}

Luego en nuestro INSERT a la tabla guardaremos en nuestro campo GOOGLE el valor que nos devuelve la funcion enviandole la URL de llegada:

Código:
GoogleQuery($_SESSION['origen'])

Por ultimo cuando pasen unos dias, podeis realizar una consulta a vuestra base de datos para analizar que busquedas son las que realmente teneis que potenciar:


Código:
select DISTINCT GOOGLE,COUNT(ID) AS TOTAL from usuarios group by GOOGLE ORDER BY TOTAL DESC

.

Se agradecerian comentarios, opiniones sobre otros metodos o lo que sea, saludos

Última edición por Vun; 01/10/2009 a las 09:25
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:15.