MENU

遷移前パラメータを取得してセッション+フォームの隠し要素で保持する

目次

はじめに

広告計測やキャンペーン連携では、URLパラメータ(例:utm_source)を遷移後のページでも利用したい場面があります。
セッション+フォームのhidden要素を組み合わせることで、確実にデータを引き継げます。

GETパラメータ取得 → セッション保存

<?php
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

// 取得したいパラメータを配列でまとめて処理
$params = ['utm_source', 'utm_medium', 'referrerurl'];
foreach ($params as $p) {
    if (isset($_GET[$p])) {
        $_SESSION[$p] = $_GET[$p];
    }
}
?>

フォームでhidden要素として埋め込み

<form action="confirm.php" method="POST">
  <input type="hidden" name="utm_source" value="<?php echo htmlspecialchars($_SESSION['utm_source'] ?? '', ENT_QUOTES); ?>">
  <input type="hidden" name="utm_medium" value="<?php echo htmlspecialchars($_SESSION['utm_medium'] ?? '', ENT_QUOTES); ?>">
  <input type="hidden" name="referrerurl" value="<?php echo htmlspecialchars($_SESSION['referrerurl'] ?? '', ENT_QUOTES); ?>">
  <button type="submit">送信</button>
</form>

取得した値の確認

<?php
if (!empty($_POST['utm_source'])) {
    echo 'utm_source: ' . htmlspecialchars($_POST['utm_source'], ENT_QUOTES);
}
?>

運用ポイント

  • htmlspecialcharsでエスケープしてXSS対策
  • 直接フォームに埋め込むだけではURL直打ちに弱いため、セッション併用が安全
よかったらシェアしてね!
  • URLをコピーしました!
目次