Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не перезаписывается картинка
Форумы портала PHP.SU » PHP » Программирование на PHP » Не перезаписывается картинка

Страниц (1): [1]
 

1. Stahanovec - 31 Декабря, 2010 - 18:25:48 - перейти к сообщению
в общем такое дело: выводится случайная фотка. база ее выдает, потом пхп скрипт ресайзит и записывает в файл, имя которого tmp1_(id сессии).
дело в том, что он не всегда перезаписывается, бывает так, что просто выдается одна и та же фотка. (у фотки ссылка на самого пользователя) при том что ссылка меняется постоянно.

сам код:

PHP:
скопировать код в буфер обмена
  1. $query3 = mysql_query ("SELECT * FROM users WHERE photo IS NOT NULL ORDER BY RAND()");
  2.    $r3 = mysql_fetch_array($query3);
  3.    $uploaddir1 = './tmp/';
  4.    if(isset($uploadfile1)){
  5.         unlink($uploadfile1);
  6.         }
  7.    $uploadfile1 = $uploaddir1.basename('tmp1_').basename(session_id());
  8.    require("imageresize.php");
  9.    img_resize($r3['photo'], $uploadfile1, 150, 150);
  10.    mysql_close();
2. HotBird - 31 Декабря, 2010 - 19:29:13 - перейти к сообщению
А почему у вас проверка на существование $uploadfile1 проводится перед созданием $uploadfile1 ?
3. Stahanovec - 01 Января, 2011 - 13:15:51 - перейти к сообщению
действительно. сделал вот так, все равно тоже самое:

PHP:
скопировать код в буфер обмена
  1. $query3 = mysql_query ("SELECT * FROM users WHERE photo IS NOT NULL ORDER BY RAND()");
  2.    $r3 = mysql_fetch_array($query3);
  3.    $uploaddir1 = './tmp/';
  4.    $uploadfile1 = $uploaddir1.basename('tmp1_').basename(session_id());
  5.    if(isset($uploadfile1)){
  6.         unlink($uploadfile1);
  7.         }
  8.    require("imageresize.php");
  9.    img_resize($r3['photo'], $uploadfile1, 150, 150);
  10.    mysql_close();


при всем этом, если обновлять страницу с помощью F5, то все нормально, а если посредством отправки формы, то проблема так и остается
4. HotBird - 01 Января, 2011 - 13:40:41 - перейти к сообщению
В этом куске кода вроде все нормально. К сожалению не видно схемы работы скрипта в общем. Наверное причина в самой форме или в скрипте который обрабатывает форму. Возможно вам надо выполнять этот код при обработке данных формы ? Или рядом с местом где формируется ссылка для картинки.
5. Stahanovec - 01 Января, 2011 - 13:53:11 - перейти к сообщению
я пошел совсем другим путем.
вообще идея сайта такая: на главной странице выдается случайная фотка и надо угадать возраст человека на фотке. справа форма с кнопками, после нажатия, появляется следующая фотка и над кнопками результат предыдущей игры, с превьюшкой прошлой фотки. эта превьюшка постоянно делалась php скриптом и записывалась во временный файл.
далее то же самое происходит слева под блоком меню: выводится случайная фотка, превью которой тоже генерируется скриптом и записывается во временный файл.
и то же самое делается и в профайле пользователя.

немного переписав код я сделал так: при загрузке фотографии пользователем сразу же создаются 3 превью и кладутся в отдельную папку: превью случ. фотки, превью результата и превью в профайле. так и вроде бы меньше нагрузки на серв, но больше места на диске занимает (хотя каждая превью не больше 2кб весит, так что нормально)

все равно, спасибо за внимание

------------

кстати, вот, собственно, сам сайт: _http://guessrealage.ru
6. Мелкий - 01 Января, 2011 - 14:10:30 - перейти к сообщению
HotBird пишет:
В этом куске кода вроде все нормально.

Радость Странное у вас понятие о "нормально".
Нормально было в начале темы, где присутствовало бессмысленное удаление переменной.
А вот теперь - старательно создаётся переменная, потом проверяется она же на существование, и если существует, то удаляется! Ха-ха

Stahanovec пишет:
так и вроде бы меньше нагрузки на серв, но больше места на диске занимает (хотя каждая превью не больше 2кб весит, так что нормально)

А вот это - правильный подход. Места съедается всего ничего, зато на проц нагрузка значительно ниже.
7. HotBird - 01 Января, 2011 - 22:56:07 - перейти к сообщению
Мелкий пишет:
А вот теперь - старательно создаётся переменная, потом проверяется она же на существование, и если существует, то удаляется! Ха-ха

Я конечно понимаю что новый год и т.д. Но если внимательно присмотритесь то увидите что удаляется не переменная а файл, если он существует. А в начальной версии проверялась на существование пустая переменная которая до этого даже не существовала, а после этого создавалось имя файла для ресайза.
Думаю ваш сарказм здесь неуместен. Сначала хорошо проверте а потом говорите Ха-ха!
8. Мелкий - 02 Января, 2011 - 00:40:07 - перейти к сообщению
HotBird пишет:
Но если внимательно присмотритесь то увидите что удаляется не переменная а файл, если он существует.

а вроде не пил... Удаляется таки файл, да, но если существует сама переменная, а не файл, путь до которого она содержит!
Плюс к тому, функции работы с файлами обычно и так перезаписывают файл. В общем, бессмысленная проверка.

PS: никакого сарказма, извиняюсь, если обидел.
9. HotBird - 02 Января, 2011 - 00:59:08 - перейти к сообщению
Мелкий пишет:
В общем, бессмысленная проверка.

Тут с вами полностью согласен. А если уж автор решил проверять, то надо проверять не переменную на существование а файл, через file_exists

Мелкий пишет:
PS: никакого сарказма, извиняюсь, если обидел.

Приятно разговарить с толерантными людьми!

 

Powered by ExBB FM 1.0 RC1