只有当我点击F5时,我的脚本才会在浏览器中运行。以前的结果似乎被缓存或什么的。仅当我点击F5时,脚本才能在浏览器中运行
这是它的样子:
http://mywebsite.com/unsubscribe.php
这会导致一个严重的问题。我在我的电子邮件中有一个取消订阅链接,我希望发送给用户,但是当我点击它时,没有任何反应,因为当我在浏览器中输入时,点击被认为是相同的。所以即使我在链接中有参数
http://mywebsite.com/[email protected]
该值未被捕获。
$email = $_GET['email'];
$newsletter = 'No';
try {
$stmt = $conn->prepare("UPDATE USERS SET NEWSLETTER = ? WHERE EMAIL = ?");
$stmt->execute(array($newsletter, $email));
$response["success"] = 1;
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
$response["success"] = 0;
}
echo 'email: '.$email.'<br>';
print(json_encode($response));
结果:
email: [email protected]
{"success":1}
但是,这是因为[email protected]缓存(或别的东西),但值未在数据库中更新。 现在,当我点击F5时,数据库中的值被更新。怎么了?
你永远不会初始化'$ response'作为数组。您可以使用GET变量而不检查它们是否已设置。最后,在JSON之前打印它使得它无用。 –
我不这么认为。这是一个示例代码,我知道在打印json之前我无法回应任何内容,但我目前正在浏览器中进行测试。尽管我在所有内容之前添加了一个简单的echo'X',但是除非我按F5,否则它不会被打印出来。 – erdomester