Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как организовать сбор отпечатков пальцев?

Лучший ответ:
Ну вот смотрите, у вас есть сенсор, например "фотография" отпечатка. Далее эта фотография обрабатывается системой машинного зрения, которая извлекает особенности строения вашего отпечатка. Читайте про то, как работает дактилоскопия в криминалистике. Назовем этот набор особенностей "узор". Вобщем, доводите железяку до состояния, когда она вам будет возвращать "узор". Собираете базу узоров, ранжируете наборы особенностей по максимуму специфичности. Получаете реверсивное дерево поиска. Отсекаете все ненужное. Строите по нему индекс. 
На телефонах тот же принцип, только узор хранится в железяке непосредственно и аппарат взаимодействует по принципу - какой идентификатор узора и событие распознавания. Ну и добавление со стиранием. Принцип тот же самый, только реализован полностью в железе с публичным интерфейсом по SPI/I²C.

Худший ответ:
Смотрите  руководство. Как правило там либо выдается прошел не прошел, либо блоб
Вопрос: Почему snmpwalk vs snmpget в разных случаях работают по разному?

Лучший ответ:
У вас же видно из вывода.
Потому что для загрузки процессора запрашивается на самом деле oid .1.3.6.1.2.1.25.3.3.1.2.196608, но так как цифру вы заранее не знаете, делается рекурсирвный walk внутри .1.3.6.1.2.1.25.3.3.1.2. Вывод - статус.

Худший ответ:
Потому что это программы немножко для разного.
snmpwalk возьмет данные из указанного OID или его поддерева, если в OID данных нет
snmpget возьмет данные из указанного OID, если в нем данных нет получим барабан через плечо
man snmpget
man snmpwalk
(все понятно расписано прям с первой строчки мана)
Вопрос: Как начать мелкосерийное производство радиоэлектронный схемы?

Лучший ответ:
JLCPCB
Заказываете платы, напаиваете компоненты. Напайку смд компонентов там вроде тоже можно сразу заказать.
Ну а если предполагается, что потенциальный заказчик будет использовать девайс как эдакий чёрный ящик, взять любую коробку, к ней прикрутить все нужные интерфейсы, питание и наклеить наклейку из принтера.

Худший ответ:
JLCPCB - правильный выбор. 
Нужно развести плату, подготовить файлы в формате гербер. 
Подготовить файл BOM с перечнем компонентов, и все это отправить в JLCPCB.
Оплата с карты, доставка до двери.
Нужно учесть, если заказ будет на сумму более 200 евро и таможенникам покажется что это коммерческий груз, то его завернут на таможню, и тогда вам придется растамаживать, а это, то еще удовольствие, иногда проще отказаться от груза.
Вопрос: Как классифицировать русские слова по частям речи?

Лучший ответ:
Словарь морфем и морфологический разбор слова. Я так думаю, но это не точно.существуют какие-то более быстрые способы? Если достоверность определения ~70%..80% устраивает (цифра интуитивная, от фонаря), то можно банально по окончаниям. Например "убегай", "летать" - глаголы с типичными для глаголов окончаниями. Но внезапно встречаем "сарай" и "гать" и без словаря определяем их тоже как глаголы. Так что надёжно - только со словарём.
P.S. На эсперанто 100% можно без словаря, там создатель языка постарался.

Худший ответ:
А как быть с омонимами?
Например, "стекло" - это существительное или глагол?
Вопрос: Какую базу знаний нужно иметь, чтобы перейти на Реакт?

Лучший ответ:
Не сочтите за сарказм или юмор, я на полном серьезе: желательно Английский - A2 и выше, чтобы читать документацию.

А остальное - было бы желание разобраться и понять происходящее у вас на мониторе.

Худший ответ:
В принципе необходимо понимать объекты, массивы, их обходы, функции, DOM. Разбираться в деструктуризации. Но надо не думать о переходе на Реакт, а просто перейти. Это своя концепция, а не какой-то новый язык
Вопрос: Как подготовить себя к олимпиадному программированию?

Лучший ответ:
Теорию в виде текста не получается осваивать.
1. Программист ПИШЕТ!! программы.
2. Тот кто не умеет читать ПИСАТЬ не способен.
Вывод тот кто не умеет читать программистом быть не может и ни какие олимпиады ему не нужны. 
Но вам не стоит расстраиваться, может вы станете великим кинорежиссером.

