Estoy tratando de sobrescribir el valor personalizado en HTTP REFERRER. Tuve éxito con javascript pero mi cliente quiere en PHP y necesito ayuda para reescribir Javascript a PHP.
Código JS:
var reff = ["http://example.com", "http://example.net", "http://example.org"]; var randomreff = reff[Math.floor(Math.random() * reff.length)]; delete window.document.referrer; window.document.__defineGetter__("referrer", function () { return randomreff; }); document.write(document.referrer);Estoy tratando de reescribir este código en PHP o tal vez encontrar una solución similar con PHP. Intenté varias formas de hacerlo en PHP. estos son algunos ejemplo.
Prueba PHP 1:
$reff = new Arr("http://example.com", "http://example.net", "http://example.org"); $randomreff = get($reff, call_method($Math, "floor", to_number(call_method($Math, "random")) * to_number(get($reff, "length")))); _delete(get($window, "document"), "referrer"); call_method(get($window, "document"), "__defineGetter__", "referrer", new Func(function() use (&$randomreff) { return $randomreff; }));PHP con variables:
$var = 'var reff = ["http://example.com", "http://example.net", "http://example.org"]; var randomreff = reff[Math.floor(Math.random() * reff.length)]; delete window.document.referrer; window.document.__defineGetter__("referrer", function () { return randomreff; }); ';PHP con referencia de encabezado:
header("Referer: https://www.example.com/");Ninguno de ellos funcionó. Ayúdame a reescribir el código Javascript o una solución alternativa con PHP.
No podrá hacer esto con PHP exclusivamente. document.referrer es una propiedad DOM que establece el navegador cuando se carga la página al leer el encabezado de referencia en la solicitud. Dado que la solicitud es generada por el navegador, realmente no puede tocarla con PHP, ya que se ejecuta en el servidor y no en el navegador, si desea ejecutar algo en el navegador, necesitará javascript.
En sus ejemplos, parece que solo está tratando de ejecutar código javascript desde PHP, y eso simplemente no funcionará. La última muestra que establece el encabezado de referrer lo establecerá en la respuesta del servidor, pero como dije, la referencia es una variable de solicitud, por lo que simplemente se ignorará.
Lo único que puede hacer desde PHP es decirle al navegador que redirija a la página nuevamente (configurando la location -encabezado), pero hasta donde yo sé en estos días, esto no restablecerá la referral -encabezado (si es así, entonces redirige de http a https, por ejemplo, lo perdería todo el tiempo).
No estoy exactamente seguro de que estés tratando de lograrlo aquí. La configuración de document.referrer solo es válida para la página actual y no afectará lo que ve la página siguiente. Si se ejecuta antes, podría engañar a algunos scripts de seguimiento como máximo.