Перейти к содержанию

Hans R. Steiner

Members
  • Постов

    1822
  • Зарегистрирован

  • Посещение

Весь контент Hans R. Steiner

  1. Бирд, пожалуйста, добавь в личные настройки, возможность отключить смайлики в создаваемых сообщениях... Я ничего не имею против смайликов, но то, что они влияют на межстрочные расстояния (они выше текста в строке), лично меня, просто добивает... а отключать их каждый раз, когда пишу сообщение, ну тааак ломает
  2. Блин... чего-то у меня в последнее время вопросов много... совсем разучился думать самостоятельно... на пенсию пора... или как минимум, на отдых... Вопрос следующего плана: есть у меня ряд запросов типа INSERT... к примеру, допустим, наверное, три my $queru = "INSERT ...; INSERT ...; INSERT ...;"; my $sth = $dbh -> prepare ( "$sql" ); $sth -> execute; Не выполняется my $queru = "INSERT ..."; my $sth = $dbh -> prepare ( "$sql" ); $sth -> execute; my $queru = "INSERT ..."; my $sth = $dbh -> prepare ( "$sql" ); $sth -> execute; my $queru = "INSERT ..."; my $sth = $dbh -> prepare ( "$sql" ); $sth -> execute; Выполняется :/ Не понимаю
  3. В принципе, решил проблему путем более внимательного рассмотра LAST_INSERT_ID. После более подробного разбора данный функции, стало ясно, что опасности в ее таковом использовании нет так, как несмотря на отсутствие ее привязки к конкретной таблице, ее значение не передается между "сессиями" т.е., подключившись несколько раз к баде, даже под одним пользователем, эта функция, является, своего рода, "переменной сеанса" т.е, не зависимой от других сессий. И так, запрос вида: CREATE TRIGGER myTrigger AFTER INSERT ON `pandora_user` FOR EACH ROW SET @myUid := NEW.id; INSERT INTO `pandora_user` ( `name`, `address`, `telephone`, `email`, `pasport_get`, `pasport_num` ) VALUES ( '123', '234', '345', '', '', '' ); INSERT INTO `pandora_account` ( `uid`, `login`, `group`, `password` ) VALUES ( @myUid, '123', 'Пользователь', '123' ); DROP TRIGGER myTrigger; был успешно заменен на: INSERT INTO `pandora_user` ( `name`, `address`, `telephone`, `email`, `pasport_get`, `pasport_num` ) VALUES ( '123', '234', '345', '', '', '' ); INSERT INTO `pandora_account` ( `uid`, `login`, `group`, `password` ) VALUES ( LAST_INSERT_ID(), '123', 'Пользователь', '123' );
  4. Блииин... вот засада... минут десять не мог понять, где же гадость залегла... пытаюсь создать юзверя: CREATE TRIGGER myTrigger AFTER INSERT ON `pandora_user` FOR EACH ROW SET @myUid := NEW.id; INSERT INTO `pandora_user` ( `name`, `address`, `telephone`, `email`, `pasport_get`, `pasport_num` ) VALUES ( '123', '234', '345', '', '', '' ); INSERT INTO `pandora_account` ( `uid`, `login`, `group`, `password` ) VALUES ( @myUid, '123', 'Пользователь', '123' ); DROP TRIGGER myTrigger Не проходит... точнее, из скрипта не проходит... в базе, от имени root, проходит... дооолго думал... селекты из скрипта делаются, а запись - нет... Захожу в базу как скриптоюзверь и повторяю запрос на запись - фиг вам - национальная индейская изба... а запарка на моменте создания триггера - "ERROR 1227 (42000): Access denied; you need the SUPER privilege for this operation" Цитата: 18.1. CREATE TRIGGER Syntax CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt This statement creates a new trigger. A trigger is a named database object that is associated with a table, and that activates when a particular event occurs for the table. CREATE TRIGGER was added in MySQL 5.0.2. Currently, its use requires the SUPER privilege.
  5. Ну... кажется, практически придумал решение: CREATE TRIGGER myTrigger AFTER INSERT ON `user` FOR EACH ROW \ SET @lastId := NEW.id; INSERT INTO `user` ...; INSERT INTO `account` ( `uid`, ...) VALUES ( @lastId, ... ); DROP TRIGGER `user`; Единственное, что мне тут не нравится, у меня не получилось создать больше одного триггера на таблицу и создавать/удалять триггер, приходится при каждом таком запросе. Может есть более изящный вариант?
  6. Да, это интересное решение. Есть только одно "но": поледовательность должно быть примерно следующая: СРЕАТЕ ТАБЛЕ `user` ( ... ); CREATE TABLE `account` ( ... ); CREATE TRIGGER `account` AFTER INSERT ON `user` FOR EACH ROW \ INSERT INTO `account` ( `uid` ... ) VALUES ( NEW.id, ... ); INSERT INTO `user` ( ... ) VALUES ( ... ); ... и при этом, автоматически выполняется вставка зависи в `account`, а чего вставляется? ведь вставляться должна информация которая так же получена из скрипта... Решение: перед инсертом в `user` делать что-то вроде: SET @myLogin := '$login'; ... SET @myPassword := '$pasword'; и тогда можно делать INSERT в `user`... но еще одно "но", все же, остается... у меня мания на "гибкость" самописных приложений... при таком подходе, становится невозможным записать в базу инфу о пользователе, не создав для него аккаунт. Интересен был бы вариант запроса, который или в который инкапсулировался бы INSERT в `user` и после выполнения, возвращал бы значение инкрементного поля. Пробывал наворотить SELECT'ов в одном запросе, но ничего хорошего из этого не получается... не клеются они у меня так, как надо. Напрашивеется вариант с кучей тупобональных селектов после записи но это крайне не красивое, не интересное и думаю, в перспективе, многожрущее решение, которое, так же еще и не верно так, как в базе (это конечно крайне мало вероятно, но всеже), существует вероятность одновременного существования разных людей, но с одинаковыми данными (а учитывая то, что паспортные данные, если они раньше не фиксировались, будут собираться очень долго, найти двух-трех людей с одинаковыми именами, работающих в одном здании и у которых один и тот же контактный рабочий телефон - не так уж и сложно) (ЗЫ: у нас в офисе, три Николая и два с половиной Андрея... благо хоть все остальные данные разные).
  7. Интересная тема Надо будет почитать Сейчас разбираюсь с модульностью в своей реализации и возникла вот такая проблема: есть некая таблица `user` и некая таблица `account` процесс заведения пользователя состоит из звух частей: 1. занесение записи в таблицу `user` 2. занесение записи в таблицу `account` INSERT INTO `user` ( `name`, `address`, `telephone` ) VALEUS ( '$username', '$address', '$telephone' ); INSERT INTO `user` ( `uid`, `login`, `password` ) VALUES ( '$uid', '#login', $password ); При этом, в таблице `user` есть поле `id` INT AUTO_INCREMENT и соответственно, во второи INSERT в базу, поле `uid`, должно соответствовать инкрементному полю `id` для первого INSERT. В данной ситуации, можно воспользоваться LAST_INCREMENT_ID, но тогда, мы получаем последнюю инкрементную величину, при этом, не зависимо от того, в какую таблицу была вставлена запись, а в этот момент, так же, ведется запись трафика в базу (при помощи того же ulogd). вот и сижу, не понимаю... как быть... CREATE TABLE `pandora_user` ( `id` INT AUTO_INCREMENT COMMENT 'Уникальный идентификатор пользователя', `name` TEXT NOT NULL DEFAULT '' COMMENT 'Полное имя пользователя', `address` TEXT NOT NULL DEFAULT '' COMMENT 'Адрес проживания', `telephone` TEXT NOT NULL DEFAULT '' COMMENT 'Контактный телефон', `email` TEXT NOT NULL DEFAULT '' COMMENT 'Адрес эллектронной почты', `pasport_get` TEXT NOT NULL DEFAULT '' COMMENT 'Кем выдан пасспорт', `pasport_num` TEXT NOT NULL DEFAULT '' COMMENT 'Серия и номер паспорта', PRIMARY KEY (`id`) ) ENGINE = MYISAM; CREATE TABLE `pandora_account` ( `id` INT AUTO_INCREMENT COMMENT 'Уникальный идентификатор аккаунта', `uid` INT NOT NULL DEFAULT '0' COMMENT 'Ссылка на пользователя', `login` TEXT NOT NULL DEFAULT '' COMMENT 'Логин', `group` TEXT NOT NULL DEFAULT '' COMMENT 'Группа', `password` TEXT NOT NULL DEFAULT '' COMMENT 'Пароль', PRIMARY KEY (`id`) ) ENGINE = MYISAM; Делать это в однойтаблице тоже крайне не хочется так, как хочется реализовать вариант, когда у одного пользоваетеля, может быть несколько различных логинов.
  8. Н так давно, наткнулся на замечательную, с моей точки зрения, группу "Lumks" (это еще раз убедило меня в том, что мне все-таки нравится норвежский язык, а так, как самостоятельное изучение остановилось на "God dag" и "God Kveld", иду на курсы в МГУ ). пара песенок: 1 - dunker 2 - nokken 3 - perpalsa Lumsk :: сайт Lumsk :: клип Lumsk :: картинка Lumsk :: картинка Lumsk :: то, что у меня есть
  9. Сертификация не бесплатна, но если получится хорошая вещь то, даже сделав эту вещь бесплатной, можно заработать на ней денег и как минимум, окупить сертификацию и пиво Приводи Интересно посмотреть Только я вот хочу сделать что-нибудь без привязок т.е., чтобы привязка была не обязательной... т.е., представлять подключеник к vpn, к примеру, как один из параметров услуги "передача трафика", как это сделано в той же UTM.
  10. Hans R. Steiner

    Billing...

    Есть идея - написание бесплатной биллинговой системы, которая могла бы составить конкуренцию коммерческим собратьям, сертификация этой системы. Чего в этом интересного? 1. создание бесплатной КАЧЕСТВЕННОЙ альтернативы дешевым и не -- качественным системам. 2. возможность, в последствии, на этом заработать... если конечно -- что-то хорошее из этого получится. 3. можно будет еще что-нибудь написать, если вместе работать -- понравится. Почему сам не напишу? 1. собственной фантазии не хватает 2. проблемы с организацией работ (пишу пару дней, после, думаю, -- что вообще изначально не правильно все придумал, киляю все и -- пишу опять)
  11. Жесть... тогда, пробуйте всяке кнопиксы и т.д. Можно попробывать Mandrake или SuSE, но при таком расскладе, я и в них не уверен... До первого удачного эксперемента с "сильно фаршироваными" пингвинами, к моему сожалению, про Slackware можно забыть.
  12. вопрос: где брали дистрибутив, как записывали и что с ним делали? http://slackware.perespim.ru/pub/slackware-11.0-iso/slackwar e-11.0-install-dvd.iso
  13. сейчас рою гугл, на предмент использование переменных в MySQL, но может быть, кто-то с этим уже сталкивался. Слышал я, что в MySQL, можно определять собственные переменные, акак это сделать, пока не могу найти (пока только работа с системными переменными). ... а задача у меня следующая: есть таблица, к примеру, HTML, в виде (id,name,content) есть таблица, к примеру, LANG, в виде (lang,word,content) HTML, содержит набор html-страниц, которые, в свою очередь, содержат какой-либо текст, с присутствующими в нем "маркерами" и хочется мне, чтобы при выборке контента из базы, эти маркеры заменялись на контент из соответствующей таблици. Зачем? да понадобилось написать что-то вроде движка веберского. Соответственно, есть необходимость динамически подставлять текст и результаты работы каких-либо модулей. с текстом все просто: создается файл с именами полей хеша и соответствующими значениями, в HTNL, просто вместо какого-то текста, ставются переменные `$text{что-то}`, а дальше: my $toeval; open ( LANGUAGE, "./language.$sysconfig{language}" ); while ( my $string = <LANGUAGE> ) { $toeval .= $string }; close ( LANGUAGE ); my %text = eval ( "$toeval" ); open ( PAGE, "index.html" ); while ( my $string = <PAGE> ) { print eval ( "\"$string\"" ) }; close ( PAGE ); А проблема возникла с подстановкой не текста, а уже результатов выполнения чего-либо. Как вариант решения - можно использовать такие же маркеры, типа $page{что-то}, а в самом скрипте, предворительно, связывать их с какими-нибудь модулями, при помощи "tie" (к примеру, `tie $page{index}, Index [, параметры]`) но тут возникает такая "неудобность" как то, что модули типа "Index", должны быль зарегистрированы в скрипте при помощи `use`. Это говорит о том, что при каждом добавлении нового модуля, необходимо, пусть даже минимально, но править главный скрипт и более того, следить за зависимостями во всех добавляемых модулях на случай, есили тот же "Index", будет использовать подобную конструкцию. ... вот я и подумал, а может мне мускуль поможет?
  14. ИМХО: никаких изменений на этом рынке, это не повлечет... и NOVEL тут уже есть, и IBM, и многие другие... и для линуха, это особой погоды не сделает, а вот по MS, думаю, может не большой удар, но все-таки будет...
  15. Да! Существует! Самая известная из них - http://google.ru
  16. А чего такого страшного Вы боитесь потерять в /etc? Что за сервак и какие файлы, предположительно, менялись?
  17. Это время... это результат работы ip-камеры Ну... что это unixtime, я думал, но что-то не получается у меня из него нормальное время получить...
  18. 000BF23D090.jpg 000BF3445C0.jpg 000BF44BAF0.jpg 000BF553020.jpg 000BF65A550.jpg 000BF761A80.jpg вот в таком интереснов формате, указано время создания файла... но что-то я не понимаю, как его в обычный вид перевести :/
  19. Пропалитесь! Говорю это как представитель провайдера А остальное, Вам подскажет гугл
  20. Более того, при варианте учета трафика средствами iptables и т.д., нет никакой потери трафика, а при учете с помощью netflow, все зависит от загрузки сети, а данные отправляются по udp... т.е., в случае не прохождения пакета, теряются. Вариант поднятия того же ulogd на каждом из узлов и слияния его в одну базу, все- таки вернее. Но вот для тех же маршрутизаторов cisco или другого железа, что держжит netflow, netflow действительно хороший вариант. ЗЫ: мне просто не нравится сама возможность потери информации, не учитывая обьемы этих потерь. ЗЫ: извентиляюсь за очепятки, замэрз
  21. Так и в случае с pptp, весь трафик (кроме локального) пойдет через pptp-сервер
  22. В принципе, я не думаю, что есть смысл переходить на netflow так, как в зависимости от организации сети и обьемов трафика, при использовании netflow, возможны потери + дополнительная нагрузка на сеть (пусть даже не значительная, но все-таки). Если требуется жестко задать предел потребляемого трафика для пользователя, можно использовать iptables limit.
  23. Тут, как мне кажется, можно и резиновый дезигн сделать... фиксированый размер нужен только для всяких изысков в дизайне и сохранения внешнего вида и положения изображений, при люом размере экрана (т.е., когда полно графики, которая должна быть размещена определенным образом и не масштабируется) а тут, ничего такого нет.
  24. 1. не ограничивается пределами локальной/одноранговой сети (кажется, у pppoe с этим проблемы) 2. не знаю, нужен ли дополнительный софт для подключения винды к pppoe-серверу, но для подключения к pptp-серверу, точно не нужен 3. как мне кажется, организация файервола, так же проще (приконнектился, получил свой виртуальный ип, работай в инете, а всех остальных - в дроп) и т.д.
×
×
  • Создать...