我有一个简单的表单来更新数据库中的行,还有一个语言链接/按钮。 SUBMIT按钮工作并将值写入我的数据库。但是,在我单击链接按钮两次(返回同一页面)后,我在文本框中看到旧值。我刷新页面然后看到更新的值。它在Chrome上运行没有任何问题,但不知何故,Safari缓存数据库值并且不刷新。
这是我的代码:
// Get language
if (isset($_GET['language']))
{
$get_lang = $_GET['language'];
if ($get_lang == 'fr') {
$lang_code = 'fr';
}
else if ($get_lang == 'en') {
$lang_code = 'en';
}
else {
$lang_code = 'fr';
}
}
else
{
$php_self = htmlspecialchars($_SERVER["PHP_SELF"]);
header("refresh:0; url=$php_self?language=en");
$lang_code = 'en';
}
include('../inc/config.php');
include('inc/head.php');
global $db;
// Update page
if ( isset($_POST['submit']) )
{
$lang_code = $_GET['language'];
$page_title = $_POST['page_title'];
if ( $lang_code == 'fr' )
{
$updatePage = $db->execute("UPDATE pages SET page_title_fr=? WHERE page_id=1", array($page_title));
}
else if ( $lang_code == 'en' )
{
$updatePage = $db->execute("UPDATE pages SET page_title_en=? WHERE page_id=1", array($page_title);
}
}
// Get page content
$page_content = $db->get_row("SELECT * FROM pages WHERE page_id = 1" );
if ( $lang_code == 'fr' )
{
$page_title = $page_content->page_title_fr;
}
else
{
$page_title = $page_content->page_title_en;
}
和我的表格:
// Button for changing the language
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?language=<?php if ( $lang_code == 'fr' ) { echo 'en'; } else if ( $lang_code == 'en' ) { echo 'fr'; } ?>"><?php if ( $lang_code == 'en' ) { echo 'FRENCH'; } else { echo 'ENGLISH'; } ?></a>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>?language=<?php echo $lang_code; ?>">
<input name="page_title" type="text" value="<?php echo $page_title; ?>">
<button name="submit" type="submit">SAVE</button>
</form>
编辑:我尝试过禁用缓存,但没有帮助。
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
编辑2:从Safari的“开发”菜单中禁用缓存可以解决问题
答案 0 :(得分:0)
我通过将这些行添加到我的htaccess文件来解决问题
<FilesMatch "\.(html|htm|php)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</FilesMatch>