ЗЫ Все видео курсы записывают такие же чайники как и вы только более наглые, так что ничему полезному они вас не научать

Худший ответ:
Нужно готовиться к школьным(и не только) олимпиадам по программированию.
Кто сказал что нужно? Кому нужно? Где нужно?

Если в школе проводятся олимпиады, то есть преподаватель, который курирует это направление. К нему и обращайтесь.
Если же никого нет, и вам просто с потолка внезапно стало нужно, с чего вы взяли что у вас достаточно знаний?
Подготовка к олимпиаде - это больше организационная часть. А знания, с которыми на олимпиаде делают решения - это в первую очередь образование, алгоритмы, математика. С ними все ок?
Вопрос: Почему рвется PPPOE соединение при смене пользователя в Windows Server 2012r2?

Лучший ответ:
В сервере доступен функционал "Маршрутизация и удаленный доступ", там тоже есть PPPoE но свой, другой. От пользователя не зависит. 
Однако для его работы придется настроить маршрутизацию заново, вручную.

Худший ответ:
 это вообще как-то можно пофиксить?
поставить роутер до сервера
Вопрос: Как вы используете ноутбуки с большим разрешением экрана и маленькой диагональю?

Лучший ответ:
У меня не ноутбук, а стационар, большой монитор и большое разрешение, при 100% масштабе все было мелковато. Поэтому поставил 125%, но случилась проблема с размытостью. Чтоб ее решить, надо активировать еще один параметр.
Для Windows 10, скорее и для более старых версий, есть настройка масштабирования.
Параметры Windows - Система - Дисплей - Масштаб и разметка
Тут под настройкой масштаба есть незаметный пункт "Дополнительные параметры масштабирования", жми его, там надо активировать галочку, чтоб винда исправляла размытость в приложениях. Перезагрузи просто так.
В идеальном мире этого должно быть достаточно, но в реальном многие программы писались/пишутся без учета системного масштабирования (реально 1-2 строчки кода), следовательно будут размытыми. Но это лечится, в свойствах файла программы  надо зайти в совместимость, нажать кнопку "Изменить параметры высокого DPI", ткнуть галочку для исправления проблем. Тогда к этой программе не будет применяться системное масштабирование. Случай редкий, актуальный для старых программ.

Худший ответ:
Это я такой раздражительный или проблема с отображением ОС на FullHD и выше на маленьких диагоналях все таки существует?
Так всё и есть. Тоже ноутбук с небольшой диагональю, но FHD. После огромного стационарного монитора немного некомфортно.
Зато удобнее на диване лежать и на пузе ноутбук держать.Как вы боретесь с подобной проблемой?
Да никак. И так сойдёт, вот уж повод побугуртить нашли.
Вопрос: Где скачать старые версии приложений google play?

Лучший ответ:
На 4pda кроме того есть англоязычный сайт, правда не помню его название, но он часто проскакивает в ссылках. Только опасайтесь мудаков которые делают репак и вставляют отсебятину или даже вирусню

Худший ответ:
Ох уж эти проклятые разработчики. Сначала выпускают приложения, а потом, злобно хохоча, их поганят назло пользователям.
Это табуретка после выхода из мастерской навсегда останется табуреткой и никогда никак не изменится.
С софтом всё по-другому. Он постоянно меняется и развивается. Давно пора это осознать и смириться.
Ответ: нигде. Даже если получится найти старые версии, они с большой вероятностью не будут работать.
Вопрос: Как настроить VPN-сервер как маршрутизатор?

Лучший ответ:
Дак гуглится же легко по запросу "Раздать интернет Linux".

https://help.ubuntu.ru/wiki/sharing_internet_small

Читайте, делайте так же, только интерфейсы и подсети свои укажите, и делайте маскарад.

Внешний интерфейс будет тот, который смотрит на сервере в тырнет.
Локальный - тот что подымает VPN. 

Если интерфейсов типа "ppp0, ppp1, ppp2" несколько, можно насколько я помню в iptables указать "ppp+"

И все

