ijk

ijk
Рейтинг
190
Регистрация
19.08.2007

Только что задавал похожий вопрос — вроде не запрещено. Если вы гоните тематический траф с Директа, то в чём, собственно, проблема?

Ситуация оказалась из разряда "сам дурак". В общем моя иконка содержала в себе четыре варианта:

* 16x16, 8 bit

* 16x16, 32 bit

* 32x32, 8 bit

* 32x32, 32 bit

Вот Яндекс и выбрал восьмибитный, он в выдаче и отображался. Ещё момент. Чтобы иконка не размазывалась в Opera, нужно выставлять разрешение 96dpi. Насчёт альфа-канала не скажу — в выдаче есть и полупрозрачные и с белым фоном.

СПАСИБО! Всё заработало как надо!

Перетряс есть. Очевидно, что пока сменились показатели только у сайтов из ЯК.

У Яндекса действительно очень непрозрачные правила и ведёт он себя очень агрессивно по отношению к сайтам. Но приходится признавать, что доля рынка, которой владеет Я пока очень и очень немаленькая. И сбрасывать ПС со счетов как минимум неразумно — посетители есть посетители и бороться за них приходится в не зависимости от их источника.

Другое дело, что РуНет сама по себе очень агрессивная среда. И если бы не механизмы Я, то ГС клепались бы миллионами на полном автомате. Но всё же это не оправдывает того, что честные вебмастера должы жить, постоянно переживая за свои сайты.

'[umka:
;9456766']Я бы не стал хранить в куках username и хэш пароля :)
И ещё рекомендовал бы при авторизации (да и вообще при передаче ценной информации) использовать https.

Откровенно не тот случай для использования защищённого протокола))

ijk добавил 23.09.2011 в 11:42

php.developer:
В общем случае, то, что Вы описали выше верно. Но для устойчивости паролей советую добавлять к ним соль.

Спасибо за ссылку. Ценная информация.

php.developer:
Для CodeIgniter есть библиотека для аутентификации - Ion Auth.

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

Если брать теорию, то я так верно всё понимаю:

1. Храним в базе username и md5(passwd) или любой другой хэш.

2. При заходе пользователя на страницу, проверяем, записано ли у него в сессии username и logged_in = true, тогда он залогинен.

3. Если в данных сессии ничего нет, проверяем куку. В ней должен быть username и хэш нашего пароля. Если всё сошлось, стартуем сессию.

4. Если и куки нет, то предлагаем пользователю форму ввода логина и пароля. После чего отправляем ему куку и, заоодно, стартуем сессию.

Насколько понимаю, в сессии можно хранить всё, что угодно, в том числе категорию user'а, т.к. эта информация хранится на сервере.

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

vavenko:
SELECT MAX(posts.id) AS id, type, rating FROM posts INNER JOIN rates USING(id) GROUP BY type ORDER BY rating DESC LIMIT 5

Увы, так не работает(( Думаю потому, что сначала идёт группировка, а потом уже упорядочивание по рейтингу.

Toy:
Я бы сделал вложенный запрос, но предупреждаю что я салага в sql, и возможно тут правильней использовать JOIN или еще что-то.
SELECT MAX(id) AS id, type, (SELECT rating FROM rates WHERE id = posts.id) AS rating FROM posts GROUP BY type ORDER BY rating DESC LIMIT 5

Через временные таблицы удалось провернуть всё, но скорость работы упала в 100 раз((

ijk добавил 22.09.2011 в 18:30

Победа! Не факт, что оптимально, но приемлемо. Запрос:

SELECT MIN(posts.id), posts.type, rates.rating FROM posts, rates JOIN (SELECT MAX(rates.rating) as MaxR, type FROM posts, rates WHERE posts.id = rates.id GROUP BY type ORDER BY MaxR DESC LIMIT 5) as y ON rates.rating = y.MaxR

WHERE posts.id = rates.id

GROUP by type

ORDER by rates.rating DESC

LIMIT 5

Суть такова:

1. Считаем макс. рейтинг по каждому типу и выбираем пять различных типов с максимальными рейтингами (внутри JOIN).

2. Выбираем посты с такими же рейтингами и следим, чтобы тип оставался уникальным.

3. На всякий случай делаем LIMIT 5 в конце, если есть много разных статей с равными макс. рейтингами.

Вроде должно работать верно. Спасибо всем за обсуждение и вклад в решение проблемы!

Всего: 546