PHP 短链接服务:添加有效期验证
PHP 短链接服务:添加有效期验证
本文介绍如何为 PHP 短链接服务添加有效期验证,确保短链接在过期后无法访问。
原始代码:
$str = $_SERVER['QUERY_STRING'];
$result = substr($str, strrpos($str, '.') + 1);
$keyu = substr($result, 0, 1);
if ($keyu == 1) {
$t_urll = $_SERVER['QUERY_STRING'];
$uid = substr($t_urll, 0, strrpos($t_urll, '.'));
$myrow = $DB->get_row("select * from BYFH_long where uid='$uid' limit 1");
if (!$myrow) {
@header("http/1.1 404 not found");
@header("status: 404 not found");
include './data/template/no.html';
exit();
} else {
$t_url = $myrow['longurl'];
if ($t_url == $t_url) {
$t_url = $t_url;
}
// 执行下一个语句
}
}
添加有效期验证的代码:
$str = $_SERVER['QUERY_STRING'];
$result = substr($str, strrpos($str, '.') + 1);
$keyu = substr($result, 0, 1);
if ($keyu == 1) {
$t_urll = $_SERVER['QUERY_STRING'];
$uid = substr($t_urll, 0, strrpos($t_urll, '.'));
$myrow = $DB->get_row('select * from BYFH_long where uid='$uid' limit 1');
if (!$myrow) {
@header('http/1.1 404 not found');
@header('status: 404 not found');
include './data/template/no.html';
exit();
} else {
$dqsj = $myrow['dqsj'];
if ($dqsj < time()) {
@header('http/1.1 404 not found');
@header('status: 404 not found');
include './data/template/no.html';
exit();
} else {
$t_url = $myrow['longurl'];
if ($t_url == $t_url) {
$t_url = $t_url;
}
// 执行下一个语句
}
}
}
代码解释:
- **获取短链接信息:**代码首先通过
$_SERVER['QUERY_STRING']获取 URL 中的查询字符串,并解析出短链接 ID (uid)。 - **检查短链接是否存在:**代码使用
$DB->get_row()方法从数据库中查询短链接信息,如果不存在,则返回 404 错误页面。 - **检查有效期:**代码获取短链接的过期时间 (
dqsj),并与当前时间 (time()) 进行比较。如果短链接已经过期,则返回 404 错误页面。 - **跳转到目标链接:**如果短链接存在且未过期,则获取目标链接 (
longurl),并执行跳转操作。
注意:
dqsj字段应存储短链接的过期时间戳。time()函数返回当前时间戳。- 代码中使用
@header()函数来发送 404 错误头。 - 代码中使用
include函数包含 404 错误页面。
总结:
添加有效期验证可以有效地防止过期短链接被访问,提高短链接服务的安全性。上述代码示例可以帮助你快速实现短链接有效期验证功能。
原文地址: https://www.cveoy.top/t/topic/bH5t 著作权归作者所有。请勿转载和采集!