Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с отображением картинки, При 2-й и следующих загрузках 
:(
    Опции темы
Jey_k
Дата 31.7.2005, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: 1
Всего: 61



Суть такова. На сайте есть блок, который заполняется из админ-панели.
Про сам сайт пока речь не идет. Проблема в админке.
Файл index.htm являет собой интерфейс загрузки на сервер файла картинки, которая запишется в файл upfile1.jpg и текста, который запишется в файл count.dat
Файл up.php содержит скрипт обработки посланной формы с файлом и текстом, плюс подтверждение приема текста и картинки их выводом на экран. Вот тут-то и возникла трабла.
В первый раз в подтверждении картинка выводится, а потом хоть обгрузись, но останется та же самая. Я понимаю, что это что-то связаное с кэшем или cookies, но как победить это не знаю. Начал осваивать php совсем недавно. Надеюсь на помощь.

index.hm
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
Загрузка изображения в блок 1.
<br>
<form enctype="multipart/form-data" action="up.php" method="post">
<input type="file" name="myfile">
<br>
<p>
Загрузка текста в блок 1
<br>
<input type="text" name="mytxt">
<input type="submit" value="send">
</form>
</body>
</html>


up.php
Код

<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<?php
 if (is_uploaded_file($myfile))
  {
   copy ($myfile,"upfile1.jpg"); $p=1;
  }
 $file = fopen("count.dat", "w");
 fwrite($file, $mytxt);
 fclose($file);
 echo  "<b><u>В блок №1 загружен текст:</b></u>";
 echo "<br>";
 echo "<p>";
 echo "<textarea cols='80' rows='6'>";
 echo $mytxt;
 echo "</textarea>";
 echo "<br>";
 echo "<p>";
 echo "<p>";
 echo "<p>";
 echo "<b><u>В блок №1 загружено изображение:</b></u>";
 echo "<br>";
 echo "<p>";
 echo "<img src='upfile1.jpg' width='200' hight='150'>"
?>
<hr>
<div align="center">
<a href="index.htm">[Вернуться к странице загрузок]</a>
</div>
</body>
</html>


Это сообщение отредактировал(а) Jey_k - 31.7.2005, 01:16


--------------------
PM MAIL WWW   Вверх
Irokez
Дата 31.7.2005, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 22
Всего: 53



1) картинка точно загружается на сервер? в папке она есть? именно загруженная (возможно на картинку нет впоследствии прав на запись и скрипт не может ее заменить)?
2) возможен кеш на стороне сервера.. тут по моему надо разговарить с админом мервера
3) кеш на стороне клиента, если браузер то тут только CTRL+F5 .. можно конечно послать заголовки для запрета кеширования.. но по-моему ради одной картинки этого не стоит делать
PM   Вверх
Jey_k
Дата 31.7.2005, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: 1
Всего: 61



Irokez
Картинка грузится в папку. Ноготображается старая. Если зайти по localhost и обновится, затем жамкнуть на index.htm то все пройдет хорошо, пробуешь заново и нифига. Получается еще если кэш оперы почистить.
Я уже думал о том, чтобы данные от up.php передавать новому htm файлу и отображать через него весь результат и вставить команду обновления в начало скрипта в нем. Саму страницу от up.php обновить нельзя. Опера задумывается, эксплорер пишет, что необходим повторный ввод данных.

Все происходит на домашней машине с поднятым апачем и пхп.

Это сообщение отредактировал(а) Jey_k - 31.7.2005, 10:36


--------------------
PM MAIL WWW   Вверх
PARROT
Дата 31.7.2005, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Попробуй так, правда код не проверяла:
Код

if(isset($_FILES['image'])) {
        $md5                = md5(microtime());
        $bigimg                = "/home/file/www/data/{$md5}.jpg";
        move_uploaded_file($_FILES['image']['tmp_name'], $bigimg);

}
 echo "<img src='data/{$md5}.jpg'>";



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Irokez
Дата 31.7.2005, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 22
Всего: 53



попробуй добавить в up.php в самом начале:
Код

  header("Cache-Control: no-store, no-cache, must-revalidate");
  header("Cache-Control: post-check=0, pre-check=0", false);

PM   Вверх
Mal Hack
Дата 31.7.2005, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Jey_k ты каждый новый файл будешь сохранятьс одними тем же именем? Так что судя по всему браузер этот файл и кэширует.
1. copy нельзя, надо как показала PARROT, через move_... И $_FILES надо использовать.
2. В начало самое начало PHP скрипт поставь:
Код
 header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
 header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
 header( "Cache-Control: no-store, no-cache, must-revalidate" );
 header( "Cache-Control: post-check=0, pre-check=0" , FALSE );
 header( "Pragma: no-cache" );

PM ICQ   Вверх
Jey_k
Дата 31.7.2005, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: 1
Всего: 61



Mal Hack
Цитата
Warning: Cannot add header information - headers already sent by (output started at C:\Program Files\Apache Group\Apache\htdocs/up.php:8) in C:\Program Files\Apache Group\Apache\htdocs/up.php on line 9

Warning: Cannot add header information - headers already sent by (output started at C:\Program Files\Apache Group\Apache\htdocs/up.php:8) in C:\Program Files\Apache Group\Apache\htdocs/up.php on line 10

Warning: Cannot add header information - headers already sent by (output started at C:\Program Files\Apache Group\Apache\htdocs/up.php:8) in C:\Program Files\Apache Group\Apache\htdocs/up.php on line 11

Warning: Cannot add header information - headers already sent by (output started at C:\Program Files\Apache Group\Apache\htdocs/up.php:8) in C:\Program Files\Apache Group\Apache\htdocs/up.php on line 12

Warning: Cannot add header information - headers already sent by (output started at C:\Program Files\Apache Group\Apache\htdocs/up.php:8) in C:\Program Files\Apache Group\Apache\htdocs/up.php on line 13

Не понимает хэдеры хоть убей.


--------------------
PM MAIL WWW   Вверх
Irokez
Дата 31.7.2005, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 22
Всего: 53



Цитата(Jey_k @ 31.7.2005, 18:57)
Не понимает хэдеры хоть убей.

вставь их в самое начало документа
PM   Вверх
Jey_k
Дата 31.7.2005, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: 1
Всего: 61



Irokez
там система такая

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//RU" "http://www.w3.org/TR/html4/loose.dtd">

<html>
...

<?

...

?>

</html>


куда вставлять?

После <? не катит. Не понимает. В самый верх документа тоже



--------------------
PM MAIL WWW   Вверх
Irokez
Дата 31.7.2005, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 22
Всего: 53



Код

<?php
  header("Cache-Control: no-store, no-cache, must-revalidate");
  header("Cache-Control: post-check=0, pre-check=0", false);
 ...
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//RU" "http://www.w3.org/TR/html4/loose.dtd">
<html>
...
<?
...
?>
</html>

PM   Вверх
PARROT
Дата 31.7.2005, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Выход- буферизация, хедеры любят ее.
Код

<?
ob_start();
?>
<html>
<head></head>
<body>
тело документа
</body>
</html>
<?php
ob_end_flush();
?>



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 31.7.2005, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



В тему буферизации: http://forum.vingrad.ru/index.php?act=modu...el&article=2859

Цитата(Jey_k @ 31.7.2005, 20:10)
там система такая

Это не правильная система ;)

PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0734 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.