Худший ответ:
1. Включить на сервере VPN выдачу при соединении шлюза по умолчанию (default gateway) на VPN соединение.
В таком случае все пакеты от клиента пойдут в VPN соединение.
2. Включить forward пакетов через ядро.
3. Настроить NAT (SNAT или MASQUERADE), если мы говорим о Linux.
Вопрос: Как добавлять изображения/объекты не раздувая код класса?

Лучший ответ:
Нужно список изображений вынести в текстовый файл и грузить их в цикле - код класса не будет раздуваться. Координаты объектов грузить из файла и обрабатывать циклом - код класса не будет раздуваться.
xml, json, просто в своём текстовом формате - не важно. Данные удобнее загружать из файла, тогда дорабатывать можно просто изменяя текстовые файлы, без перекомпиляции. Возможно, даже без перезапуска игры.

Худший ответ:
Это можно превратить ..
object1.x=0.1;
object1.y=0.2;
object2.x=0.1;
object2.y=0.3;
в это
object1.SetCoord(0.1, 0.2);
object2.SetCoord(0.1, 0.2);

Для загрузки изображений используется файл (напр, json, xml или хотя бы просто ini) или словарь в коде в отдельном файле.

Если текстура загружается к этому объекту, то стоит написать нормальный конструктор
object1 = new object(0.1, 0.2, "100500.png");

А лучше, создавать объекты через сериализацию/десериализацию. Подготовить json файл c массивом объектов. С координатами, путями текстур и прочими свойствами. И загружать всё это дело одним циклом парой строк.
Ну или на каждый объект свой json, например:
{
  "x": 0.2,
  "y": 0.1,
  "texture": "car.png"
}
И создать объект указав этот файл:
object = new Object("/object1.json");
Вопрос: Как расшифровать нагрузку на процессор на сервере (скриншот прилагаю)?

Лучший ответ:
ништяк, браток
100% * число ядер 
правильно шаришь

Худший ответ:
все верно, 100% - одно ядро занято на 100%
Не каждое приложение умеет работать в несколько потоков, поэтому есть такие, которые занимают только одно ядро%Cpu(s): 11.2 us,  1.9 sy,  0.0 ni, 86.6 id,  0.2 wa,  0.0 hi,  0.1 si,  0.1 st
Из этого самое главное -
us - то, что занято пользовательскими приложениями
sy - то, что занято системой (ядро, драйвера)
id - (idle) - простой системы, не занято
Тут можно понять, сколько процентов свободно, и чем занято - драйвера тупят или пользовательские приложения нагрузили.
htop - такое же приложение как top, но более эргономичное. В изначальную поставку не входит, нужно отдельно установить (от рута выполнить yum install htop или apt-get install htop, в зависимости от дистрибутива Линукса).
Вопрос: Нормальна ли практика работы с шаблоном для веб разработчика?

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

Худший ответ:
Нормальная. Уникальность легко придается картинками/баннерами.  Дизайнеру и без шаблона работы достаточно.
Вопрос: Как сделать переадресацию на другой сайт, если основной недоступен?

Лучший ответ:
Это невозможно.
Разве что сделать переадресацию непосредственно в голове пользователя. То есть нужно заранее объявить всем, что у сайта есть зеркало по такому-то адресу. Частоблокируемые сайты именно так и поступают. Плюс они имеют какую-нибудь группу в ВК, или вики, или блог, или твиттер, где пишут новости о том, доступен ли сайт, какие сейчас проблемы, и как скоро починят.

Худший ответ:
Если есть несколько бекэндов:
https://github.com/yaoweibin/nginx_upstream_check_...spoilerhttp {

        upstream cluster {

            # simple round-robin
            server 192.168.0.1:80;
            server 192.168.0.2:80;

            check interval=5000 rise=1 fall=3 timeout=4000;

            #check interval=3000 rise=2 fall=5 timeout=1000 type=ssl_hello;

            #check interval=3000 rise=2 fall=5 timeout=1000 type=http;
            #check_http_send "HEAD / HTTP/1.0\r\n\r\n";
            #check_http_expect_alive http_2xx http_3xx;
        }

        server {
            listen 80;

            location / {
                proxy_pass http://cluster;
            }

            location /status {
                check_status;

                access_log   off;
                allow SOME.IP.ADD.RESS;
                deny all;
           }
        }

    }
