Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Graphixx en 30 Diciembre 2010, 21:34 pm



Título: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: Graphixx en 30 Diciembre 2010, 21:34 pm
COdigo del referer:
Código
  1. <?php
  2. $url=$_SERVER['HTTP_REFERER'];
  3. echo '<strong>'."viene de(ruta completa): ".'</strong>'.$_SERVER['HTTP_REFERER'].'<br />';
  4.  
  5. preg_match( '@^(?:http://)?([^/]+)@i', $_SERVER['HTTP_REFERER'], $matches );
  6. $host = $matches[1];
  7.  
  8. echo '<strong>'."viene de(dominio): ".'</strong>'.$host;
  9. ?>
Alguien sabe como optener hacia que pagina parte el usuario?, el contrario de HTTP_REFERER....?

Todo hace parte de un super contador de visitas que estoy programando, llevo esto:
"Super contador de Visitas en PHP"=300MB SQL+4 millones de registros+Scripts (http://foro.elhacker.net/php/super_contador_de_visitas_en_php300mb_sql4_millones_de_registrosscripts-t315327.0.html)

La idea es lograr algo como esto:
http://live.feedjit.com/live/sistemasycontroles.net/0/

SI se fijan marcan con flechas verdes los ingresos y con flechas rojas las "salidas" y hacia donde partio el usuario, como lo logran ?


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: ~ Yoya ~ en 2 Enero 2011, 22:21 pm
El referer indica de donde vienes y el contrario seria a donde irías no, que seria algo imposible de saber pero quizás predecible... Piensa que si el usuario esta en tu web y va a google no tendrás forma de saber que fue a google.


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: Feedeex en 3 Enero 2011, 09:34 am
Pienso que no es posible si se sale de tu web, ya que no tendrás control de hacia donde puede ir porque tu código ya no correrá.


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: Graphixx en 3 Enero 2011, 22:26 pm
Si es que lo que yo quiero saber, es cuando le da a un enlace sea de publicidad, o un hipervinculo en el cuerpo de mi web, a cual de todos los enlaces le dio clic, por cual partio.... vale.


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: Feedeex en 4 Enero 2011, 03:14 am
Ah.. lo del hipervínculo en tu web se puede hacer, con cookies. Lo de publicidad lo dudo mucho ya que, como dije anteriormente, se sale de tu web y ya no podés correr ningún tipo de código.


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: Graphixx en 6 Enero 2011, 06:42 am
La idea es lograr algo como esto:
http://live.feedjit.com/live/sistemasycontroles.net/0/

SI se fijan marcan con flechas verdes los ingresos y con flechas rojas las "salidas" y hacia donde partio el usuario, como lo logran ?


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: Feedeex en 6 Enero 2011, 19:51 pm
Sin un script del lado del cliente dudo que se pueda, aún con cookies. No entiendo bien la página.
Si fuese un enlace de tu web podrías hacer algo como:

a.php
Código:
<a href="asd.php">Go to ASD</a>

asd.php
Código:
<?php
$_COOKIE['arrive_pag'] = "asd.php";
header("Location: a.php");

En a.php clickea el enlace y va a asd.php, en asd.php se guarda un valor en una cookie, retorna a a.php  ahi el valor se guarda.
Pero habría que ver el funcionamiento de esa página, porque que devuelva la página que iré a visitar es prácticamente imposible, eso solo esta en mi mente, y quizás ni siquiera eso.


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: Graphixx en 7 Enero 2011, 21:09 pm
Pero este script al agregarlo al index de la pagina, guarda y almacena hacia que enlaces de los listados en la pagina, partio el usuario, sin necesidad de agregar nada mas.
http://live.feedjit.com/live/sistemasycontroles.net/0/

como lo hacen ?


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: Belem en 7 Enero 2011, 22:27 pm
Yo hice algo parecido alguna vez, el truco consitia masomenos en esto:

Cuando el user entra a mi Web verifico con un SESSIONID/cookie, si es  la primera pagina de mi dominio que visita, de ser asi le genero una sesion con un ID unico y la página de la que vino (HTTP_REFERER).

Suponiendo que en mi Web hay un boton, texto o imagen que dice: Ir a Google, en el enlace yo tenia algo como esto:

Código:
<a href="out.php?o=google" >Ir a Google</a>

Observar que cuando el usuario le daba clic al enlace realmente lo llevo a out.php, en el cual tenia código que guardaba el ID de sesión generado cuando el user abre por primera vez una page de mi dominio, la pagina de la que vino y el id del vinculo (en este caso google).

Para presentar las estadisticas ponia cada ID de sesion como un user diferente.


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: Graphixx en 8 Enero 2011, 18:28 pm
La cosa es que por ejemplo ese plugin de feedjit con solo pegar el script en la barra de menus lateral de cualquier website optiene esos datos sin tener que modificar todos los enlaces de la web:

COdigo del plugin feedjit generico:
Código:
<script type="text/javascript" src="http://feedjit.com/serve/?vv=693&amp;tft=3&amp;dd=0&amp;wid=46aa56b173f8da0a&amp;pid=0&amp;proid=0&amp;bc=FFFFFF&amp;tc=000000&amp;brd1=012B6B&amp;lnk=135D9E&amp;hc=FFFFFF&amp;hfc=2853A8&amp;btn=C99700&amp;ww=300&amp;wne=10&amp;wh=Live+Traffic+Feed&amp;hl=0&amp;hlnks=0&amp;hfce=0&amp;srefs=0&amp;hbars=0&amp;went=10"></script><noscript><a href="http://feedjit.com/">Feedjit Live Blog Stats</a></noscript>

fuente: http://feedjit.com/freeLiveTrafficFeed/#getOther

EL plugin para wordpress y joomla va asi:
Código
  1. <?php
  2. /**
  3.  * @package Feedjit
  4.  * @author Feedjit Inc.
  5.  * @version 1.0.2
  6.  */
  7. /*
  8. Plugin Name: Feedjit Live Traffic Feed
  9. Plugin URI: http://feedjit.com/
  10. Description: Feedjit's Live Traffic Feed shows your recent visitors in your blog side-bar. Click the "Watch in Real-Time" link at the bottom to watch your visitors arrive on your site in real-time, see where they came from, what browser and operating system they're running, which page they land on and what they click to leave.
  11. Author: Feedjit Inc.
  12. Version: 1.0.2
  13. Author URI: http://feedjit.com/
  14. */
  15. function feedjit_version(){ return '1.0.2'; }
  16. function feedjit_widget(){
  17. $o = get_option('feedjit_options');
  18. echo '<script type="text/javascript" src="http://feedjit.com/serve/?' .
  19. 'wid=44ac2f273820bae8' .
  20. '&amp;pid=0' .
  21. '&amp;proid=0' .
  22. '&amp;vv=693' .
  23. '&amp;dd=' .
  24. '&amp;bc=' . $o['backgroundColor'] .
  25. '&amp;tc=' . $o['textColor'] .
  26. '&amp;brd1=' . $o['borderColor'] .
  27. '&amp;lnk=' . $o['linkColor'] .
  28. '&amp;hc=' . $o['headingColor'] .
  29. '&amp;hfc=' . $o['headerFooterColor'] .
  30. '&amp;btn=' . $o['buttonColor'] .
  31. '&amp;ww=' . $o['width'] .
  32. '&amp;tft=3' .
  33. '"></script><noscript><a href="http://feedjit.com/">Feedjit Live Traffic Feed</a></noscript>';
  34. }
  35. function feedjit_control(){
  36. $o = get_option('feedjit_options');
  37. if($_POST['fj_dataSent']){
  38. foreach(array('width', 'backgroundColor', 'textColor', 'headingColor', 'borderColor', 'linkColor', 'headerFooterColor', 'buttonColor') as $key){
  39. $fjkey = 'fj_' . $key;
  40. $o[$key] = $_POST[$fjkey];
  41. }
  42. update_option('feedjit_options', $o);
  43. }
  44. echo(
  45. '<input type="hidden" name="fj_dataSent" value="1" /><table border="0" cellpadding="2" cellspacing="0">' .
  46. '<tr><td>Width in pixels:</td><td><input type="text" name="fj_width" value="' . $o['width'] . '" size="3" /></td></tr>' .
  47. '<tr><td>Background color:</td><td><input class="feedjitColor" type="text" name="fj_backgroundColor" value="' . $o['backgroundColor'] . '" size="6" /></td></tr>' .
  48. '<tr><td>Text color:</td><td><input class="feedjitColor" type="text" name="fj_textColor" value="' . $o['textColor'] . '" size="6" /></td></tr>' .
  49. '<tr><td>Heading color:</td><td><input class="feedjitColor" type="text" name="fj_headingColor" value="' . $o['headingColor'] . '" size="6" /></td></tr>' .
  50. '<tr><td>Border color:</td><td><input class="feedjitColor" type="text" name="fj_borderColor" value="' . $o['borderColor'] . '" size="6" /></td></tr>' .
  51. '<tr><td>Link color:</td><td><input class="feedjitColor" type="text" name="fj_linkColor" value="' . $o['linkColor'] . '" size="6" /></td></tr>' .
  52.  
  53. '<tr><td>Header/Footer:</td><td><input class="feedjitColor" type="text" name="fj_headerFooterColor" value="' . $o['headerFooterColor'] . '" size="6" /></td></tr>' .
  54. '<tr><td>Button color:</td><td><input class="feedjitColor" type="text" name="fj_buttonColor" value="' . $o['buttonColor'] . '" size="6" /></td></tr>' .
  55.  
  56. '</table>' .
  57. '<script type="text/javascript">jscolor.init();</script>'
  58.  
  59.  
  60. );
  61. }
  62. function feedjit_loaded(){
  63. feedjit_setDefaultOpts();
  64. $widget_ops = array('classname' => 'Feedjit', 'description' => "Feedjit Live Traffic Feed." );
  65. wp_register_sidebar_widget('feedjit_widget', 'Feedjit', 'feedjit_widget', $widget_ops);
  66. register_widget_control('feedjit_widget', 'feedjit_control');
  67. }
  68. function feedjit_setDefaultOpts(){
  69. $defaults = array(
  70. 'width' => 183,
  71. 'backgroundColor' => 'FFFFFF',
  72. 'textColor' => '000000',
  73. 'headingColor' => 'FFFFFF',
  74. 'borderColor' => '012B6B',
  75. 'linkColor' => '135D9E',
  76. 'headerFooterColor' => '212A3B',
  77. 'buttonColor' => '1F9937',
  78. );
  79.  
  80. $o = get_option('feedjit_options');
  81. $missing = false;
  82. if(! $o){
  83. $missing = true;
  84. } else {
  85. foreach(array_keys($defaults) as $k){
  86. if((! isset($o[$k])) && (! preg_match("/(?:hideLogo|hideLinks|wHead)/", $k)) ){
  87. $missing = true;
  88. break;
  89. }
  90. }
  91. }
  92. if($missing){
  93. update_option('feedjit_options', $defaults);
  94. }
  95. }
  96. function feedjit_head(){
  97. echo '<script type="text/javascript">var feedjit_pid="0"; var feedjit_wid="44ac2f273820bae8"; var feedjit_proid="0"; var feedjit_version="1.0.2";</script><script type="text/javascript" src="http://feedjit.com/js/wp/wp.js"></script>';
  98. }
  99.  
  100. add_action('plugins_loaded','feedjit_loaded');
  101. add_action('admin_head', 'feedjit_head');
  102.  


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: WHK en 8 Enero 2011, 19:09 pm
puedes detectar si ha salio pero no hacia donde fue.

(http://img829.imageshack.us/img829/7949/sinttuloklc.png)

Arrival or Departure: Llegada o de salida. indica si el visitante aun está en la web pero no indica hacia donde se ha ido.

Country: Pais del visitante.

Browser: User-Agent del explorador.

OS: Sistema Operativo.

Website: Desde donde llegó a a página (referer)

Long description: Todo lo anterior pero en texto, no en iconos de imágenes.


En ninguna parte sale hacia donde se fue, solo dice si se ha quedado o se ha ido.
esto se puede hacer de dos formas:

La mayoría de los sistemas CMS como joomla, smf, vbulletín puede saber si un usuario está conectado o no, por ejemplo cuando entro a la web aparezco como visitante pero cuando me voy ya no aparezco en el contador.

Esto sucede porque el sistema tiene una base de datos con las ips conectadas mas la hora exacta a la que se conectó por última ves, entonces si dentro de 10 minutos aproximadamente no vuelves a visitar la web o no haces petición a alguna página significa que ya te fuiste y no te cuenta como visitante.

En otras palabras hace una comparación de tiempos de accesos.

La otra forma si lo quieres hacer en tiempo real es con onblur() y onload() ya que onload es cuando alguien entra y onblur cuando alguien sale, el problema es que si alguien detiene el proceso del explorador o apaga su pc con el explorador abierto esta función no se ejecuta y te figuraría conectado para siempre a enos que hagas una mezcla con la técnica anterior y le des vencimiento en segundos.

Por ejemplo... una forma de hacerlo en tiempo real es hacer un script, cuando la persona entre dejas grabado en la base de datos que ya está conectado, o sea su ip mas la hora en que hizo la petición a la página, luego el mismo script envía unos keeps alives o sea varias peticiónes GET via ajax cada 15 segundos para reportar al servidor que aun estas conectado, si esas peticiones cesan es porque la persona ya no está conectada y para hacerlo mas rápido le dices que con onblur() envíe una petición rápida para decirle al servidor que te has desconectado.

Lo del user-agent y el sistema operativo lo puedes calcular con el header que envía el explorador y el pais con las infinitas bases de datos que hay por internet.
Lo del referer lo calculas con el header referer y ya, le calculas el host real y le pones una imagen dependiendo del host.


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: Graphixx en 8 Enero 2011, 19:36 pm
COmo que no muestra hacia donde parten los usuarios bro ,mira que si:
http://live.feedjit.com/live/sistemasycontroles.net/0/
(http://img35.imageshack.us/img35/6007/departures.png)
Hasta muestra en que sección de la web, estaba el enlace por el que partio (inicio,clientes,contacto....etc).

Entonces, como capturan esa info? , si obviamente ningun enlace de la web tuvo que ser modificado para ellos capturar la informacion, tiene que haber una funcion para saber en que enlace clickeo el usuario al partir. el contrario de HTTP_REFERER?


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: Graphixx en 8 Enero 2011, 19:43 pm
Lo del user-agent y el sistema operativo lo puedes calcular con el header que envía el explorador y el pais con las infinitas bases de datos que hay por internet.
Lo del referer lo calculas con el header referer y ya, le calculas el host real y le pones una imagen dependiendo del host.

ya todo eso que mencionaste lo estoy implementando aca:
"Super contador de Visitas en PHP"=300MB SQL+4 millones de registros+Scripts (http://foro.elhacker.net/php/super_contador_de_visitas_en_php300mb_sql4_millones_de_registrosscripts-t315327.0.html)


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: WHK en 8 Enero 2011, 21:48 pm
Citar
San Salvador arrived from google.com.sv on "» Nosotros".

from en ingles quiere decir "desde", ese es el refere no hacia donde va.

http://translate.google.cl/translate_a/t?client=t&text=San%20Salvador%20arrived%20from%20google.com.sv%20on%20%22%C2%BB%20Nosotros%22.%20&hl=es&sl=en&tl=es&multires=1&swap=1&prev=conf&psl=en&ptl=en&otf=1&it=sel.4023&sc=1

Citar
San Salvador llegó de google.com.sv sobre "» Nosotros ".

tomas el referer le haces un file_get_contents($_SERVER['HTTP_REFERER']); y calculas el ^<head>*<title>$1</title>

por políticas de seguridad ningún explorador te va a decir hacia donde va alguien y si logras saberlo es porque encontraste una vulnerabilidad en ese explorador pero a la buena no se puede, no porque no se tenga conocimiento sino porque el explorador está diseñado para que tu no lo sepas.


Título: Re: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER?
Publicado por: Graphixx en 9 Enero 2011, 01:14 am
Colombia left via contactosocial.com.co from ">> CLientes"

Colombia dejó a través de contactosocial.com.co de ">> Clientes"

(http://img35.imageshack.us/img35/6007/departures.png)
Ese plugin si muestra hacia donde parte el usuario... el trozo que tu tomastes es el que se graba cuando la persona llega, no cuando se va.