2

ユーザーを別のページに誘導し、リンクに関連付けられた別のページに誘導するリンクを作成するにはどうすればよいですか?

いずれかがクリックされると、利用規約に同意するかどうかをユーザーに尋ねる中間ページにユーザーを送信する html URL のリストを作成したいと思います。その場合、クリックしたリンクに対応するページに転送されます。この図と同様です。 ここに画像の説明を入力

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を使用するつもりです。

4

6 に答える 6

2

最初の 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>

中間.php

<?php
$link = (int)$_GET["q"];
?>
<a href="page<?=$link?>.html">I agree to the terms and conditions</a>
于 2013-02-05T10:03:00.527 に答える
1

URLでGET変数を使用できます。例:http ://www.mysite.com/intermediary-page?page = page1

したがって、これは中間ページにリンクします。次に、そのページにURLの最後の部分を調べる関数がありpage=page1.ます。次に、その関数はユーザーを正しいページにリダイレクトします。

于 2013-02-05T10:01:13.427 に答える
1

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: ターゲット.php

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

編集: 直接リダイレクトする代わりに T&C ページを表示するように編集しました。

EDIT 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>
于 2013-02-05T10:04:22.393 に答える
0

よく使われるアプローチは次のようになります。

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

intermediary-page.html (または php など) ページで、必要な検証を実行し、ユーザーをproceedToGET 変数で使用可能な URL にリダイレクトします。

その後は、要件によって異なります。セキュリティが必要ですか、それともユーザーが利用規約などに同意したことを確認しますか? 次に、次のように各ページで追加の検証を実行する必要があります。

リンク 1 -> ページ 1 (ユーザーが条件に同意したかどうかを確認しますか? いいえ? では:) -> 仲介者?proceedTo=page1 -> (ユーザーに同意するように依頼します! 同意しますか? では:) -> ページ 1 (ユーザーは利用規約に同意した? はい? その後:) -> ここにとどまる...

このアプローチの利点は次のとおりです。

  1. ユーザーが中間ページをバイパスして最終目的地に直行した場合でも、(ユーザーを認証しているかのように) 中間ページに戻されます。
  2. のようなリンクを作成する必要はありません。代わりに、リダイレクト自体を処理するhref="intermediary.php?next=abc.php"シンプルなものを使用してください。href="abc.php"
于 2013-02-05T09:59:26.467 に答える
0

先頭ページ:

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

中間ページ:

<?php

$next_page = $_REQUEST["next_page"];
header("Location: " . $next_page);

?>
于 2013-02-05T10:00:04.520 に答える
0

あなたの 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変数を使用する前に、変数を保護してください。

于 2013-02-05T10:08:30.493 に答える