Foros del Web » Programando para Internet » Javascript »

document.referrer

Estas en el tema de document.referrer en el foro de Javascript en Foros del Web. Hola a todos!!! Tengo un script en una página de contacto, que quisiera que los usuarios no entrasen por "contacto2.php", sino por "contacto1.php" por ello, ...
  #1 (permalink)  
Antiguo 07/12/2009, 05:45
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
document.referrer

Hola a todos!!!

Tengo un script en una página de contacto, que quisiera que los usuarios no entrasen por "contacto2.php", sino por "contacto1.php" por ello, uso un script sacado del wiki de este foro:

http://www.forosdelweb.com/wiki/Javascript:%C2%BFC%C3%B3mo_puedo_forzar_que_el_usu ario_entre_siempre_por_mi_p%C3%A1gina_principal_%2 8index.htm%29_y_no_por_mis_p%C3%A1ginas_secundaria s_si_NO_utilizo_marcos_%28frames%29%3F

Pero por cuestiones de comodidad para mí, quisiera que en la parte que dice:
Código:
var origen = document.referrer; 
if (origen!="http://tuweb/index.htm") window.location.href= "index.htm";
Se puede poner que "document.referrer" solo indique el archivo? Es decir, en lugar de poner "http://tuweb/index.htm" que ponga "index.htm".

Muchas gracias. Si no se puede, me lo dicen, que solo es cuestión de comodidad, ya que estoy probando en mi servidor local y despues tendré que pasarlo a uno remoto
  #2 (permalink)  
Antiguo 07/12/2009, 08:59
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: document.referrer

He estado buscando en google, pensando que era una respuesta sencilla, pero no lo he encontrado.

Puedo ayudar un poco más: quisiera la el mismo efecto de la función basename () de PHP en Javascript, pero si puede ser, sin empezar a mezclar lenguajes, que si no no me entero!!!

Muchas gracias
  #3 (permalink)  
Antiguo 07/12/2009, 09:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: document.referrer

Podría ser:
Código Javascript:
Ver original
  1. alert(document.referrer.split("/").pop());
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 07/12/2009, 09:23
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: document.referrer

FUNCIONA!!!!!!!!

Muchas gracias David!!!!
  #5 (permalink)  
Antiguo 07/12/2009, 09:41
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: document.referrer

Pero ahora tengo otro problema, "contacto" se compone de 3 paginas, contacto1, contacto2 y contacto3.php.

La principal es contacto1, y pongo ese script redireccionando hacia ella. En la "contacto2.php", funciona perfectamente, pero en contacto3.php no:
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML LANG="Spanish">
<HEAD>
<TITLE>cualquierlibro.es - Resultados del envío</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META NAME="DC.Language" SCHEME="RFC1766" CONTENT="Spanish">
<META NAME="AUTHOR" CONTENT="markmb">
<META NAME="REPLY-TO" CONTENT="[email protected]">
<LINK REV="made" href="mailto:[email protected]">
<META NAME="DESCRIPTION" CONTENT="Descargar, aportar o pedir libros, gratis!">
<META NAME="KEYWORDS" CONTENT="descarga,descarga directa,DD,libro,libros,gratis,gratuito,comentar,contactar">
<META NAME="Resource-type" CONTENT="Document">
<META NAME="Revisit-after" CONTENT="2 days">
<META NAME="robots" content="ALL">
<script type="text/javascript"> 
function redireccionar() { 
    var origen = document.referrer.split("/").pop(); 
    if (origen!="contacto1.php") window.location.href= "contacto1.php";
    } 
</script>
<?php
	include ("incluir/template.inc.php")
?>

</head>
<body onactivate="redireccionar()">  
<table width="100%"  border="2" cellpadding="0" cellspacing="0" bordercolor="#000000" bgcolor="#666666">
  <tr>
    <td valign="top" bordercolor="#000000" bgcolor="#666666" class="textonormal">
		<?php
			require("PHPMailer/class.phpmailer.php");
			if ($_POST['action'] == "send") {
   				$mail = new PHPMailer();
  				$mail->Host = "server35.000webhost.com";
   				$mail->From = $_POST ['email'];
   				$mail->FromName = $_POST ['nombre'];
   				$mail->Subject = "Comentario de cualquierlibro.es";
  				$mail->AddAddress("[email protected]");
   				if ($varname != "") {
       				$mail->AddAttachment($vartemp, $varname);
  				}
   				$body = "<strong>Mensaje</strong><br><br>";
   				$body.= $_POST['comentario']. "<br>";
  				$body.= "Enviado por : " .$_POST ['email'];
  				$mail->Body = $body;
   				$mail->IsHTML(true);
   				$mail->Send();
			}
   		?>
    </td>
  </tr>
</table>
<p>&nbsp;</p>
</body>
</html> 
Puede ser que sea porque PHP hace antes que Javascript??NO LO SE!!!!

Muchas gracias!!!!
  #6 (permalink)  
Antiguo 07/12/2009, 13:12
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: document.referrer

Ya se que le pasa!!!!

Lo que no funciona es el script del wiki:
Código:
<script language="JavaScript"> 
function redireccionar() { 
    var origen = document.referrer; 
    if (origen!="http://tuweb/index.htm") window.location.href= "index.htm"; 
    } 
</script>
y en el body:

<body onactivate="redireccionar()">

Y para hacerlo funcionar, en lugar de "onactivate" en el body, se pone un "onload" y todo arreglado!!!!

Última edición por markmb; 07/12/2009 a las 13:28 Razón: Ya se como funciona
  #7 (permalink)  
Antiguo 07/12/2009, 13:30
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: document.referrer

mejor usa onload no ???....... otra forma mas simple inclusive y mejor, seria hacer esa redireccion con php...... ya que la web lee primero lo del servidor, osea php.... y seria mas eficiente y rapido.

osea pondrias este codigo al incio
Código php:
Ver original
  1. $Referer=end(explode("/",$_SERVER['HTTP_REFERER']));
  2. if($Referer!="contacto1.php") header("Location: contacto1.php");

espero te haya podido ayudar.

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #8 (permalink)  
Antiguo 07/12/2009, 13:32
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: document.referrer

Ahora lo pruebo, porque voy probando cosas diferentes, y cuando tengo la pagina solo con ese script de antes funciona, pero cuando lo mezclo con otros no.
  #9 (permalink)  
Antiguo 07/12/2009, 13:40
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: document.referrer

No va, y creo que ya se por que, no escribe bien la ruta el explode y eso de alrededor, lo he probado en un servidor local (que es donde he estado haciendo lo otro) con solo ese script y nunca entra en la pagina del script, siempre vuelve atras.


Va bien el script si hago esto:
Código PHP:
$referer=basename($_SERVER['HTTP_REFERER']);
if(
$referer!="desde.htm"header("Location: desde.htm"); 
Muchas gracias masterojitos!!!!

Última edición por markmb; 07/12/2009 a las 13:44 Razón: Ya esta el script
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 11:50.