Подскажите по опыту, какой модуль лучше использовать для работы с zip-архивами? Я так понимаю, встроенных нет. Шишек в этом направлении не набито. Хотелось бы сгладить процесс...
P.S. может cms это тоже framework? а просто набор пары классов? Просьба не путать мух с котретами.
Спасибо. Изучу.
А про мух и котлет... Для мух просто отдельного раздела не нашел В смысле, наличие api у таких сервисов позволило мне хоть как-то тематически втрясть в ветку.
Уважаемые форумчане, посоветуйте, пожалуйста, сервис для отправки sms сообщений (будет использоваться для подтверждения авторизации) на основании своего опыта, т.е. каким или какими реально пользовались и осталось хорошее впечатление по соотношению цена-надежность-удобство api.
PS Отнес тему к фреймворкам, т.к. api - это сути оно и есть...
Задачку решил кстати, MVC подход - рулит, определённо.
Жесть, конечно. Как первый вопрос (старт топик), который сводится к тому, как сделать так, чтобы при обработке комбинации из последовательности n бит приходилось обрабатывать количество вариантов меньше 2 в степени n... Так и вывод о том, что MVC рулит... Особенно, если знать, что задача сводится к обработке информации, полученной из формы. (Добавление)
SAD пишет:
используйте js и не мучайте себя и пользователя, который если не заполнит поле, будет по сто раз вводить данные
А если спецом не заполняют? Я к тому, что если ограничиваться только js обработкой, то можно словить все, что угодно, потому что обойти ее писофкэйк.
Сразу скажу, что отдаю отчет, что тема избитая, за что прошу простить, но встал вопрос ребром, как не дать работать коду на ином, кроме изначально установленного в коде домене. В общих чертах вопрос стоит, как защитить коммерческий код php, но это явно тема для холивара и ее, насколько помню, просили не поднимать. В связи с этим изложу конкретную (не общую) часть подхода и предвосхищу некоторые моменты.
1. Вопрос об изобретении велосипедов, и вопрос о том, кому нафиг нужен мой или чей-то еще код, а также предложения находить радость в том, что он хоть кому-то нужен прошу считать в данной ветке офтопом.
2. Собственно, алгоритм.
Есть точка входа в скрипт - это функция с параметрами. Все, что происходит, происходит в ней, в том числе проверка на домен. Будем считать, что изменить функцию и все классы, которые в ней запускаются злоумышленник не сможет (обфускация и т.п.). Основной проблемой при привязке к домену является тот факт, что $_SERVER['SERVER_NAME'] можно подменить до входа в скрипт. Собственно, вопрос в том, чтобы скрипт определял была ли произведена подмена.
Как решается в общих чертах.
а) Запись определенного файла на сервер как-то так $_SERVER['DOCUMENT_ROOT'].путь_к_файлу
б) Проверка его через http по пути $_SERVER['SERVER_NAME'].путь_к_файлу.
Если по http получаем 200 OK, значит $_SERVER['SERVER_NAME'] можно верить, если до входа в скрипт $_SERVER['SERVER_NAME'] было изменено, то по http 200 OK уже никак не получить и тогда считаем, что $_SERVER['SERVER_NAME'] верить нельзя. Таким образом, решаем ключевой вопрос по обходу привязки к домену. Остальное - дело техники.
В принципе, код набросал и он в общих чертах работает так:
Файл по http проверяю через fsockopen(), потому что эта функция по идее интегрирована в php. Запрашиваю только заголовки. Чтобы быть уверенным, что доступ к файлу снаружи не будет блокирован, размещаю в этой же папке .htaccess с доступом конкретно к этому файлу (все остальные запросы извне блокируются в корневом каталоге скрипта).
Если файл существует, то получаю отклик 200 OK достаточно быстро, так что при нормальной работе, скрипт не тормозит. Если же $_SERVER['SERVER_NAME'] подменили, то, соответственно, возникают тормоза, потому что fsockopen пытается установить соединение, но не может.
Первый вопрос: можно ли избежать указанных тормозов при работе с fsockopen? По идее не критично и возникают они, когда ставлю левый домен, которого не существует. В реальности вряд ли кому-то надо будет менять на не существующий. По идее, опять же, если сервера нет в природе, то такие тормоза будут полюбому, но вдруг все-таки есть решение, которого я не знаю? Таймаут, кстати ставил на 1 сек, но чето это не помогло.
Второй вопрос: как еще стандартными средствами можно проверить существование файла через запрос извне. Может, кроме fsockopen, есть более простой способ?
Третий вопрос: почему, когда файла нет (а домен есть), получаю 500, а не 404?
Буду признателен за подсказ по вопросам, а также прошу оценить подход в целом и, если кто-то видит подводные камни, то буду признателен за их выявление.
ЗЫ Чуть подправил текст. Переформулировал вопросы.
P.S.S Сам я тоже начинал с jQuery, причем, сейчас вижу/знаю людей, которые тупо ненавидят js именно из-за косяков с кросбраузерностью.
Радикально другая сторона медали. Как можно ненавидеть js? Можно тогда ненавидеть html, например За косяки с кроссбраузерностью логично ненавидеть браузеры, которые не поддерживают стандарты и Майкрософт особенно, но js-то причем?
Не, реально не воткну... Как можно писать на jq и ненавидеть js...
библиотека, которая дала мощный толчок популяризации js.
Думаешь? Почему ты так думаешь?
Могу ошибаться в хронологии... Но хотя бы потому, что в js появились queryselector-ы, которые работают с dom так, как это делал до них jq. Т.е. как в гонках передовые решения запустили в серию.