:: urbansheep (urbansheep) wrote,
:: urbansheep
urbansheep

  • Music:

[ utx ] Как искать жука в тёмной комнате // Исправление части проблем в реквестере

„Как искать жука в тёмной комнате, когда он выполз через дыру в плинтусе наружу“. Разобрали часть ошибок, которые не давали мне покоя в последнее время. В частности, ошибки, на которые Крошка Тахо наталкиваласть при попытке вытащить некоторые заголовки, и которые я валила на авторизацию, оказались совсем в другой стороне.

Оказалось, что мы:

  • Никак не учитывали тот факт, что запись может быть удалена. (Привет cd_r и всем остальным любителям удаления своих журналов). Теперь учитываем — если на запрос к записи LJ нам отвечает, что „No such entry“, мы с чистой совестью удаляем такую запись и из своей базы.
  • Никак не учитывали несколько мелких, но неприятных потенциальных брешей. (Правда, теперь надо понять, как строку, в которой может быть что угодно, правильно эскейпить, а то сразу откуда-то слэши перед кавычками полезли[1]).
  • Столкнулись с амбивалентностью user/community. При попытке запросить запись из сообщества, но через users (например, /users/rulj вместо /community/rulj) Крошку Тахо перекидывало на другой адрес через 302. А редиректы Тахо не понимает. Потому запись и не обрабатывалась, и не отмечалась „битой“ (Тахо ведь считает так: „никаких ошибочных сообщений не найдено — значит, с записью всё в порядке“). Пришлось вручную исправить ссылку в базе на правильную.

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

На очереди: нормальный UTF8-конвертер для этих грешных заголовков, а то эти кракозябры в заголовках меня утомляют.

upd:

— А не надо было делать умное лицо и запихивать в кавычки результат mysql_escape_string — она сама где надо кавычек наставит.

— Дура, тебе нужно было сначала код прочитать, там уже есть кавычки, когда оно приходит в запрос! Причём (sic!) используется не просто mysql_escape, а mysql_real_escape, ради которой было незакрыто подключение к БД, и которая работает правильнее, так как учитывает текущий charset. Тебе стыдно? И поделом, не будешь умничать, где не надо.

Subscribe
  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments