Автор Тема: Решение проблемы урезания данных!  (Прочитано 9868 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн D1g174LM4n14c

  • 1m
  • Постоялец
  • ***
  • Сообщений: 137
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Решение проблемы урезания данных!
« : 07 Февраля 2004, 16:09:40 »
Хотелоь бы услышать мнение по этому поводу.

Пример следующий:

Есть поле в БД типа TEXT (max. 65535 bytes).
Есть скрипт добавляющий данные в БД.
Положим, на стороне клиента есть соответствующее ограничение на длину данных. Но скрипт при получении данных и перед записью их в БД применят, допустим, htmlspecialchars к этим данных. В результате может получиться так, что юзер отправит данных 65535 байт, а htmlspecialchars расширит их кол-во до какого-то большего размера. Предугадать или вычислить эту дельту для оставления запаса места в БД невозможно. Как тогда поступать?

Вариант: после htmlspecialshars вычислить длину данных и если она превышает лимит - выдать ошибку юзеру и данные не добавлять, пока проблема не будет решена.

Но если в PHP ф-ция strlen реализована также как в С++ - то это будет тормозно. Кто-то знает?

Ваши мнения?
Мы такие!

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Решение проблемы урезания данных!
« Ответ #1 : 07 Февраля 2004, 16:30:19 »
1.
- доктор, когда я делаю так, мне больно!
- а вы не делайте так!

базе абсолютно все равно, что хранить
поэтому, исходя из принципа неприкосновенности данных, не надо просто данные портить.

2.
Цитировать
D1g174LM4n14c:
если в PHP ф-ция strlen реализована также как в С++ - то это будет тормозно

это еще что за глупость несусветная?
какая разница, как она организована?
чтоза голословный бред?
почему бы не попробовать выполнить стрлен и посмотреть - будет тормозно или нет?

Оффлайн D1g174LM4n14c

  • 1m
  • Постоялец
  • ***
  • Сообщений: 137
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Решение проблемы урезания данных!
« Ответ #2 : 07 Февраля 2004, 16:40:53 »
1. Не надо портить...
А если просто необходимо htmlspecialchars применить к этим данным? Как в этом случае поступать?

2. В С++ strlen начиная с первого символа строки, проходит всю строку увеличивая указатель и таким образом считает колв-во символов. Поэтому эта ф-ция в С++ довольно "тяжелая".

А в PHP может быть strlen реализована по-другому. Например, строка на уровне кода интерпретатора уже описана с длиной или может длина вычисляется как разница между адресом последнего символа строки и первого... Куча вариантов. Вот тебе и разница...
Мы такие!

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Решение проблемы урезания данных!
« Ответ #3 : 07 Февраля 2004, 16:47:08 »
Ничего тормозить не будет.
Мне тормоз послужил толчком...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Решение проблемы урезания данных!
« Ответ #4 : 07 Февраля 2004, 16:55:05 »
Цитировать
А если просто необходимо htmlspecialchars применить к этим данным

этого просто не может быть.
базе твои хтмлспециалчарс не нужны.
если они тебе нужны в другом месте - то и ДЕЛАЙ ИХ В ТОМ МЕСТЕ! это же очевидно.
делать надо там, где надо.

Цитировать

Поэтому эта ф-ция в С++ довольно "тяжелая".

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

Оффлайн D1g174LM4n14c

  • 1m
  • Постоялец
  • ***
  • Сообщений: 137
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Решение проблемы урезания данных!
« Ответ #5 : 07 Февраля 2004, 17:18:40 »
Цитировать
RomikChef:
если они тебе нужны в другом месте - то и ДЕЛАЙ ИХ В ТОМ МЕСТЕ! это же очевидно.
делать надо там, где надо.


а если я вывожу кучу новостей на страницу?
к каждой при каждой генерации странице применять htmlspecialchars??? зачем же так убивать время и ресурсы?

Цитировать
RomikChef:
Эта цифра настолько микроскопическая, что я вообще поражаюсь, как она тебе в голву могла придти.

а я про все думаю. даже про самое мелкое...
Мы такие!

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Решение проблемы урезания данных!
« Ответ #6 : 07 Февраля 2004, 17:24:00 »
Цитировать
D1g174LM4n14c:
а я про все думаю. даже про самое мелкое...

есть такой персонаж в литературе - Плюшкин.
кому как, а у меня вызывает брезгливость.

но дело даже не в этом.
я готов поспорить на сто долларов, что в твоем коде есть места, в сто раз более неоптимальные, чем разница между тяжелым и легким алгоритмом  strlen

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

Оффлайн it4all

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 68
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.it4all.h10.ru
Решение проблемы урезания данных!
« Ответ #7 : 07 Февраля 2004, 17:52:40 »
D1g174LM4n14c
А накой тебе новости с тектом содержащим "<,">" и прочим мусором.Лучше просто удалить все теги strip_tagsом.
Но хозяин барин,я просто хочу спросить

Роомик за что ты меня бросил ????? А.

Оффлайн D1g174LM4n14c

  • 1m
  • Постоялец
  • ***
  • Сообщений: 137
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Решение проблемы урезания данных!
« Ответ #8 : 07 Февраля 2004, 18:35:40 »
RomikChef
Ты без грубости не можешь!
И запомни - я всегда знаю что я делаю!!!
Прощай.
Мы такие!

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Решение проблемы урезания данных!
« Ответ #9 : 07 Февраля 2004, 18:59:08 »
Цитировать
D1g174LM4n14c:
Прощай.

надеюсь, это не пустые слова

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Решение проблемы урезания данных!
« Ответ #10 : 07 Февраля 2004, 19:10:05 »
Ромик, если следовать твоему совету "если они тебе нужны в другом месте - то и ДЕЛАЙ ИХ В ТОМ МЕСТЕ!", то при аплоаде картинок на сервер, картинки нужно ресайзить не во время аплоада, а при каждом выводе браузеру.
Конечно, в данной конкретной ситуации ты прав, но имхо эта грань слишком размыта, чтобы делать такие категорические заявления в столь грубой форме.
Ну а про strlen - тут и спорить не о чем, вроде всё уже сказали.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Решение проблемы урезания данных!
« Ответ #11 : 07 Февраля 2004, 19:14:17 »
какие заявления?
где я писал резко про htmlspecialchars?

если же ты немного подумаешь, то изготовление превьюшек никак не противоречит принципу неприкосновенности данных.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Решение проблемы урезания данных!
« Ответ #12 : 07 Февраля 2004, 19:15:54 »
если следовать моему совету, то для экономии ресурсов, если уж такая понядобится, надо, как и превьюшки, класть рядом.
а не заменять при вводе.

понимаешь разницу?
и превьюшки я бы генерил с удовольствием, если бы это не создавало нагрузку на сервер.

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Решение проблемы урезания данных!
« Ответ #13 : 07 Февраля 2004, 19:28:54 »
Если ты имеешь в виду генерацию превьюшки и сохранение её рядом с оригинальной фото, то я имел в виду немного другое. Я имел в виду ситуацию, когда сайту нужны только уменьшенные версии.
Только не говори про фотошоп :) Фотошоп - это, конечно, хорошо, но не все заказчики это понимают...
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Решение проблемы урезания данных!
« Ответ #14 : 07 Февраля 2004, 19:40:15 »
опять же - разница между бинарными данными и текстовыми.
как с хранением в базе.

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

а резкость моя не от темы, а от
Цитировать
я всегда знаю что я делаю!!!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28