Forum Webscript.Ru

Дизайн и Верстка => Обсуждение сайтов => Тема начата: Forza от 25 Октября 2004, 14:47:27

Название: попробуйте вызвать ошибку (disctorg.ru)
Отправлено: Forza от 25 Октября 2004, 14:47:27
Предлагаю для вашей критики сайт, в создании которого я принимал непосредственное участие, - http://www.disctorg.ru
Т.к. я совсем не занимался дизайном, а только советовал по поводу навигации и написал весь весь скрипт на основе пожеланий заказчика, то наиболее интересно мне следующее:
а) насколько понятна навигация
б) есть ли какие-нибудь грабли в скрипте, срабатывающие при неадекватных действиях юзера

Если вдруг появится ошибка 500 или пустая страница, то опишите, пожалуйста, при каких условиях это произошло. К сожалению, у хостера (valuehost) подглючивает mysql, поэтому ошибки 500 часто возникают из-за него. :(

Не стесняйтесь регистрироваться и заказывать (т.к. грабли можно поискать и тут). Если в поле "прочее" напишите "test from webscript.ru", никто с вас денег за заказ брать не будет. :)

Но если очень захочется высказаться про дизайн, пишите - я передам это дизайнеру.
Название: попробуйте вызвать ошибку (disctorg.ru)
Отправлено: Grape от 25 Октября 2004, 20:00:39
скрипт вроде нормальный, а дизайн - никакой, уровня 98 года...
Название: попробуйте вызвать ошибку (disctorg.ru)
Отправлено: Forza от 26 Октября 2004, 00:54:26
Я вот думаю: может быть, во все урлы во избежание кэширования добавить случайное число (как это сделано на Яндекс.Почте). Или не надо?
Название: попробуйте вызвать ошибку (disctorg.ru)
Отправлено: Daiz13 от 26 Октября 2004, 09:50:21
пропиши цвет фона для body
Название: попробуйте вызвать ошибку (disctorg.ru)
Отправлено: Forza от 26 Октября 2004, 12:01:45
Господа, спасибо за ответы, но на самом деле дизайн сайта мне весьма фиолетов, т.к. я им не занимался. Мне больше интересна функциональность скрипта, в т.ч. в том, как он защищён от хитроумных юзеров.
Название: попробуйте вызвать ошибку (disctorg.ru)
Отправлено: gigipah от 31 Октября 2004, 22:56:30
а тестером вроди ещё и платят....)))))
Название: попробуйте вызвать ошибку (disctorg.ru)
Отправлено: Forza от 31 Октября 2004, 23:02:16
Смешно.
Мне не нужен тест основных возможностей сайта - я их сам проверял кучу раз. Мне желателен тест некоторых исключительных ситуаций, о которых я просто не могу догадываться (те, о которых догадался, уже проверены).
Название: попробуйте вызвать ошибку (disctorg.ru)
Отправлено: Green Kakadu от 01 Ноября 2004, 15:20:18
не ошибки, а просто интересно.

Если при GET-передаче самостоятельно поменять id с такого
id=2272
на такой: "id=2272,любая лабуда"
то в общем-то все работает - он показывает страницы нужного товара (id=2272) но при этом таскает за собой "подпорченный" id. Если добавить товар с таким ид в корзину, потом тому же товару опять подправить ид, и опять внести его в корзину, то с точки зрения скрипта - это два разных продукта, хотя инфу он по ним выдает нормально

Вопрос: интересно, как ты делаешь выборку товара по id? И проверяешь его на "правильность" (напр.,только цифры?)
если задать ид не существуещего товара не проще ли выкинуть страницу, что такого id не существует?

2. при поиске ИМХО стоит сделать ограничения на кол-во слов в запросе и на длину запроса, хотя смортя как ты это реализовал. Я надеюсь она не лопатит базу по каждому слову..
поиск по CD как я понял в разработке

пример (можно и подлинее):
http://www.disctorg.ru/cgi-bin/index.pl?dvd_keywords=%E4%E8%F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+%E2+2+3+4+5+:+7+*+9+0+ваава+%FB%F4&choice=search_dvd
Название: попробуйте вызвать ошибку (disctorg.ru)
Отправлено: Forza от 01 Ноября 2004, 16:07:03
Цитировать
Green Kakadu:
Если при GET-передаче самостоятельно поменять id с такого
id=2272
на такой: "id=2272,любая лабуда"
то в общем-то все работает - он показывает страницы нужного товара (id=2272) но при этом таскает за собой "подпорченный" id. Если добавить товар с таким ид в корзину, потом тому же товару опять подправить ид, и опять внести его в корзину, то с точки зрения скрипта - это два разных продукта, хотя инфу он по ним выдает нормально
Да, действительно, есть такой баг. Я его исправил, добавив в функции вывода описания и добавления в корзину $id = int $id;
Цитировать
Green Kakadu:
если задать ид не существуещего товара не проще ли выкинуть страницу, что такого id не существует?

