Como mostrar conteúdo diferente através de Referer?

  • Autor Autor Fox
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
Fox

Fox

1
Zeta
Verificado
Verificación en dos pasos activada
Suscripción a IA
Hola!, tengo una duda.

Tengo la duda, cómo puedo mostrar contenido distinto a un usuario que llegue desde otra web.

Me refiero a que si un usuario llega desde "web1.com/loquesea" o "web2.com/loquesea", entonces me muestre otro contenido distinto al contenido original.

Actualmente tengo el siguiente código (tengo 2 single.php)

<?$referer = $_SERVER['HTTP_REFERER'];$fromURL = array("http://www.web1.com/loquesea","http://www.web2.com/loquesea","http://www.web3.com/loquesea","http://www.web4.com/loquesea");if(!in_array($referer,$fromURL)) { include(TEMPLATEPATH . '/singlefalso.php'); } else { include(TEMPLATEPATH . '/singlereal.php'); }?>


Pero éste no me funciona, ya que si la visita llega desde donde sea, siempre le muestra el singlefalso.php

¿Alguna sugerencia, por favor?
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Pues con el código que muestras nadamas estas diciendo que si la url de donde proviene el usuario esta en el arreglo $fromURL entonces te mostrara un archivo o mejor dicho te enviara esta dirección /singlereal.php o en caso contrario envía al usuario a /singlefalso.php.
 
Pues con el código que muestras nadamas estas diciendo que si la url de donde proviene el usuario esta en el arreglo $fromURL entonces te mostrara un archivo o mejor dicho te enviara esta dirección /singlereal.php o en caso contrario envía al usuario a /singlefalso.php.


Gracias por la respuesta compañero, pero cómo puedo hacer para que tome en cuenta la web entera?, es decir que si viene de "www.web1.com", tome en cuenta todas las URL de la web, es decir: "www.web1.com", "web1.com", "http://web1.com", "web1.com/loquesea", "web1.com/otracosa"

Desde ya, muchas gracias.
 
Podés usar strpos para eso..

$referer = $_SERVER['HTTP_REFERER'];;
$buscar = "web1.com";
$resultado = strpos($referer , $buscar);

if($resultado !== FALSE){
include(TEMPLATEPATH . '/singlereal.php');
}else{
include(TEMPLATEPATH . '/singlefalso.php');
}
 
Gracias por la respuesta, lo he probado y me anda bien, pero tengo problemas al agregar varias URL, lo he probado usando:

$buscar = ("web1.com","web2.com");

Pero me tira error, cómo podría arreglarlo?

Desde ya, gracias.

Podés usar strpos para eso..

$referer = $_SERVER['HTTP_REFERER'];;
$buscar = "web1.com";
$resultado = strpos($referer , $buscar);

if($resultado !== FALSE){
include(TEMPLATEPATH . '/singlereal.php');
}else{
include(TEMPLATEPATH . '/singlefalso.php');
}
 
Ok te complemento el codigo un poco:
PHP:
$fromURL = array("web1.com","web2.com","web3.com","web4.com");
$referer = $_SERVER['HTTP_REFERER'];
$cont = 0;
foreach($fromURL as $buscar){
	$resultado = strpos($referer , $buscar);
	if($resultado != FALSE){
		$cont = 1;
	}
}

if($cont != 1) {
include(TEMPLATEPATH . '/singlefalso.php'); 
} else { 
include(TEMPLATEPATH . '/singlereal.php'); 
}
 
Gracias compañero, me funcionó a la perfección.

Un abrazo!

Ok te complemento el codigo un poco:
PHP:
$fromURL = array("web1.com","web2.com","web3.com","web4.com");
$referer = $_SERVER['HTTP_REFERER'];
$cont = 0;
foreach($fromURL as $buscar){
    $resultado = strpos($referer , $buscar);
    if($resultado != FALSE){
        $cont = 1;
    }
}

if($cont != 1) {
include(TEMPLATEPATH . '/singlefalso.php'); 
} else { 
include(TEMPLATEPATH . '/singlereal.php'); 
}
 
Gracias compañero, me funcionó a la perfección.

Un abrazo!

Lo del [MENTION=26878]darkdraco[/MENTION] funciona bien, pero es mejor así:

PHP:
$referer = $_SERVER['HTTP_REFERER'];
$fromURL = "/web1.com|web2.com|web3.com|web4.com/";
if (!preg_match($fromURL, $referer))
    include(TEMPLATEPATH . '/singlefalso.php';
else
    include(TEMPLATEPATH . '/singlereal.php';
 
Lo del [MENTION=26878]darkdraco[/MENTION] funciona bien, pero es mejor así:

hola queria probar algo como esto, el mostrar conenidos diferentes dependiendo de que web vienen, y tengo una duda este codigo donde es que se pone?
 
hola queria probar algo como esto, el mostrar conenidos diferentes dependiendo de que web vienen, y tengo una duda este codigo donde es que se pone?

Donde quieras que aparezca lo que quieres mostrar:

PHP:
<?php
$referer = $_SERVER['HTTP_REFERER']; 
$fromURL = "/web1.com|web2.com|web3.com|web4.com/"; 
if (!preg_match($fromURL, $referer)):
?>
CONTENIDO SI NO VIENE DER ALGUNA DE LAS WEBS QUE ESTÁN EN EL ARRAY
<?php
else: 
?>
CONTENIDO SI VIENE DER ALGUNA DE LAS WEBS QUE ESTÁN EN EL ARRAY
<?php
endif;
?>
 
Donde quieras que aparezca lo que quieres mostrar:

PHP:
<?php
$referer = $_SERVER['HTTP_REFERER']; 
$fromURL = "/web1.com|web2.com|web3.com|web4.com/"; 
if (!preg_match($fromURL, $referer)):
?>
CONTENIDO SI NO VIENE DER ALGUNA DE LAS WEBS QUE ESTÁN EN EL ARRAY
<?php
else: 
?>
CONTENIDO SI VIENE DER ALGUNA DE LAS WEBS QUE ESTÁN EN EL ARRAY
<?php
endif;
?>
buen code!!! 😉
 
Donde quieras que aparezca lo que quieres mostrar:

PHP:
<?php
$referer = $_SERVER['HTTP_REFERER']; 
$fromURL = "/web1.com|web2.com|web3.com|web4.com/"; 
if (!preg_match($fromURL, $referer)):
?>
CONTENIDO SI NO VIENE DER ALGUNA DE LAS WEBS QUE ESTÁN EN EL ARRAY
<?php
else: 
?>
CONTENIDO SI VIENE DER ALGUNA DE LAS WEBS QUE ESTÁN EN EL ARRAY
<?php
endif;
?>

y para evitar enviar el referer ? e intentado asi

PHP:
<meta name="referrer" content="never"/>
<meta http-equiv="refresh" content="0; url=<?=$_GET['v'];?>">

pero aun sigue mostrando el referer, con herramientas como esta
PHP:
http://anonym.to/?http://forobeta.com/

si ya no muestra el referer me hechas una mano?
 
Voltar
Topo