只有當我點擊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