Выполнение пхп друпалом

Главные вкладки

Аватар пользователя julia_leo julia_leo 16 июня 2008 в 9:03

Необходимо, чтобы при нажатии на ссылку выполнялся запрос вставки в базу. Написав код а пхп, вставила в page.

$usr_id = $_GET['u'];
if(trim($usr_id)!='')
{
$result=db_query("SELECT * FROM matrix WHERE (id_usr=%d)", $usr_id);
if(db_num_rows($result)==0)
{
  вставляем запись в базу
}

Но столкнулась с проблемой. На локальном друпале все работает нормально, но на сервере происходят чудеса. Код отрабатывает несколько раз, т.е. вставляется правильная запись, а потом вставляется несколько записей с пустым $usr_id. Кроме того, после удаления вставки в базу, друпал продолжает по-прежнему отрабатывать вставки, т.е. непонятно где-то в недрах застрял код, хотя кеширование отключено. Каким образом тогда можно реализовать такие операции, я склонняюсь к мысли, что лучше все-таки сделать обычный пхп-скрипт, не зависящий от друпала, но мне нужно еще делать проверку, что это авторизованный пользователь из своего профиля нажал ссылку.

Комментарии

Аватар пользователя julia_leo julia_leo 16 июня 2008 в 10:39

На мейл менеджера отправляется запрос об активации пользователя и параметр u должен браться из запроса active?u=строка.. Поэтому global $user; $usr_id = $user->id не пройдет. Меня интересует, почему при вызове active?u=строка скрипт выполняется несколько раз.

Аватар пользователя julia_leo julia_leo 16 июня 2008 в 10:54

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

Аватар пользователя julia_leo julia_leo 16 июня 2008 в 10:56

Хотелось бы, чтобы при нажатии на ссылку человек попадал в друпал, а так пришлоось обычный пхп-скрипт писать

Аватар пользователя vikeng vikeng 16 июня 2008 в 11:10

Хотелось бы, чтобы при нажатии на ссылку человек попадал в друпал, а так пришлоось обычный пхп-скрипт писать

Не понял, а куда сейчас человек попадает если не в друпал? Smile

Аватар пользователя vikeng vikeng 16 июня 2008 в 11:04

Друпал многие вещи умудряется выполнять дважды. Последний раз столкнулся когда создавал свою страницу и заголовок для нее делал с помощью 'title callback'. Вот тут http://www.drupal.ru/node/15442 посоветовали использовать статические переменные - хорошо помогает.
То что кэширование отключено - это еще ни о чем не говорит. Друпал все равно многое кэширует. Лучше установи модуль devel - http://drupal.org/project/devel. Установишь его блок и на любой странице сайта сможешь очистить кэшь. Плюс куча других возможностей - например отображает все запросы, которые были осуществлены при формировании страницы. Очень удобно для отлавливания повторяющихся запросов.