<?php
// 配置数据库连接
$host = 'localhost';
$db = 'ad_database';
$user = 'root';
$pass = 'password';
$dsn = "mysql:host=$host;dbname=$db;charset=utf8";
// 创建 PDO 实例
try {
$pdo = new PDO($dsn, $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo '连接失败: ' . $e->getMessage();
exit;
}
// 处理广告点击
if (isset($_GET['ad_id'])) {
$adId = (int)$_GET['ad_id'];
// 记录点击事件
$clickStmt = $pdo->prepare('
INSERT INTO ad_clicks (ad_id, clicked_at)
VALUES (:ad_id, NOW())
');
$clickStmt->execute(['ad_id' => $adId]);
// 获取广告的 URL
$urlStmt = $pdo->prepare('
SELECT url
FROM ads
WHERE id = :ad_id
');
$urlStmt->execute(['ad_id' => $adId]);
$ad = $urlStmt->fetch(PDO::FETCH_ASSOC);
if ($ad) {
header('Location: ' . $ad['url']);
exit;
} else {
echo '广告不存在。';
}
} else {
echo '无效的广告 ID。';
}
?>
这个 PHP 代码示例实现了一个广告点击跟踪系统,用于记录用户点击广告的情况,并将用户重定向到广告目标 URL。主要功能包括:
-
记录点击事件:当用户点击广告时,通过
ad_id
参数记录点击事件。点击信息会被插入到ad_clicks
表中,包括广告 ID 和点击时间 (clicked_at
)。 -
重定向用户:根据
ad_id
从ads
表中检索广告的目标 URL,然后将用户重定向到该 URL。这允许广告主跟踪广告的点击情况并确保用户能够访问广告内容。 -
安全性和验证:代码中使用了参数化查询来防止 SQL 注入攻击,并且只有在存在有效广告 ID 时才会进行重定向和记录。