Estoy trabajando en un proyecto y estoy bloqueado por falta de conocimiento. El código funciona, pero no sé si el sitio web 3 lo ve como si un humano hiciera clic en él.
Me explico: tengo 3 sitios web en total.
El sitio web 1 redirige al sitio web 2 al hacer clic en un botón.
El sitio web 2 verifica si el remitente proviene del sitio web 1 y automáticamente redirige al sitio web 3.
Necesito la redirección (Sitio web 2 -> Sitio web 3) para que parezca que un humano hizo clic en el botón y no mostrar que lo he redirigido automáticamente.
Código hasta ahora:
if (isset($_SERVER['HTTP_REFERER'])) { $url_info = parse_url($_SERVER['HTTP_REFERER']); $countCharacter = substr_count($url_info['host'], '.'); if($countCharacter == 2){ $eldominio = explode(".", $url_info['host']); $elhost = $eldominio[1]; }else if($countCharacter == 1){ $eldominio = explode(".", $url_info['host']); $elhost = $eldominio[0]; } //if referrer contain $elhost if($elhost == 'website1' || $elhost == 'website2'){ $tieneHostaff = "yes"; }else{//no host} } else { // referrer does not exist session_start(); if($tieneHostaff=="yes" && isset($_GET['q']) && !empty($_GET['q'])){ //Create sessions and delete actual referrer $_SESSION['nombre'] = "y"; $_SESSION['producto'] = $_GET['q']; echo "<script>window.location.reload(true);</script>"; exit(); } if($_SESSION['nombre'] == "y"){ // Destroy session and redirect to website 3 session_unset(); echo "<script>window.location.href = 'https://website3.com/".$_SESSION['producto']."'</script>"; exit(); }Necesito la última parte para hacer la redirección (sitio web 2 -> sitio web 3) como si un humano hiciera clic en él.
En el siguiente código lo obtengo, pero no sé si es la mejor manera o si es la correcta:
if($_SESSION['nombre'] == "y"){ // Destroy session and redirect to website 3 session_unset(); echo "<script>window.location.href = 'https://website3.com/".$_SESSION['producto']."'</script>"; exit(); }El sitio web 3 verifica el referente y todo lo demás para encontrar que es un clic humano
Teóricamente, podría emitir el evento de clic en el elemento que lo maneja, pero eso es probablemente lo más cerca que puede estar sin usar ningún tipo de herramienta de prueba automatizada externa que haga clic. PHP se ejecuta en el lado del servidor, mientras que JavaScript se ejecuta en el lado del cliente, por lo que en realidad parecería que el navegador del cliente hizo el desencadenante en lugar de que la aplicación lo hiciera.
<script> let elementYouWantToClick = document.getElementById('whatever-the-id-is'); elementYouWantToClick.click(); </script>