Проблема с кешем после отправки html-формы - PullRequest
0 голосов
/ 26 сентября 2011

в какой-то части моей веб-страницы я разрешаю пользователям изменять свою фотографию профиля.Это сделано просто формой с элементом <input type="file" name="avatar" id="avatar" />.После загрузки фотографии вызывается php-скрипт, где производится проверка и обработка изображения.Когда все в порядке, предыдущее изображение пользователя удаляется и изменяется новым (с тем же именем), а затем пользователь перенаправляется на страницу своего профиля.

Проблема в том, что когда пользователь меняет свое изображениепервый раз, когда он переходит на страницу своего профиля (когда он перенаправляется скриптом загрузки), изображение не новое, это кэшированная копия старого, после нескольких f5 (перезагрузок) показывается новое изображение.

Некоторое время назад у меня была похожая проблема с анализатором rss, который я сделал в php, если я иногда вызываю фид url вместо новой версии фида, я получаю кэшированную версию.Я решил эту проблему, просто генерируя случайное число каждый раз, когда мне был нужен канал, а затем добавляя его к URL-адресу;www.page.com/thefeed.rss?var=#ramdom_number

Но я действительно не хочу реализовывать это «решение», потому что оно непрофессионально, и мои пользователи увидят URL с этим параметром.

Это резюме операции загрузки:

profile.php? I = mycv : На этой странице есть все данные пользователя, включая фактическое изображение профиля и форму для загрузкина рисунке форма выполняет пост-вызов image_handler.php

image_handler.php : это скрипт php, который обрабатывает изображение, отправленное profile.php? i = mycv и все в порядке, пользователь перенаправлен на profile.php? i = mycv .

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 26 сентября 2011

Попробуйте этот код в profile.php

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

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

И затем измените URL в image_handler.php, чтобы он отправлял пользователя на страницу profile.php?a=return вместо profile.php?i=mycv

Если это такне работает, вы можете добавить, как это: <img src="http://someplace.com/someimage.png?<?php print time(); ?>"> тогда пользователь не может видеть числовую часть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...