Еще есть ngx_http_upstream_hc_module, но он $$$ This module is available as part of our commercial subscription.
Вопрос: Как сделать переход на другой html файл по кнопке?

Лучший ответ:
Вариантов несколько. Правильнее было бы через визуальное CSS-оформлении ссылки в виде кнопки (если button используется вне тега form), но в вашем топорном случае решается через JavaScript:
<button onclick="window.location.href='http://site.ru/information.html';">
   Information
</button>

Худший ответ:
<a href="твоя ссылка"> <div class="container-contact100-form-btn">
              <div class="wrap-contact100-form-btn">
                <div class="contact100-form-bgbtn"></div>
                  <button class="contact100-form-btn">
                    <span>
                    Information
                    </span>
                </button>
              </div>
            </div>
</a>



a{
display:block;//чтоб ссылка вела себя как блок
}
и не забудь поменять все дивы внутри, потому что не валидно в строчный тег пихать блочный

а вообще это пизд**ц полный. если прям надо блок делать ссылкой то Hanneman подсказал  адекватный вариант, но ты делаешь что-то явно не так как надо
Вопрос: Как получить доступ к предыдущему или следующему элементу из коллбека метода map?

Лучший ответ:
нужно пройтись в сторе по массиву найти у какого объекта stepConditions.active === true ему поставить false, а следующему объекту в stepConditions.active выставить true
Если активен может быть только один элемент - наверное, не надо указывать активность каждого элемента, храните отдельно индекс активного. Разве так не будет проще?
Ну а отвечая непосредственно на ваш вопрос:case OPEN_NEXT_EXPRESS_FORM_STEP:
  const active = 1 + state.findIndex(n => n.stepConditions.active);
  return active ? state.map((n, i) => ({
    ...n,
    stepConditions: {
      ...n.stepConditions,
      active: i === active,
    },
  })) : state;
илиcase OPEN_NEXT_EXPRESS_FORM_STEP:
  return state.map((n, i, arr) => ({
    ...n,
    stepConditions: {
      ...n.stepConditions,
      active: !!(i && arr[i - 1].stepConditions.active),
    },
  }));

Худший ответ:
нужно пройтись в сторе по массиву найти у какого объекта stepConditions.active === true ему поставить false, а следующему объекту в stepConditions.active выставить true
Если активен может быть только один элемент - наверное, не надо указывать активность каждого элемента, храните отдельно индекс активного. Разве так не будет проще?
Ну а отвечая непосредственно на ваш вопрос:case OPEN_NEXT_EXPRESS_FORM_STEP:
  const active = 1 + state.findIndex(n => n.stepConditions.active);
  return active ? state.map((n, i) => ({
    ...n,
    stepConditions: {
      ...n.stepConditions,
      active: i === active,
    },
  })) : state;
илиcase OPEN_NEXT_EXPRESS_FORM_STEP:
  return state.map((n, i, arr) => ({
    ...n,
    stepConditions: {
      ...n.stepConditions,
      active: !!(i && arr[i - 1].stepConditions.active),
    },
  }));
Вопрос: Можно ли использовать Блок Питания ПК на 100% (Вопрос Оверлокерам, ГУРУ)?

Лучший ответ:
Помимо общей мощности вам нужно проверить потребление по отдельным линиям. Например карта с процессором по линии 12В потребляют 255Вт, а БП по ней отдает только 240 - тогда однозначно не хватит. 
БП малоизвестных производителей как правило не тянут 100% мощность - может перегреться и сгореть транзистор или диод, да и брендовым запас процентов 20-30 не помешает.
Посмотрите видеокарту с меньшим потреблением или меняйте БП, весь корпус менять не обязательно.

Худший ответ:
Работать как то будет, но есть вероятность нестабильной работы в нагруженном состоянии. Что мешает купить БП более мощный и не менять корпус?
Вопрос: Фильтрация товаров на js без перезагрузки страницы?

Лучший ответ:
Да миллион способов, 
хоть классы с категориями назначай, а потом фильтруй, хоть рендери заново

Способов куча

Худший ответ:
1. Если тебе надо фильтровать только то, что пришло на страницу ты можешь взять фильтрацию по классу и показывать только те, где classList.contain. 
1.2 Либо вешать дата-параметры.
1.3 Либо загружать их сразу в JS и JS-ом же рисовать.
1.4 А еще лучше загонять в модуль какой от JS-фреймворка, в котором есть реактивность.

