Вообще говоря, у любого мало-мальски известного фреймворка есть сформировавшееся сообщество, а значит и куча всякого рода аддонов, плагинов и модулей. Например, для Symfony есть куча готовых модулей для клепания социальных сетей :) . Там Вам и MVC своеобразное, и ORM и автоматизированное тестирование, и многие другие идеологические штуки. Но опять же монструазная.
А известных фреймворков с трудной для понимания документацией я как-то не встречал =).
Вы бы озвучили, чего нужно, чтобы было от чего плясать, чего советовать :)
Обычно спам-боты заполняют не все поля, а только те, имена которых попадают под известный паттерн (*name*, *author*, *mail*, *url*, *homepage* и тому подобное). Если сделать текстовое (именно текстовое, не hidden) поле с именем типа homepage, а потом скрыть его средствами CSS, то среднестатистическая спамилка купится. Придётся, правда, пожертвовать возможностью пользователей оставлять свои адреса :)
Другой вопрос, что этот вариант спасёт лишь от спамилок, которые берут количеством. Если написать робота, заточенного под определённый сайт, то и капчи не спасут, не говоря уже о CSS =)
А я от себя порекомендовал бы симбиоз JS и CSS. А уж если у пользователя нет ни того и ни другого, то уже тут показывать капчу.
Вставляет строку вызова таблицы CSS и передаёт в аргументах вызова адрес текущей страницы, реферер и поддерживает ли браузер куки.
Ну и пара функций: одна для редиректа, другая вставляет текущий код в копирайт =)
Думаю, что MySQL врать не будет, это ему невыгодно :). Такой таблицы, какую он запрашивает, действительно нет. Попробуйте зайти через phpMyAdmin и посмотреть, как называются созданные таблицы.
Почти уверен, что не в БД беда, а в конфиге. Скорее всего, потёрлась переменная, которая выставляла префикс таблиц.
Вероятно, не существует таблицы dle__post в БД stryker_la? :) Проверьте настройки, правильно ли всё создалось... Кстати, двойной прочерк в dle__post наводит на мысль о непропечатавшемся префиксе для таблиц ;)
Ответьте, пожалуйста, на ряд уточняющих вопросов, чтобы картину прояснить:
1. Каким образом Вы создавали дамп на сервере A, через mysqldump (консольную утилиту) или через шаманства типа phpMyAdmin?
2. Каким образом Вы восстанавливали дампы на сервере B?
3. Попробуйте просмотреть таблицы БД через phpMyAdmin. Можно ли прочитать данные в них, или там тоже будут кракозяблы?
Ответьте на эти вопросы, а там решим, что делать =))
P.S. совет на будущее: всегда используйте mysqldump для создания дампов. Это гарантия того, что данные в принципе подлежат восстановлению (если дамп, конечно, не битый) :)
Не надо использовать циклы там, где можно без них обойтись :)
$old = array('aa', 'bb'); $new = array('aa1', 'bb1'); /** * Создаём массив, каждый элемент которого - соответственный * элемент массива $old, обработанный функцией my_convertor() */ $con = array_map('my_convertor', $old); function my_convertor($c) { return 'ss' . $c . 'ss'; }
Глянули... Из 17кб кода запросов там, прямо скажем, совсем немного... Оптимизировать запросы это одно, а копать фрагмент кода, который непонятно к чему цеплять и вообще как он работает - это совсем другое.
Кстати, а как Вы себе представляете оптимизацию запросов без исходных данных (структуры таблиц и собственно записей)?
Быть может, речь идёт всё-таки о КМС? СМС это другое немножко, что-то из области сотовой связи =)
Можно спросить у Гугла, но лично я бы без MySQL не советовал...
Из серпа гугли: оказывается, вона что есть: http://cmswithoutmysql.ru/
Алгоритм довольно простой: достаточно обойти все ключи массива параметров, которые начинаются с HTTP_. Значения этих ключей — те самые значения заголовков. С их получением проблем быть не должно. Что касается самих заголовков, то всё ненамного сложнее: достаточно отрезать от них частицу "HTTP_", заменить в них прочерк на дефис, и получится массив с заголовками (регистр не имеет значения).
Если же хочется, чтобы всё было красиво, то можно через strtolower() привести ключ к нижнему регистру, разбить полученную строку по прочерку функцией explode() на массив, элементы которого обработать ucfirst() посредством array_map()... И всё :).
Это будет выглядеть примерно так:
$headers = array(); foreach ($_SERVER as $key => $value) { if ('HTTP_' === substr($key, 0, 5)) { $field = substr($key, 5); $field = strtolower($field); $field = implode('-', array_map('ucfirst', explode('_', $field))); $headers[$field] = $value; } } print_r($headers);
Единственное но: если PHP установлен как модуль Apache, то итерировать придётся $_SERVER. Если же PHP работает как CGI, то всю информацию нужно получать из окружения ($_ENV).