PHP - HTTP_REFERER

 
Vista:

HTTP_REFERER

Publicado por maxlox (8 intervenciones) el 31/07/2007 16:56:57
Hola tengo un archivo php con lo siguiente:

<?php
session_start();
if( !isset($_SESSION['ref']) )
{
$r = $_SERVER['HTTP_REFERER'];
$_SESSION['ref'] = $r;
}
?>

y en un formulario devuelvo el resultado.

Lo utilizo para saber de que URL me vienen las visitas a mi página , me funciona con la mayoria de paginas, pero con algunas que me enlazan no consigo el referer ( me devuelve mi propia pagina como referer ). ¿ Sabéis que puede ser ?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:HTTP_REFERER

Publicado por Diego Romero (1450 intervenciones) el 31/07/2007 20:02:42
El parámetro HTTP_REFERER lo envia el navegador, no es obligación del navegador enviar este parámetro por lo que no puedes confiar de que siempre exista o que sea estrictamente correcto. Tendrás que contemplar la posibilidad de que no haya referer dentro de tu código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:HTTP_REFERER

Publicado por maxlox (8 intervenciones) el 01/08/2007 11:18:03
¿Y que debo añadir entonces?. Para saber el referer de todas o no es posible. Una pagina que me enlaza es la que no consigo el referer y lo necesito para informarle de la gente que me visita desde su pagina.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:HTTP_REFERER

Publicado por erwin torres leon (3 intervenciones) el 16/01/2013 17:00:11
ola nuevamente recurro a su ayuda pz tengo un problema con un codigo:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?
// Motor autentificación usuarios.
 
// Cargar datos conexion y otras variables.
 
 
 
 
require "config.php";
 
 
// chequear página que lo llama para devolver errores a dicha página.
 
$url =(explode("?",$_SERVER['HTTP_REFERER']));
$pag_referida=$url[0];
$redir=$pag_referida;
// chequear si se llama directo al script.
if (($_SERVER['HTTP_REFERER']) == " "){
	echo ('<br><br><br>');
die ("<b><center>Error cod.:1 - Acceso incorrecto!!!! -- Debe usted validar su pase para entrar en mi web.<br><br><a href='login.php'>Pinchar aquí para validarse</a></center></b>");
exit;
}
 
 
 
// Chequeamos si se está autentificandose un usuario por medio del formulario
if (isset($_POST['user']) && isset($_POST['pass'])) {
 
// Conexión base de datos.
// si no se puede conectar a la BD salimos del scrip con error 0 y
// redireccionamos a la pagina de error.
$db_conexion= mysql_connect("$Servidor", "$Usuario", "$Password") or die(header ("Location:  $redir?error_login=0"));
mysql_select_db("$BaseDeDatos");
 
// realizamos la consulta a la BD para chequear datos del Usuario.
$usuario_consulta = mysql_query("SELECT ID,usuario,pass,nivel_acceso FROM $sql_tabla WHERE usuario='".$_POST['user']."'") or die(header ("Location:  $redir?error_login=1"));
 
 // miramos el total de resultado de la consulta (si es distinto de 0 es que existe el usuario)
 if (mysql_num_rows($usuario_consulta) != 0) {
 
    // eliminamos barras invertidas y dobles en sencillas
    $login = stripslashes($_POST['user']);
    // encriptamos el password en formato md5 irreversible.
    $password = ($_POST['pass']);
 
    // almacenamos datos del Usuario en un array para empezar a chequear.
 	$usuario_datos = mysql_fetch_array($usuario_consulta);
 
    // liberamos la memoria usada por la consulta, ya que tenemos estos datos en el Array.
    mysql_free_result($usuario_consulta);
    // cerramos la Base de dtos.
    mysql_close($db_conexion);
 
    // chequeamos el nombre del usuario otra vez contrastandolo con la BD
    // esta vez sin barras invertidas, etc ...
    // si no es correcto, salimos del script con error 4 y redireccionamos a la
    // página de error.
    if ($login != $usuario_datos['usuario']) {
       	Header ("Location: $redir?error_login=4");
		exit;}
 
    // si el password no es correcto ..
    // salimos del script con error 3 y redireccinamos hacia la página de error
    if ($password != $usuario_datos['pass']) {
        Header ("Location: $redir?error_login=3");
	    exit;}
 
    // Paranoia: destruimos las variables login y password usadas
    unset($login);
    unset ($password);
 
    // En este punto, el usuario ya esta validado.
    // Grabamos los datos del usuario en una sesion.
 
     // le damos un mobre a la sesion.
    session_name($usuarios_sesion);
     // incia sessiones
    session_start();
 
    // Paranoia: decimos al navegador que no "cachee" esta página.
    session_cache_limiter('nocache,private');
 
    // Asignamos variables de sesión con datos del Usuario para el uso en el
    // resto de páginas autentificadas.
 
    // definimos usuarios_id como IDentificador del usuario en nuestra BD de usuarios
    $_SESSION['usuario_id']=$usuario_datos['ID'];
 
    // definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
    $_SESSION['usuario_nivel']=$usuario_datos['nivel_acceso'];
 
    //definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
    $_SESSION['usuario_login']=$usuario_datos['usuario'];
 
    //definimos usuario_password con el password del usuario de la sesión actual (formato md5 encriptado)
    $_SESSION['usuario_password']=$usuario_datos['pass'];
 
 
    // Hacemos una llamada a si mismo (scritp) para que queden disponibles
    // las variables de session en el array asociado $HTTP_...
    $pag=$_SERVER['PHP_SELF'];
    Header ("Location: $pag?");
    exit;
 
   } else {
      // si no esta el nombre de usuario en la BD o el password ..
      // se devuelve a pagina q lo llamo con error
      Header ("Location: $redir?error_login=2");
      exit;}
} else {
 
// -------- Chequear sesión existe -------
 
// usamos la sesion de nombre definido.
session_name($usuarios_sesion);
// Iniciamos el uso de sesiones
@session_start();
 
// Chequeamos si estan creadas las variables de sesión de identificación del usuario,
// El caso mas comun es el de una vez "matado" la sesion se intenta volver hacia atras
// con el navegador.
 
if (!isset($_SESSION['usuario_login']) && !isset($_SESSION['usuario_password'])){
// Borramos la sesion creada por el inicio de session anterior
session_destroy();
//die ("Error cod.: 2 - Acceso incorrecto!!!! Vuelva a Iniciar Sesion");
 
header('location: login.php');
exit;
}
}
?>