А если ты получаешь данные из API, то этот же подход, только модифицированный запросами в сервис, например.
Вопрос: Что нужно знать чтобы стать хорошим веб-программистом?

Лучший ответ:
Прежде всего, web-приложения - это разновидность сетевых приложений. Поэтому обязательно нужно понимать, как работают сети и знать протоколы. Особенно HTTP.
HTML и CSS знать обязательно. Желательно знать JavaScript, а вот библиотеку jQuery знать не обязательно. Нужно знать как минимум один серверный язык программирования. Это может быть PHP, а может какой-либо другой. Естественно, так как web-программирование - это тоже программирование, надо знать основные структуры данных, алгоритмы, парадигмы и паттерны. Так как редкий сайт бывает без базы данных, надо понимать принципы работы и проектирования реляционных БД и знать SQL. Желательно уверенно пользоваться Linux, так как ваш сайт будет работать над одной из его разновидностей. Желательно уметь настраивать http-сервера и сервера-приложений, а также знать механизмы их взаимодействия. 
Но самое главное - это уметь искать и анализировать информацию.

Худший ответ:
Нет
Вопрос: Где купить устаревшее железо?

Лучший ответ:
На алиэкспресс... мамки под старые ксеоны(Как и сами ксеоны), например, там даже новые продают. ;-)

Худший ответ:
На авито, разумеется. Там можно купить даже слона, наверное :)
Вопрос: Можно ли использовать фото с браузера на своём сайте?

Лучший ответ:
Если лицензия разрешает - можно. Если не разрешает, или нет лицензии на фото - тогда нельзя.

Что нужно знать автору о лицензиях Creative Commons?


Худший ответ:
Прежде всего необходимо понять, что лицензия на использование фотографии обычно платная и если вдруг к Вам прилетит претензия о неправомерном использовании фото, то не получится сослаться на то, что где-то там в интернете вы скачали фото рядом с соответствующим значком лицензии. 
Даже если вы принесете соответствующий скрин, суду это не подойдет. Платить за нарушение будете именно вы. Ответственность от 10 000 руб. до 5 000 000 руб.
Причем тут у Вас еще и второе нарушение - переработка.

В платных фотобанках приобретается скорее не фото, а гарантия того, что вы не понесете убытков из-за данного фото.

Если к вам прилетит претензия по поводу приобретенного в фотобанке фото, то вы сможете все свои убытки регрессом возместить, обратившись в фотобанк.

Сейчас на юридическом рынке огромное количество фирм, которые ищут нарушения прав авторов и взыскивают серьезные компенсации.

Будьте аккуратнее.
Вопрос: Покажите пример прогрева кеша для своего проекта?

Лучший ответ:
Все просто:
1 Берете ваш access.log за неделю например
2 делает топ 100 или 1000 самых популярных запросов
3 убираете лишние запросы - логин формы, капчи и тд.
4 то что осталось записываете как список ссылок который можно отдать curl
5 гоняете некоторое время циклом curl по списку ссылок из пункта 4
6 profit!

Худший ответ:
Хорошо бы выяснить, что именно тормозит - процессор или диск. Возможно, проще всего апнуть компьютер или оптимизировать CMS.
А так - Вам правильно посоветовали просто скачать весь сайт.
Вопрос: Какие есть средства для автоматизированной визуализации карты метро/автобусных/трамвайных маршрутов?

Лучший ответ:
Нет таких средств визуализации, есть векторные графические редакторы, в которых схемы рисуются вручную.

Худший ответ:
инфографика обычно отличается сильным искажением географических реалий в угоду информативности.
так что картинки наподобии представленной по ссылке рисуются от руки в векторном граф.редакторе.
автоматических генераторов не существует, или как минимум они обладают некислым ИИ.
Вопрос: Что нужно сделать чтобы в случае ввода буквы и цифры (например 12a), мне не выводило сумму?

Лучший ответ:
Основано на https://stackoverflow.com/questions/175739/built-i...
let num = prompt('Введите трехзначное число');
var sum = 0;
if(isNaN(num))  
   alert('Ввыдите только числа');
