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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не перезаписывается картинка

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: а должна
Stahanovec
Отправлено: 31 Декабря, 2010 - 18:25:48
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




в общем такое дело: выводится случайная фотка. база ее выдает, потом пхп скрипт ресайзит и записывает в файл, имя которого 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();
 
 Top
HotBird
Отправлено: 31 Декабря, 2010 - 19:29:13
Post Id



Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Сент. 2010  


Помог: 2 раз(а)




А почему у вас проверка на существование $uploadfile1 проводится перед созданием $uploadfile1 ?


-----
Человек, сделавший синтаксический анализатор PHP на одном регулярном выражении, займет достойное место среди гениев.
Качественный хостинг по доступной цене
 
 Top
Stahanovec
Отправлено: 01 Января, 2011 - 13:15:51
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




действительно. сделал вот так, все равно тоже самое:

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, то все нормально, а если посредством отправки формы, то проблема так и остается
 
 Top
HotBird
Отправлено: 01 Января, 2011 - 13:40:41
Post Id



Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Сент. 2010  


Помог: 2 раз(а)




В этом куске кода вроде все нормально. К сожалению не видно схемы работы скрипта в общем. Наверное причина в самой форме или в скрипте который обрабатывает форму. Возможно вам надо выполнять этот код при обработке данных формы ? Или рядом с местом где формируется ссылка для картинки.

(Отредактировано автором: 01 Января, 2011 - 13:51:04)



-----
Человек, сделавший синтаксический анализатор PHP на одном регулярном выражении, займет достойное место среди гениев.
Качественный хостинг по доступной цене
 
 Top
Stahanovec
Отправлено: 01 Января, 2011 - 13:53:11
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




я пошел совсем другим путем.
вообще идея сайта такая: на главной странице выдается случайная фотка и надо угадать возраст человека на фотке. справа форма с кнопками, после нажатия, появляется следующая фотка и над кнопками результат предыдущей игры, с превьюшкой прошлой фотки. эта превьюшка постоянно делалась php скриптом и записывалась во временный файл.
далее то же самое происходит слева под блоком меню: выводится случайная фотка, превью которой тоже генерируется скриптом и записывается во временный файл.
и то же самое делается и в профайле пользователя.

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

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

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

кстати, вот, собственно, сам сайт: _http://guessrealage.ru

(Отредактировано автором: 01 Января, 2011 - 13:53:37)

 
 Top
Мелкий Супермодератор
Отправлено: 01 Января, 2011 - 14:10:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




HotBird пишет:
В этом куске кода вроде все нормально.

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

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

А вот это - правильный подход. Места съедается всего ничего, зато на проц нагрузка значительно ниже.


-----
PostgreSQL DBA
 
 Top
HotBird
Отправлено: 01 Января, 2011 - 22:56:07
Post Id



Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Сент. 2010  


Помог: 2 раз(а)




Мелкий пишет:
А вот теперь - старательно создаётся переменная, потом проверяется она же на существование, и если существует, то удаляется! Ха-ха

Я конечно понимаю что новый год и т.д. Но если внимательно присмотритесь то увидите что удаляется не переменная а файл, если он существует. А в начальной версии проверялась на существование пустая переменная которая до этого даже не существовала, а после этого создавалось имя файла для ресайза.
Думаю ваш сарказм здесь неуместен. Сначала хорошо проверте а потом говорите Ха-ха!


-----
Человек, сделавший синтаксический анализатор PHP на одном регулярном выражении, займет достойное место среди гениев.
Качественный хостинг по доступной цене
 
 Top
Мелкий Супермодератор
Отправлено: 02 Января, 2011 - 00:40:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




HotBird пишет:
Но если внимательно присмотритесь то увидите что удаляется не переменная а файл, если он существует.

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

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


-----
PostgreSQL DBA
 
 Top
HotBird
Отправлено: 02 Января, 2011 - 00:59:08
Post Id



Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Сент. 2010  


Помог: 2 раз(а)




Мелкий пишет:
В общем, бессмысленная проверка.

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

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

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


-----
Человек, сделавший синтаксический анализатор PHP на одном регулярном выражении, займет достойное место среди гениев.
Качественный хостинг по доступной цене
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB