发送html表单后缓存问题

时间:2011-09-26 11:42:20

标签: php html caching

在我的网页的某些部分,我允许我的用户更改他们的个人资料图片。通过具有元素<input type="file" name="avatar" id="avatar" />的表单使这变得简单。在他们上传照片后,调用php脚本进行所有图像检查和处理。当一切正常时,先前的用户图像将被新的用户图像删除并更改(使用相同的名称),然后用户将被重定向到他们的个人资料页面。

问题是,当用户更改他的图片时,他进入他的个人资料页面的时间(当被上传脚本重定向时)图片不是新图片,是旧图片的缓存副本,之后一些f5(重新加载)显示新图像。

前一段时间我在php中使用rss解析器有类似的问题,如果我有时调用url feed而不是新版本的feed,我得到了一个缓存版本。我只是通过每次需要Feed然后将其添加到网址时生成一个ramdom数来解决这个问题; www.page.com/thefeed.rss?var=#ramdom_number

但是,我真的不想实现这个“解决方案”,因为这是不专业的,我的用户会看到带有该参数的网址。

这是上传操作的简历:

profile.php?i = mycv :在此页面中包含所有用户数据的实际个人资料图片和上传图片的表格,表格后调用image_handler.php < / p>

image_handler.php :是一个处理由 profile.php?i = mycv 发送的图像的php脚本,一切正常,用户被重定向到< EM> profile.php?I = mycv

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在profile.php中试用此代码

<?php
$act = $_GET["a"];

 if($a == "return"){
 header("location:profile.php?i=mycv");
 }
?>

然后更改image_handler.php中将用户发送到profile.php?a=return页面而不是profile.php?i=mycv的网址

如果这不起作用,你可以这样添加:<img src="http://someplace.com/someimage.png?<?php print time(); ?>">然后用户看不到数字部分。