todo funciona bien el problema es que cuando copio la URl y lo pego en la barra de direcciones en otra pagina me sale el siguiente error:

Notice: Undefined index: HTTP_REFERER in C:\xampp\htdocs\miweb\aut_verifica.inc.php on line 23

Notice: Undefined index: HTTP_REFERER in C:\xampp\htdocs\miweb\aut_verifica.inc.php on line 27
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.037
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

RE:HTTP_REFERER

Publicado por xve (6926 intervenciones) el 16/01/2013 20:33:46
Hola Erwin, eso es un Notice, no es un Warning ni un Error, simplemente te informa de que la variable no esta definida. Es lo que comentan, no siempre tiene valor.

Yo te recomendaría desactivar el Notice en el php.ini
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:HTTP_REFERER

Publicado por erwin torres leon (3 intervenciones) el 16/01/2013 21:45:41
ah bueno y algn manual para realiza ese cambio??? Bueno estube buscando en san google y me encontre con algo que decia que esa advertencia o notice sale por lo que al momento de copiar la direccion y pegarla en otra no hay o no existe pagina a lo cual pueda referirse por eso me salia notice......... pero hay alfuna funcion con la cual no tenga que salir esa advertencia o si quieres te paso el codigo completo con la tabla de mi DB para que lo comprendas mejor x favor seria de mucha ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.037
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Quitar los mensajes Notice y Warning del PHP

Publicado por xve (6926 intervenciones) el 17/01/2013 08:00:10
Hola Erwin, puedes quitarla de tres maneras que yo sepa...

1.- Modificando el archivo php.ini
Buscas la linea que empieza por : error_reporting y la dejas algo así:
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

Recuerda reiniciar el servidor Web para que los cambios tengan efecto.


2.- Creando un archivo .htaccess
Puedes crear en tu carpeta un archivo .htaccess, y poner en su interior algo como (Si tu php trabaja como modulo):
php_value error_reporting 0
php_value display_errors 0


Si trabaja como CGI o FastCGI tienes que utilizar: ini_set()

Para que no aparezca ningún error, ni warning, ni nada... solo te lo recomiendo para producción, no para desarrollo.
php_flag display_errors off


3.- También puedes hacerlo desde el código php poniendo:
error_reporting(E_ERROR);
http://php.net/manual/es/function.error-reporting.php

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Quitar los mensajes Notice y Warning del PHP

Publicado por erwin torres leon (3 intervenciones) el 17/01/2013 22:22:40
wow eres un master tanto me mataba buscando hasta que por fin se resolvio mil gracias solo le puse el error_reporting(E_ERROR); y bueno quedo bien pero tengo k corregir algnas cositas ah x casualidad no tendras algo como para cuando kieran hacer SQLI en mi web es escuchado que en la barra de direcciones les ponen ( ' , " -1 -2) o algunos otros caracteres para saber si la web es bulnerables como se corrige eso??? xk buscando encontre codigo lo aplike y nada de resultado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.037
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Quitar los mensajes Notice y Warning del PHP

Publicado por xve (6926 intervenciones) el 18/01/2013 07:04:23
Nosotros sanitizamos todo lo que viene del navegador con una clase como esta: http://www.lawebdelprogramador.com/codigo/PHP/2208-Clase_para_sanitizar_los_parametros_de_un_formulario.html

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar