目次
はじめに
広告計測やキャンペーン連携では、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直打ちに弱いため、セッション併用が安全