Tema destacado: ¡Aprende hacking con práctica! - arZone, el wargame de elhacker.net
Autor
|
Tema: saber hacia que pagina parte el usuario, el contrario de HTTP_REFERER? (Leído 1,593 veces)
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
COdigo del referer: <?php $url=$_SERVER['HTTP_REFERER']; echo '<strong>'."viene de(ruta completa): ".'</strong>'.$_SERVER['HTTP_REFERER'].'<br />'; preg_match( '@^(?:http://)?([^/]+)@i', $_SERVER['HTTP_REFERER'], $matches ); $host = $matches[1]; echo '<strong>'."viene de(dominio): ".'</strong>'.$host; ?> 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+ScriptsLa 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 ?
|
|
|
|
« Última modificación: 6 Enero 2011, 06:43 por Graphixx »
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
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.
|
|
|
|
|
En línea
|
|
|
|
Feedeex
Desconectado
Mensajes: 172
|
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á.
|
|
|
|
|
En línea
|
|
|
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
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.
|
|
|
|
|
En línea
|
|
|
|
Feedeex
Desconectado
Mensajes: 172
|
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.
|
|
|
|
|
En línea
|
|
|
|
|
|
Feedeex
Desconectado
Mensajes: 172
|
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<a href="asd.php">Go to ASD</a> asd.php<?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.
|
|
|
|
|
En línea
|
|
|
|
|
|
Belem
Desconectado
Mensajes: 203
|
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: <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.
|
|
|
|
|
En línea
|
[ *BELEM * ]
|
|
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
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: <script type="text/javascript" src="http://feedjit.com/serve/?vv=693&tft=3&dd=0&wid=46aa56b173f8da0a&pid=0&proid=0&bc=FFFFFF&tc=000000&brd1=012B6B&lnk=135D9E&hc=FFFFFF&hfc=2853A8&btn=C99700&ww=300&wne=10&wh=Live+Traffic+Feed&hl=0&hlnks=0&hfce=0&srefs=0&hbars=0&went=10"></script><noscript><a href="http://feedjit.com/">Feedjit Live Blog Stats</a></noscript> fuente: http://feedjit.com/freeLiveTrafficFeed/#getOtherEL plugin para wordpress y joomla va asi: <?php /** * @package Feedjit * @author Feedjit Inc. * @version 1.0.2 */ /* Plugin Name: Feedjit Live Traffic Feed Plugin URI: http://feedjit.com/ 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. Author: Feedjit Inc. Version: 1.0.2 Author URI: http://feedjit.com/ */ function feedjit_version(){ return '1.0.2'; } function feedjit_widget(){ $o = get_option('feedjit_options'); echo '<script type="text/javascript" src="http://feedjit.com/serve/?' . 'wid=44ac2f273820bae8' . '&pid=0' . '&proid=0' . '&vv=693' . '&dd=' . '&bc=' . $o['backgroundColor'] . '&tc=' . $o['textColor'] . '&brd1=' . $o['borderColor'] . '&lnk=' . $o['linkColor'] . '&hc=' . $o['headingColor'] . '&hfc=' . $o['headerFooterColor'] . '&btn=' . $o['buttonColor'] . '&ww=' . $o['width'] . '&tft=3' . '"></script><noscript><a href="http://feedjit.com/">Feedjit Live Traffic Feed</a></noscript>'; } function feedjit_control(){ $o = get_option('feedjit_options'); if($_POST['fj_dataSent']){ foreach(array('width', 'backgroundColor', 'textColor', 'headingColor', 'borderColor', 'linkColor', 'headerFooterColor', 'buttonColor') as $key){ $fjkey = 'fj_' . $key; $o[$key] = $_POST[$fjkey]; } update_option('feedjit_options', $o); } echo( '<input type="hidden" name="fj_dataSent" value="1" /><table border="0" cellpadding="2" cellspacing="0">' . '<tr><td>Width in pixels:</td><td><input type="text" name="fj_width" value="' . $o['width'] . '" size="3" /></td></tr>' . '<tr><td>Background color:</td><td><input class="feedjitColor" type="text" name="fj_backgroundColor" value="' . $o['backgroundColor'] . '" size="6" /></td></tr>' . '<tr><td>Text color:</td><td><input class="feedjitColor" type="text" name="fj_textColor" value="' . $o['textColor'] . '" size="6" /></td></tr>' . '<tr><td>Heading color:</td><td><input class="feedjitColor" type="text" name="fj_headingColor" value="' . $o['headingColor'] . '" size="6" /></td></tr>' . '<tr><td>Border color:</td><td><input class="feedjitColor" type="text" name="fj_borderColor" value="' . $o['borderColor'] . '" size="6" /></td></tr>' . '<tr><td>Link color:</td><td><input class="feedjitColor" type="text" name="fj_linkColor" value="' . $o['linkColor'] . '" size="6" /></td></tr>' . '<tr><td>Header/Footer:</td><td><input class="feedjitColor" type="text" name="fj_headerFooterColor" value="' . $o['headerFooterColor'] . '" size="6" /></td></tr>' . '<tr><td>Button color:</td><td><input class="feedjitColor" type="text" name="fj_buttonColor" value="' . $o['buttonColor'] . '" size="6" /></td></tr>' . '</table>' . '<script type="text/javascript">jscolor.init();</script>' ); } function feedjit_loaded(){ feedjit_setDefaultOpts(); $widget_ops = array('classname' => 'Feedjit', 'description' => "Feedjit Live Traffic Feed." ); wp_register_sidebar_widget('feedjit_widget', 'Feedjit', 'feedjit_widget', $widget_ops); register_widget_control('feedjit_widget', 'feedjit_control'); } function feedjit_setDefaultOpts(){ $defaults = array( 'width' => 183, 'backgroundColor' => 'FFFFFF', 'textColor' => '000000', 'headingColor' => 'FFFFFF', 'borderColor' => '012B6B', 'linkColor' => '135D9E', 'headerFooterColor' => '212A3B', 'buttonColor' => '1F9937', ); $o = get_option('feedjit_options'); $missing = false; if(! $o){ $missing = true; } else { foreach(array_keys($defaults) as $k){ if((! isset($o[$k])) && (! preg_match("/(?:hideLogo|hideLinks|wHead)/", $k)) ){ $missing = true; break; } } } if($missing){ update_option('feedjit_options', $defaults); } } function feedjit_head(){ 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>'; } add_action('plugins_loaded','feedjit_loaded'); add_action('admin_head', 'feedjit_head');
|
|
|
|
« Última modificación: 8 Enero 2011, 18:31 por Graphixx »
|
En línea
|
|
|
|
WHK
吴阿卡
Ex-Staff
Desconectado
Mensajes: 4.113
The Hacktivism is not a crime
|
puedes detectar si ha salio pero no hacia donde fue. 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.
|
|
|
|
|
En línea
|
|
|
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
COmo que no muestra hacia donde parten los usuarios bro ,mira que si: http://live.feedjit.com/live/sistemasycontroles.net/0/ 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?
|
|
|
|
« Última modificación: 8 Enero 2011, 19:40 por Graphixx »
|
En línea
|
|
|
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
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
|
|
|
|
|
En línea
|
|
|
|
|
|
Graphixx
Conectado
Mensajes: 576
Webmaster (PHP)
|
Colombia left via contactosocial.com.co from ">> CLientes" Colombia dejó a través de contactosocial.com.co de ">> Clientes"  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.
|
|
|
|
|
En línea
|
|
|
|
|
|