我遇到一个函数有两个问题,该函数应在数据库字段中添加+1,并在完成后重定向到目标URL。
问题在于,除非我清除缓存,否则我的UPDATE查询无法正常工作。在尝试查找发生这种情况的原因时,我遇到了另一个奇怪的问题,即在更改功能后它不会更新该功能。
我所做的是尝试评论header
,并且它仍在重定向我,直到清除了缓存。另一方面,当对header
进行注释时,并且在清除缓存后,我的UPDATE函数每次都会起作用。
public function clickShortlink($slug) {
$connect = $this->connect();
$stmt = $connect->prepare("UPDATE `shortlink` SET clicks = clicks + 1 WHERE slug = :slug;");
$stmt->bindValue(":slug", $slug);
$stmt->execute();
$stmt = $connect->prepare("SELECT target FROM `shortlink` WHERE slug = :slug");
$stmt->bindValue(":slug", $slug);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$target = $row['target'];
}
if (isset($target)) {
$connect = null;
header("Location: ".$target);
exit;
}
$connect = null;
}
header
我缺少什么?
编辑
这就是我所说的clickShortLink()
:
<?php
if (isset($_GET['gototarget'])) {
$shortlink = new Shortlink();
$url = $shortlink->clickShortlink($_GET['slug']);
}
?>
<form>
<br>
<br>
<input type="text" name="slug" value="di5gV">
<button name="gototarget">Go to target</button>
</form>
答案 0 :(得分:-1)
就像@Mr Glass在评论中发现的一样,问题与我在.htaccess
中拥有的代码有关。
<IfModule mod_headers.c>
Header set Connection keep-alive
Header set Cache-Control "max-age=1209600, must-revalidate"
</IfModule>
不幸的是,添加“ no-cache”元标记无济于事,但是从我的.htaccess
文件中删除了此代码后,一切似乎都正常了。