Я предлагал такой вариант заказчику, но он отказался. В принципе, он прав. Во всех ссылках - только валидные айди, а если юзер сам начал что-то менят в get-запросах, но пусть сам и проверяет, нашёлся ли такой айди. :)
Цитировать
Green Kakadu:
при поиске ИМХО стоит сделать ограничения на кол-во слов в запросе и на длину запроса
Спасибо за совет. Подумаю об этом.
Цитировать
Green Kakadu:
хотя смортя как ты это реализовал. Я надеюсь она не лопатит базу по каждому слову..
Зря так надеешься. :) Поиск глобально всё лопатит. Т.е. он ищет появление каждого из указанных слов как минимум в одном из трёх проверяемых полей, т.е. для двух слов получается (col1 LIKE \'%word1%\' OR col2 LIKE \'%word1%\' OR col3 LIKE \'%word1%\') AND (col1 LIKE \'%word2%\' OR col2 LIKE \'%word2%\' OR col3 LIKE \'%word2%\'). Понимаю, что запрос потенциально очень медленный, но и база пока маленькая - и особенно на этом запросе не тормозит. Будут проблемы - подумаю об оптимизации.
Цитировать
Green Kakadu:
пример (можно и подлинее):
http://www.disctorg.ru/cgi-bin/index.pl? dvd_keywords=%E4%E8%F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0
 +ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+
 %F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+
 5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+в
 аава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F
 4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+
 :+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваа
 ва+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%
 E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+
 7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава
 +F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2
 +2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+
 *+9+0+ваава+F1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F
 1%EA+%F4%E2+2+3+4+5+:+7+*+9+0+ваава+F1%EA+%F4%E2+2
 +3+4+5+:+7+*+9+0+ваава+%E2+2+3+4+5+:+7+*+9+0+ваава
+%FB%F4&choice=search_dvd

Этот пример немного на другое, т.е. на отсутствие параметра dvd_keywords (ты его в нём заменил на %20dvd_keywords). Я и это подправил. Теперь в этом случае редирект на главную страницу.

Большое спасибо за потраченное время на тестинг скрипта!
Название: попробуйте вызвать ошибку (disctorg.ru)
Отправлено: Green Kakadu от 01 Ноября 2004, 16:41:37
Цитировать
Forza:
Зря так надеешься.  Поиск глобально всё лопатит. Т.е. он ищет появление каждого из указанных слов как минимум в одном из трёх проверяемых полей,

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

Я его исправил, добавив в функции вывода описания и добавления в корзину $id = int $id;

а не стоит ли посылать на $%@ тех товарищей которые набрали невалидный id?


Цитировать
Forza:
Этот пример немного на другое, т.е. на отсутствие параметра dvd_keywords (ты его в нём заменил на %20dvd_keywords).

это не я - это форум так это переварил. Т.е. там был dvd_keywords но очень длинный из кучи всякого мусора. Он мне его выдавал на полстраницы, типа по вашему запросу "пол страницы той фигни что я ввел" результатов 0
Название: попробуйте вызвать ошибку (disctorg.ru)
Отправлено: Forza от 01 Ноября 2004, 16:42:30
Цитировать
Green Kakadu:
Я его исправил, добавив в функции вывода описания и добавления в корзину $id = int $id;

а не стоит ли посылать на $%@ тех товарищей которые набрали невалидный id?

Это как? Сделать DoS-атаку на их айпи? :)
Ну и пусть вводят, самое главное, чтобы заказ сделали. :)
Цитировать
Green Kakadu:
Он мне его выдавал на полстраницы, типа по вашему запросу "пол страницы той фигни что я ввел" результатов 0
Сейчас всё ведь нормально, да? Кстати, я по тому примеру понял, что также забыл сделать escapeHTML() для ключевых в слов при выводе их в результатах поиска.

Да, если ещё кто-нибудь любезно согласится что-либо проверить, то не стесняйтесь регистрироваться с правильными емэйлами и даже что-либо заказать себе (указав в поле прочее "test from webscript.ru"). Всё-таки иначе определённая часть скрипта вообще не работает. Обещаю, ваши емэйлы спамерам не уйдут. :)