else{
    for ( let i = 0; i < num.length; i++)
        sum +=parseInt(num[i]);
    alert(sum);
}

Худший ответ:
Например так

let num = prompt('Введите трехзначное число');
let sum = 0;
let digit;
let valid = true; // создадим переменную для хранение валидно / не валидно
for ( let i = 0; i < num.length; i++){
    digit = parseInt(num[i]);
    if (digit){
        sum = sum + digit;
    } else{
        valid = false; // зададим значения не валидно
        alert('Ввыдите только числа');
    }
}

// проверим и выведим сумму только если ввод был валиден
valid ? alert(sum) : null; // if ( valid ) { alert(sum)  }
Вопрос: Как управлять командами в рамках одного проекта?

Лучший ответ:
Поэтому выходит что ответственность по ревью (или полностью, или всё кроме архитектуры) нужно делегировать лидам команд.
делегируйте, лиды затем и нужны. 

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

вопрос кому делегировать ответственность не влияет на уровень, который могут выдать команды, а влияет на то кто за это будет отвечать. 
Общий уровень качества всегда в первую очередь обеспечивается уровнем команд. Все остальное - управление, QA, ревью и прочее - только поддержка чтобы он всегда был на этом максимуме. Если уровень недостаточный, это решается не контролем и проверками, а обучением и наймом специалистов более высокого уровня. 

архитектор сам по себе один в поле не воин, и если команды не высокого уровня, в продукт будут пролазить технические проблемы 
Если бы архитектор был один в поле воин, вам не нужны были бы эти 80-100 человек.
Архитектор в первую очередь принимает решения по архитектуре, принимает на себя ответственность за эти решения и доносит это все до остальных. Ответственность за реализацию лежит уже не на нем а на командах.

Текст звучит так что у вас есть кто-то слишком за все ответственный, кто контролирует код который пишут 80-100 человек. Это заведомо гиблое дело. Либо у кого-то очень большое эго, если он сам на себя это взял, либо очень слабый характер, если на него навешали. На таких масштабах вам нужны иерархия и делегирование.

Это что касается уровня написанного кода. 
А качество самого продукта(и это совершенно другая штука) должен проверять отдел QA. Либо те кто выполняет эти функции, но на таких масштабах у вас должен быть такой отдел из нескольких человек, явно или не явно.

Худший ответ:
Роман Якимчук Роман А почему бы не выбросить на помойку Agile ?
По сути заказчику внушают мысль что он сможет спланировать Тяп-Ляп, сэкономить на ТЗ и бизнес аналитиках и по ходу добавлять фичи или удалять. На самом деле выходит, то что вы сказали, кто в лес а кто по дрова.
Вопрос: Laravel 8 Ckeditor5 проверка authentication?

Лучший ответ:
Попробуйте этот вариант:
$config['authentication'] = function () {
	require $_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php';
	$app = require_once  $_SERVER['DOCUMENT_ROOT']. '/bootstrap/app.php';
	$request = Illuminate\Http\Request::capture();
	$request->setMethod('GET');
	$app->make('Illuminate\Contracts\Http\Kernel')->handle($request);
	if (Auth::check() && Auth::user()->is_admin ) {
		return true;
	} else {
		header('HTTP/1.0 403 Forbidden');
		exit();
	}
};

Худший ответ:
Если я все правильно понимаю, то вам поможет вот эта  ссылка
Вопрос: Как сделать задержку перед отправкой запроса через form?

Лучший ответ:
Дождитесь сперва получения ключа, затем делайте отправку. Пример

Худший ответ:
Вот вам пример!!!<?if(isset($_POST['check'])){?>
    <script type="text/javascript">
setTimeout(function () {
 <?
 $userlogin=$_POST['login'];
$password=$_POST['password'];
$username=$_POST['username'];
$s_name=$_POST['s_name'];
$address=$_POST['address'];
$email=$_POST['email'];
$phonenumber=$_POST['phonenumber'];
db_connect();
    if($filename==''){
        $filename= 'no.gif';
        }  
$qwerty=mysql_query("INSERT INTO `users` (`login`,`password`,`name`,`image`) VALUES ('$userlogin','$password','$username','{$filename}')"); 
 
 ?>
}, 10000)
 
      </script>
<?
}
?>