0

私はこのチュートリアルに従っています- 前のページのリンクに基づいてユーザーを URL にリダイレクトすることです。

そして私はこの解決策を試しています:

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>

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>

上記のコードは完全に正常に動作します。ユーザーに利用規約に同意してほしくありませんが。リンクをクリックして流用してもらいたいだけです。HTMLコードを削除すると、利用規約がなくなります。これは機能していません。私は何を間違っていますか?

そのページへの URL を直接設定できることはわかっていますが、inter.php を介して行いたいと考えています。

4

2 に答える 2

1

フォームはclick、チェックボックス要素の Javascript を介して送信されています。それを削除すると、フォームを送信する他の方法がなくなります。これを追加するだけです

<input type="submit" value="Submit!" />
于 2013-04-11T22:55:01.683 に答える
0

Location HTTP ヘッダーを送信して、PHP からリダイレクトすることができます。

<?php

$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;
}

header('Location: ' . $link);
于 2013-04-11T22:54:46.957 に答える