Как создать ссылку, которая отправляет пользователя на другую страницу, которая затем перенаправляется на другую страницу, связанную со ссылкой?

Как создать ссылку, которая отправляет пользователя на другую страницу, которая затем перенаправляется на другую страницу, связанную со ссылкой?

Я хотел бы создать список html URLS, который, как и любой из них, будет нажат, он отправит пользователя на страницу посредника, которая спрашивает пользователя, согласны ли они с условиями. Если они это сделают, они перенаправляются на эту страницу, соответствующую той ссылке, которую они нажали. Аналогично этой диаграмме. введите описание изображения здесь

Link 1 ==> Intermediary Page ==> Page 1, Link 2 ==> Intermediary Page ==> Page 2, Link 3 ==> Intermediary Page ==> Page 3, Link 4 ==> Intermediary Page ==> Page 4, Link 5 ==> Intermediary Page ==> Page 5 

Я не знаю, какой процесс он назвал. Я намерен использовать HTML и PHP.

Related of "Как создать ссылку, которая отправляет пользователя на другую страницу, которая затем перенаправляется на другую страницу, связанную со ссылкой?"

Первая страница HTML

 <a href="intermediary.php?q=1">Link 1</a> <a href="intermediary.php?q=2">Link 2</a> <a href="intermediary.php?q=3">Link 3</a> <a href="intermediary.php?q=4">Link 4</a> <a href="intermediary.php?q=5">Link 5</a> 

intermediary.php

 <?php $link = (int)$_GET["q"]; ?> <a href="page<?=$link?>.html">I agree to the terms and conditions</a> 

Вы можете использовать переменные GET в URL-адресе. например, http://www.mysite.com/intermediary-page?page=page1

Таким образом, это будет ссылка на страницу посредника. Затем на этой странице вы будете иметь функцию, которая смотрит на последнюю часть page=page1. URL page=page1. Затем эта функция перенаправляет пользователя на правильную страницу.

HTML

 <a href="inter.php?target=1">Some page</a> <a href="inter.php?target=2">Some page</a> <a href="inter.php?target=something_else">Some page</a> 

PHP: inter.php

 <?php session_start(); $link='#'; switch($_GET['target']) { case 1: $link = "http://nexttarget.com"; break; case 2: $link = "http://nexttarget2.com"; break; case "something_else": $link = "http://nexttarget3.com"; break; } $_SESSION['prev_link'] = "http://source_url"; ?> <form action="<?php echo $link; ?>" method="post"> <p>Your T&C here</p> <input type="checkbox" name="agree" value="agreed" /> <input type="submit" value="go" /> </form> для <?php session_start(); $link='#'; switch($_GET['target']) { case 1: $link = "http://nexttarget.com"; break; case 2: $link = "http://nexttarget2.com"; break; case "something_else": $link = "http://nexttarget3.com"; break; } $_SESSION['prev_link'] = "http://source_url"; ?> <form action="<?php echo $link; ?>" method="post"> <p>Your T&C here</p> <input type="checkbox" name="agree" value="agreed" /> <input type="submit" value="go" /> </form> 

PHP: target.php

 <?php session_start(); if( !isset($_POST['agreed']) || $_POST['agreed'] != 'agreed' ){ header("Location: ".$_SESSION['prev_link']); exit; } ?> Your target page content here 

EDIT: Отредактировано, чтобы показать страницу T & C вместо прямого перенаправления.

РЕДАКТИРОВАТЬ 2 : теперь промежуточная страница будет перенаправляться автоматически после согласования / щелчка на флажке.

PHP: inter.php

 <?php session_start(); $link='#'; switch($_GET['target']) { case 1: $link = "http://nexttarget.com"; break; case 2: $link = "http://nexttarget2.com"; break; case "something_else": $link = "http://nexttarget3.com"; break; } $_SESSION['prev_link'] = "http://source_url"; ?> <form action="<?php echo $link; ?>" method="post" id="tc_form" > <p>Your T&amp;C here</p> <input type="checkbox" name="agree" value="agreed" onclick="javascript: this.parentNode.submit();" id="check" /> <label for="check">I agree to the T&amp;C.</label> </form> для <?php session_start(); $link='#'; switch($_GET['target']) { case 1: $link = "http://nexttarget.com"; break; case 2: $link = "http://nexttarget2.com"; break; case "something_else": $link = "http://nexttarget3.com"; break; } $_SESSION['prev_link'] = "http://source_url"; ?> <form action="<?php echo $link; ?>" method="post" id="tc_form" > <p>Your T&amp;C here</p> <input type="checkbox" name="agree" value="agreed" onclick="javascript: this.parentNode.submit();" id="check" /> <label for="check">I agree to the T&amp;C.</label> </form> 

Первая страница:

 <a href="intermediary.php?next_page=somepage.php">link to Intermediary Page</a> 

Промежуточная страница:

 <?php $next_page = $_REQUEST["next_page"]; header("Location: " . $next_page); ?> 

ваша HTML-ссылка:

 <a href="/links.php?page=1">Link 1</a> <a href="/links.php?page=2">Link 1</a> 

ваш PHP-код в links.php :

 <?php $page = !empty($_REQUEST['page']) ? $_REQUEST['page'] : null; if (!empty($page)) { switch ($page) { case 1: header('Location: abc.php'); break; case 2: header('Location: xyz.php'); break; } } 

Другие варианты:

 $pages[1] = 'abc.php'; $pages[2] = 'xyz.php'; header('Location: ' . $pages[$page]); 

Примечание. Прежде чем использовать его, попытайтесь защитить переменную $page .

Подход, который используется много, выглядит следующим образом:

 intermediary-page.php?proceedTo=some/url/to-go-next.php 

На странице посредника-страницы.html (или php или любой другой) вы выполняете необходимые проверки и перенаправляете пользователя на URL-адрес, доступный в переменной proceedTo GET.

После этого это зависит от ваших требований. Вам нужна безопасность или убедитесь, что пользователь принял условия и т. Д.? Затем вы должны выполнить дополнительные проверки на каждой странице:

Ссылка 1 -> Страница 1 (проверьте, принял ли пользователь условия уже? No? Then 🙂 -> посредник? ContinueTo = page1 -> (попросите пользователя принять принятое? Тогда 🙂 -> Страница 1 (у пользователя есть согласился с условиями сейчас? да? тогда 🙂 -> оставайся здесь …

Преимущества такого подхода:

  1. Вы совершенно уверены, что даже если пользователь обошел страницу посредника и отправился прямо в конечный пункт назначения – (ы), он будет возвращен на промежуточную страницу (как если бы вы аутентифицировали пользователя).
  2. Вам не нужно создавать такие ссылки, как href="intermediary.php?next=abc.php" , вместо этого просто перейти с простым href="abc.php" который будет обрабатывать перенаправление.