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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вырисовываеться не вся картинка 
:(
    Опции темы
Fubu_By
Дата 5.3.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 0



такая вот проблема уменьшаю картинку и сохраяю в mysql, но дело в том что картинка сохраняеться только до определённого момента а дальше пустой кусок...из-за чего это?
Код

$image = imagecreatefromjpeg($this->image_path);
            $srcWidth = imagesx($image);
            $srcHeight = imagesy($image);
            $k = $srcWidth / 120;
            $destHeight = round($srcHeight / $k);
            $destWidth = 120;
            $destImage = imagecreatetruecolor( $destWidth, $destHeight);
            ImageCopyResized( $destImage, $image, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight );
            ImageJpeg($destImage, $this->image_path,99);
            $f = fopen($this->image_path,"rb");
            $image = fread($f,filesize($this->image_path));
            copy($this->image_path, '../img/1.jpg');
             fclose($f);            
            $image = addslashes($image);
            return $image;

потом $image закидываеться в БД


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


неОпытный
****


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

Репутация: 3
Всего: 260



зачем ты обрабатываешь картинку как текст:
Цитата(Fubu_By @  5.3.2008,  12:00 Найти цитируемый пост)
$image = addslashes($image);
?!
это же бинарные, а не текстовые данные!
почему уж тогда для resize ты не применяешь str_replace?

PM MAIL   Вверх
solenko
Дата 5.3.2008, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



skyboy, а что, в бинарных данных не может встречаться слеш?

Fubu_By, а когда достаете вы stripslashes случайно не делаете?
И уже офтоп -- а вы уверены, что вам их в базе хранить нужно?


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
gta4kv
Дата 5.3.2008, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 8
Всего: 91



Цитата(solenko @ 5.3.2008,  18:54)
skyboy, а что, в бинарных данных не может встречаться слеш?

А ты не подумал что это убивает часть картинки!?
PM MAIL   Вверх
solenko
Дата 5.3.2008, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



gta4kv, и каким же образом? Можете опробовать простой пример:
Код

<?php
$str = 'ssfsdf\\sdff\'df"fgdfg';
mysql_connect('localhost', 'root', '111');
mysql_select_db('test');
mysql_query('TRUNCATE TABLE t1');
mysql_query('INSERT INTO t1 VALUES (\''.addslashes($str).'\')');
$res = mysql_query('SELECT f1 FROM t1');
while ($row = mysql_fetch_array($res)) {
    echo $row[0]."\n";
}





--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
gta4kv
Дата 6.3.2008, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 8
Всего: 91



Смотри, вот например PNG картинка:
Код

ЙPNG

���
IHDR�� ��Р���lлЦw���PLTE���Іz=Џ���>IDATxЬнЅ1���¬†хOm
†���������������������������������������>
Э–�хQJэ����IENDЃB`В


Если добавить слешу - она не будет отображаться, по крайней мере частично.
PM MAIL   Вверх
Fortop
Дата 6.3.2008, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(gta4kv @  6.3.2008,  07:35 Найти цитируемый пост)
Смотри, вот например PNG картинка:

smile Ты знаешь, я вчера сам удивился smile
Но 
Код

fwrite($fh, stripslashes(addslashes(fread($fh))));

Корректно отрабатывает с бинарными данными.

Это сообщение отредактировал(а) Fortop - 6.3.2008, 10:22


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
solenko
Дата 6.3.2008, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



Цитата(gta4kv @ 6.3.2008,  06:35)
Смотри, вот например PNG картинка:
Код

...


Если добавить слешу - она не будет отображаться, по крайней мере частично.

Естественно, если просто добавить то будут некорректные данные. Вот только ты забыл вставить в базу. А при вставке, можно считать, выполняется stripslashes.

Fubu_By, может у вас magic_cuotes как-то влияют?


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Feldmarschall
Дата 6.3.2008, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

Репутация: 2
Всего: 32



Fubu_By, вообще-то, явления "записывается не вся" и "показывается не вся" - не синонимы.
показываться не вся картинка может по тысяче причин. Надо выяснять конкретно - на каком этапе картинка портится. А не думать, что только база виновата. В конце концов, базу можно проверить - записать, считать, и сравнить файлы до записи, и после.

И вслед за solenko спрошу - а точно ли картинки надо хранить в базе. Это же неудобно и не имеет никакого практического смысла.
Я бы понял ,если бы это не имело смысла, но было бы удобно.
Я бы понял, если бы это было неудобно, но имело важную причину, ради которой стоило бы идти на все эти телодвижения.
Но если это и неудобно и ненужно, то зачем?

А причина, скорее, всего, в magis_quotes, да. 
В общем, чтобы снять все вопросы, рекомендую почитать PHP FAQ:  \"Кавычки \". Cоставление запросов, слеши, SQL Injection
PM   Вверх
Fubu_By
Дата 6.3.2008, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 0



проблема всё таки с сохранением в БД, где-то лишняя кавычка или слеш в файле
а главное самое интересное что одна и таже картинка на разных компьютерах по разному сохраняется, на моём домашнем полностью, а на хостинге половина smile 


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


Новичок
****


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

Репутация: 2
Всего: 32



что значит "где-то"?
Цитата(Feldmarschall @  6.3.2008,  11:17 Найти цитируемый пост)
В конце концов, базу можно проверить - записать, считать, и сравнить файлы до записи, и после.

что значит "лишняя"? Никаких лишних кавычек не бывает. 
на все вопросы ведь уже ответили, и про "лишние" кавычки в том числе.

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


Новичок
****


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

Репутация: 2
Всего: 32



Не удивлюсь, кстати, присутствию функции, подобной этой, которая исправно удаляет кавычки из входящих данных...
В общем, надо искать конкретную строку кода, которая меняет данные.
А гадать можно долго
PM   Вверх
skyboy
Дата 13.3.2008, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

Репутация: 3
Всего: 260



Цитата(solenko @  6.3.2008,  09:43 Найти цитируемый пост)
Естественно, если просто добавить то будут некорректные данные. Вот только ты забыл вставить в базу. 

Да, я тож этого не учел. смутило то, что вместо mysql_real_escape_string используется addslashes, да ещё и задолго до вставки в БД...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




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


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

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