Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как на Microtik RB951G ограничить доступ на все сайты, кроме определенного списка?

Лучший ответ:
Ну думаю вариантов масса, но я бы сделал так:
1.Отменил правило основной маршрутизации на микротике (т.е. правило 0.0.0.0/0 выключить)
2.Прописать только те маршруты которые вам нужны. 
Способ в принципе корявый но работает.

Худший ответ:
Как известно, список Firewall обрабатывается сверху вниз. Поэтому, для нужной сети добавляем сверху построчно accept для всех сайтов из белого списка (content="site_from_white_list.com") и, в конце этого перечня, для всего остального tcp 80,443 action=reject reject-with=tcp-reset
Правда через winbox неудобно просматривать такой список.
Вопрос: Как на JAVA открыть страницу, ввести логин и пароль, а после входа скачать файл?

Лучший ответ:
Думаю Вам подойдет Selenium WebDriver , его используют для автоматизированного тестирования.

Худший ответ:
Попробуйте так:Response res = Jsoup
    .connect("/url/to/login")
    .data("input[login]", "admin")
    .data("input[pass]", "QWERTY1234")
    .method(Method.POST)
    .execute();
Document doc = res.parse();

Document doc2 = Jsoup
    .connect("/url/to/file")
    .cookies(res.cookies())
    .get();
Или высокоуровневую библиотеку jWebUnit, она достаточно простая
Вопрос: Идеи по поводу развития блога Java

Лучший ответ:
У меня есть в черновиках несколько статей по Java и JVM тематике, но все никак руки не дойдут их допилить и выложить, извините :(

Был бы признателен если кто прокомментирует — чего бы больше хотелось почитать. Тогда я как то приоретизирую и постараюсь найти время в ближайшее время.

1) Java — Atomitcs и неблокирующие алгоритмы в Java, concurrency.
2) Java — как работает внутри Reflection.
3) Groovy — как работают внутри замыкания, мемоизация замыканий, рекурсивные замыкания и лямбды.
4) Метапрограммирование в Groovy — AST-трансформации и Meta-Object Protocol.

Худший ответ:
В целом я поддериживаю идею — заранее публиковать своеобразный «тизер», что ли, и спрашивать -кому было бы интересно прочитать.

Потому что на самом деле хорошая глубокая техническая статья — это 1-3 дня на исследования, эксперименты и гуглинг, и день на собственно на написание статьи.
Вопрос: Системы автодозвона через GSM?

Лучший ответ:
имхо Вам поможет астериск+GSM шлюз

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

Лучший ответ:
J2ME если держит, то вот почтовый клиент и ещё один.
Если просто текст через SMS: то сервис https://smspilot.ru
А вообще - что мешает купить ведроид?

Худший ответ:
Вам скорее надо какой то смс сервис, берете письмо нужное выкусываете и отправляете через СМС сервис.. наверное так... ну скрипт конечно придется написать....
Вопрос: Где найти нормально дизайнера для стартапа?

Лучший ответ:
Привлечение миллиона (хаха) в плане, а работать нужно уже сейчас. Ну и в планах также загнуться через год-другой, как и 99% всех стартапов. На такое согласится только кто? Правильно, тот кого не берут на нормальных условиях. А почему? Потому что он не "нормальный". Успехов, чо.

Худший ответ:
инвестиции не значит "на руки"
Вопрос: Почему тормозит VIM после нескольких часов работы?

Лучший ответ:
Для высвобождения памяти закрывай буферы командой bwipeout, или bunload, если нужно оставить название буфера в списке.  Скрытые буферы можно массово чистить самописной командой:UPD: Оказалось, что для корректной работы некоторых плагинов нужно оставлять хотя бы один последний скрытый буфер, поэтому немного обновил код, добавив возможность настроить их количество, а так же явный режим force (!) для команды. Возможно уже стоит всё это вынести в плагин, где можно будет нормально переписать код и оптимально разделить функционал, к примеру, добавить кэширование и возможность сохранять буферы.let g:bufcleaner_max_save = 2

command! -bar -bang -nargs=? CleanBuffers call s:cleanBuffers("<bang>")
function! s:cleanBuffers(...) abort
  let force = a:0 >= 1 && a:1 ==# '!'
  redir => bufs
    silent! buffers
  redir END

  let hidden = []
  for buf in map(split(bufs, '\n'), 'split(v:val)')
    let bufnr = buf[0] + 0
    let flags = matchstr(join(buf[1:]), '^.*\ze\s\+"')
    let mod = substitute(flags, '\s*', '', 'g')
    let hide = mod ==# 'h' || mod ==# 'h+'
        \ && (force || input(printf("\n%s not saved.\nDelete anyway? [Y]es, (N)o: ",
          \ bufname(bufnr))) =~? '^y\%[es]$')
    if hide
      call add(hidden, bufnr)
    endif
  endfor

  let saved = get(g:, 'bufcleaner_max_save', 3) 
  let target = len(hidden) > saved ? join(hidden[0:-saved-1], ' ') : ''
  if !empty(target)
    silent! execute 'bwipeout!' target
  endif
endfunction
Очищать при скрытие:augroup buffer-cleaner
  autocmd!
  autocmd BufHidden * CleanBuffers
augroup END

Худший ответ:
Может удалить ненужные буферы? Например как описано тут.
Вопрос: Есть ли готовое решение на bootstrap 3 (не обязательно bootstrap), чтобы реализовать похожее меню?

Лучший ответ:
Могу посоветовать такое симпатичное меню codyhouse.co/gem/mega-dropdown 
Зайдите в демо, посмотрите)

Худший ответ:
bootsnipp.com/snippets/featured/mega-menu-with-car...
bootsnipp.com/snippets/featured/mega-menu-with-tab...
Из них можно собрать, что-то одно.
Вопрос: Реально ли выполнить данное тз средствами веб языков?

Лучший ответ:
Какая разница какой язык? Чисто технически то, что можно сделать на C, Java, PHP можно так же сделать на Brainfuck.
Любой полноценный веб-язык способен такое сделать, вопрос сам по себе не имеет смысла в принципе, к тому же ответ на него вам по сути ничего не даст, а исходя из постановки вопроса - тем более...

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

Лучший ответ:
1. Правой кнопкой мыши на значек в трее - Настройки - вкладка "Аккаунт" - Отключить аккаунт. 
2. Правой кнопкой мыши на значек в трее - Войти - Логинимся - Жмем "Вперед" до 4-го шага - внизу кнопка "Расширенные настройки" - Видим "Путь к папке" и кнопку "Изменить".

Худший ответ:
Если вы используете веб-клиент drive.google.com/ тогда ставьте галочку напротив папки, сверху на тулбаре жмёте на More > Rename.
Вопрос: Как подставить изображение в input?

Лучший ответ:
Без html не получиться<div id="myDiv" contenteditable="true">
 <img scr="">
</div>
дальше js обёртки.

Худший ответ:
А вы посмотреть, как сделано в ВК, не смогли?( это же просто. А по сути вопроса - смотрите атрибут contenteditable для div-ов например.
Вопрос: Клонирование Windows 7 по сети?

Лучший ответ:
проверьте клонируете ли вы 100 мб раздел в начале диска который создаёт win7 (если он у вас есть)
для идеального решения — посмотрите на WDS (Windows Deployment Services)
и не понятно — как именно она (клонированная windows) не грузится.

Худший ответ:
>>Или с помощью чего ещё можно склонироватьWindows 7 по сети?

Можно попробовать clonezilla. Grub она умеет корректно перезаписывать. Как она поведёт себя с виндовым загрузчиком — не знаю.
Вопрос: Как вывести каждое 5ое значение от 1 до 100?

Лучший ответ:
for( var i=1; i<=100; i++) console.log( i%5 ? i : "azaza");
/* 1
   2
   3
   4
   azaza
   6
   ... */Старый вариант:for( var i=1; i<=100; i+=5) console.log("i:" + i, "azaza");
Либо 1, либо 100 войдёт в ряд, но не оба сразу.  Считать от "1" – закончится на 96. Начать с 5 (или с 0) – тогда последней будет сотня.

Худший ответ:
Циклом for перебираем числа (или массив). На каждой итерации проверяем текущее значение счетчика: если оно без остатка делится на 5 значит оно как раз "каждое пятое" =)
Вопрос: Решить задачу: Найти подмножество сумма которого в общей сложности равна 100 000 000

Лучший ответ:
4. Сделать самостоятельно

Худший ответ:
6. Сделать это используя все доступные ЯП
Вопрос: Как сохранить информации в Лист на ASP.NET MVC 4.0?

Лучший ответ:
Класс модели тоже должен быть публичным.
Советую, Как новичку, пройти два мануала по asp.net mvc 3/4 находящиеся на официальном сайте - на одном магазин cd дисков и видеокаталог
www.asp.net/mvc/tutorials/mvc-4/getting-started-wi...
www.asp.net/mvc/tutorials/mvc-music-store/mvc-musi...
Они Вам неплохо обьяснят, что и как, но, к сожалдению, только основы, дальше придёся лезть в дебри самому.
, дальше можете, например, обращаться ко мне, я, в принципе не так давно начинал со всем этим работать и сейчас пишу свой вариант домашней веб бухгалтерии на asp.net mvc5, но постараюсь помочь

Худший ответ:
да MVC 5 они включили Bootstrap
Вопрос: Написать приложение для iPhone с нуля?

Лучший ответ:
От AppleInsider был довольно неплохой(для новичков) цикл видеоуроков: Научи меня Xcode

Худший ответ:
Заходите на developer.apple.com (https://developer.apple.com/programs/ios/develop.html), нажимаете getting started и стартуете.
Вопрос: Как реализовать кастомный input?

Лучший ответ:
Я бы поправил код Антона.
jsfiddle.net/h156po3r/1

Худший ответ:
Transition забыли))) jsfiddle.net/h156po3r/2
Пора заводить отдельную ветку на гитхабе, уже третья версия пошла))
Вопрос: Как сделать шорткод для категории для Wordpress?

Лучший ответ:
[category slug="slug категории" ]<?php 
function my_shortcode( $atts ) {

	extract( shortcode_atts(
		array(
			'slug' => '',
		), $atts )
	);
$out ='';
$query = new WP_Query('category_name=' . $slug);
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        $out .= '<div><h3 >' . get_the_title() . '</h3>'  . get_the_content() .  '</div>';
    }
} else {
  $out .= 'Записей для вывода шорткодом нет';
}
wp_reset_query();

return $out;

}
add_shortcode( 'category ', 'my_shortcode' );

Худший ответ:
Спасибо
Вопрос: youtube сменил дизайн ?

Лучший ответ:
Больше похоже не на youtube, а на фишинговую подделку какую-то.

Худший ответ:
Не у меня вот такой:


Может вас забросило в будующее?
Вопрос: Как тут все утроено?

Лучший ответ:
Учите PHP.

Худший ответ:
<?php

/*

Данный скрипт демонстрирует работу API системы PerfectMoney Spend

*/

// Попытка открыть url для запроса к API PerfectMoney Spend 
$f=fopen('https://perfectmoney.is/acct/confirm.asp?AccountID=myaccount&PassPhrase=mypassword&Payer_Account=U987654&Payee_Account=U1234567&Amount=1&PAY_IN=1&PAYMENT_ID=1223', 'rb');//открывает файл по url

if($f===false){
   echo 'error openning url';//Если происходит ошибка открытия выдаёт сообщение "error openning url"
}

// Получение данных
$out=array(); $out="";//Обнуление выходного массива данных
while(!feof($f)) $out.=fgets($f);//Запись данных в массив

fclose($f);//Закрытие потока (нужно для корректного завершения работы функции чтения данных)

// поиск спрятанных полей в html коде
if(!preg_match_all("/<input name='(.*)' type='hidden' value='(.*)'>/", $out, $result, PREG_SET_ORDER)){
   echo 'Ivalid output';//Вывод сообщения
   exit;//Остановка выполнения программы
}

$ar="";//Обнуление переменной
foreach($result as $item){//Обход массива и его разбор
   $key=$item[1];//сохранение значения в переменную key
   $ar[$key]=$item[2];//составление нового массива
}

echo '<pre>';
print_r($ar);//вывод данных из массива
echo '</pre>';



?>
Прокомментировал строки кода.
Вопрос: Какой вид отображения (сеткой или строками) в категории выбирать и почему?

Лучший ответ:
Всё зависит от двух факторов, которые определяют сценарии использования магазина.1) Целевая аудитория. Если ЦА привыкла покупать глазами (магазин гламурных сумочек) — используем картинки и забываем про табличный вид.
Если ЦА важна максимальная плотность информации и внимание к характеристикам (например, оптовики на сайте по закупу автозапчастей), то стоит выбрать табличный вариант.2) Продукт. Если мы продаем эффектные вау-штуки, то без картинок никуда. Если продаем внешне похожие вещи, но с кучей разных характеристик (смартфоны), то подойдет табличный вид с очень маленьким изображением товара.

Худший ответ:
A/B тестирование поможет. А так, вообще, обычно, мне кажется, пользователь сам может менять вариант отображения.
Вопрос: Счётчик Хабрахабра под хабра-эффектом — 504 Gateway Time-out (/viewcount/post/N/)?

Лучший ответ:
Ага, оно похоже. Уже наверно неделю замечаю, что иногда страница рендерится до конца поста и на этом все заканчивается.

Худший ответ:
Да больше недели
Вопрос: Выбор кресла

Лучший ответ:
Пробовал разные. и подешевле и подороже. Лучше чем Atlant не нашел. $150. Сижу несколько лет. 

Хз че там за 20к можно такого купить. Я ходил в магазины с мебелью «для директоров». Там примерно такие цены на кресла. Но они уродливые, тяжелые и нифига неудобные.

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

Лучший ответ:
Ну, стоит хранить не так "data", как время у UNIX timestamp.
И вообще по-английски будет более правильно "date".
А так вы правы - для этого лучше всего подойдет отдельная таблица.

Худший ответ:
отношение Покупатель - Продавец является многие ко многим. Соответственно, для реализации отношения многие ко многим нужна будет отдельная таблица. Но таблицы черный список продавца и покупателя можно совместить:
BlackList :
-- Customer_id int  (Заказчик, Покупатель)
-- Seller_id int (Продавец)
-- type  bool  ( b'0 - занес покупатель, b'1 - занес продавец),
-- timestamp int (время занесения)
Вопрос: Javascript: Как узнать находится ли DOM элемент в области видимости?

Лучший ответ:
>> К сожалению, знать положение скрола мало — нет информации об общей высоте окна.

Так а вроде как window.innerHeight как раз и говорит о высоте окна. Так что имея координаты положения элемента в документе, положение скроллингов и высоту окна вполне уже можно определить видим объект или нет.

Худший ответ:
Наберите в гугле: javascript check DOM element visibility

Первые ссылки будут содержать примеры решения данной задачи.
Вопрос: Как составить план самообразования на ближайший год?

Лучший ответ:
"Чтобы научиться программировать нужно программировать."
План это конечно хорошо, но лучше заменить его на цель. Где-то давно была статья про девушку, которая хотела писать сайты и она поставила себе цель, каждый день делать по сайту. Это самый лучший вариант самообразования. 
Лично для меня поставить себе самому задачу очень проблематично, поэтому я просто лазил по фриланссайтам и искал задачи. 
Ты же можешь, просто найти несколько сайтов которые считаешь "качественными и адаптивными" и реализовать их сам.  Если у тебя совсем нет опыта в этом, то возьми пару популярных книг по дизайну и верстке и почитай их. А когда будет примерное представление как надо делать, то тут уже гугл в помощь. Ну и поиск всяких best practies.
ну и вот можно почитать статью theasder.github.io/learning/2015/01/25/let-us-lear...

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

Лучший ответ:
Я уже лет 8 на линуксе и много чего попробовал. На данный момент, у меня уже вот скоро год основной системой является Elementart OS. Она основана на Ubuntu 12.04, но в ней много чего переписано. 
Что в ней классного? Так как она выходит не по временному циклу, а по принципу "готово - выкатываем", в ней, субъективно, меньше глюков и она достаточно быстрая. Если вам это важно она еще и очень красивая система. В общем, это мой вам совет - попробуйте. Должно понравиться.

Худший ответ:
вариантов дистрибутивов два:
deb, rpm.
есть еще сборные конструкторы вроде генты или FreeBSD.
по сути в принципе есть стандартный набор софта, который мало где в дистрибутивах отличается - kde, gnome. open|libre-office, squid, sendmail, postfix, и т.п.
так что дело больше за привычками - я больше умею готовить deb-based, кто-то привык к rhel/centos, кто-то вообще на BSD сидит
Вопрос: Существует ли красивый linux, но не ubuntu?

Лучший ответ:
Вам нужна оболочка, как и сказали выше.
А лучше Mac OS X - лучший линукс =)

Худший ответ:
вчера частично перешел на Ubuntu, в купе с Win10 , у меня также проблемы с мобильным интернетом (yota), иногда пропадает, приходится перезагружать)
Вопрос: Почему рекомендуют НЕ использовать id в HTML и CSS?

Лучший ответ:
- id нужен для обращения из JS. ( к примеру ). Но не ограничиваясь этим.
 - Он должен быть уникален для страницы. Не может быть двух одинаковых.
Так что можно и иногда нужно.

Худший ответ:
id и class - это как имя и фамилия
в одной куче людей или элементов допустимы одинаковые имена и фамилии
Вопрос: Как вывести данные из масива js?

Лучший ответ:
Получаешь из массива ассоциативный массив и обращаешься к элементу по ключу.
Вот таким значит вопросам есть место быть, а мои удаляют :/

Худший ответ:
Незнаю как в нод, но на обычном яваскрипт то что в таких скобках {} - это объект, и получают данные из него таким способом: object.trade, в вашем случае array[0].trade
https://jsfiddle.net/6toqdh1z/
Вопрос: Триггеры в MySQL

Лучший ответ:
Думаю ругается на проверки
IF (`balance`.`item_id` AND `balance`.place_id) = NULL THEN
Попробуйте использовать INSERT… ON DUPLICATE KEY UPDATE, тогда IF не нужен.

Худший ответ:
Думаю ругается на проверки
IF (`balance`.`item_id` AND `balance`.place_id) = NULL THEN
Попробуйте использовать INSERT… ON DUPLICATE KEY UPDATE, тогда IF не нужен.
Вопрос: Замучил гоу-дядя, как продлить запаркованные домены дешевле?

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

Худший ответ:
Можно поискать купоны на скидку в дяде. Я запарковал свои домены за 5.50 в год.
Вопрос: Какой процессор лучше выбрать для компьютера?

Лучший ответ:
Ну если выбор между AMD + SSD и Intel без SSD, то конечно надо брать SSD.
Или вместо i7 лучше i5 взять. Для игр точно разница от HT (а больше вроде и нет значимых отличий между i5 и i7) мало где есть, для других задач по-разному, но тоже вряд ли заметите, это скорее для чего-нибудь типа компиляции может иметь значение.

Худший ответ:
Бери AMD и SDD
Вопрос: Может ли человек уметь профессионально работать с более чем одним языком?

Лучший ответ:
это как с обычными языками. 
чем больше языков знаешь, тем легче учить следующий.

Худший ответ:
Язык это инструмент!
Может ли дворник профессионально владеть не только метлой, но и лопатой?
Может ли художник профессионально владеть не только кистью, но и карандашом?
Может ли водитель уметь водить не только лимузин, но и камаз?
Вопрос: Какие ограничения на постинг сообщений аппликацией на Facebook?

Лучший ответ:
Бога ради не переводите application как аппликация. «Аппликация» переводится на английский как «Appliqué».
ru.wikipedia.org/wiki/Аппликация
en.wikipedia.org/wiki/Appliqué

Худший ответ:
Бога ради, если вам нечего сказать по сути вопроса, идите куда-нибудь дальше. Вместо ответа поставил минус, спасибо, очень помогает.
Вопрос: Какой необходимый минимум для начала работы на odesk (или аналогах)?

Лучший ответ:
Да никакой, до сих пор часть работы делаю впервые.

Худший ответ:
Говорят язык английский может пригодиться : )
Вопрос: RoR с нуля до первого заказа за неделю, реально?

Лучший ответ:
Не реально

Худший ответ:
Да.
Нет.
Не знаю.
Я сразу напишу все варианты, чтобы сэкономить время остальным отвечающим. Тут только один способ узнать: попробовать.
Вопрос: Борьба с php прокси для хостера

Лучший ответ:
Любой интернет провайдер — это и есть прокси сервер. Отследить никак не выйдет, только если сам прокси не скажет, что через него кто-то подключился, а он просто прокси. В общем ничего хорошего это не даст, только если не отрубит реально нормальных пользователей. Лучше всего отлавливать злополучные запросы фаерволами, но убивать не за использование прокси, а просто по обычным правилам (сканирование портов, большое количество конектов и подобное).
P.S. Сам 3 года постоянно редактировал правила на фаервол, чтоб работало все четко и нормальных юзеров не убивало.

Худший ответ:
анализ логов, может быть чем то автоматизированным, будет ходить много пакетов в таком случае и трафик с одного хоста и много запросов с сервера на внешние ресурсы так же.

P.S. в последнее время провайдеры выдают белые ипы клиентам.
iptables\apache
Вопрос: Почему не приходят данные?

Лучший ответ:
Забыли про enctype="multipart/form-data", лучше собрать форму и с нее делать аякс запросы, как минимум кто без JS тоже сможет отправить. JS - это все таки красотульки и удобство, html + php - хардкор! должен работать

Худший ответ:
Так вы же не посылаете ничего - отчего должно придти?) к тому же вы посылаете методом Post, а проверяете массив Get
Вопрос: Поддерживает ли windows 10 пиратские программы?

Лучший ответ:
Официальная поддержка вроде отсутствует.

Худший ответ:
Не правильно задал вопрос! Не блокирует ли windows 10  пиратские программы!?
Вопрос: Глючит версия jQuery 1.8.2 А стоит ли апдейтится?

Лучший ответ:
(крики из за зала про валидность этого дело, пока опустим, главное, что работало)

Без криков, но, всё же, я бы проверил, может дело совсем не в jQuery? :)

Худший ответ:
Использую в своём последнем проекте jQuery 1.8.2 + jQuery UI 1.9.0. Никаких проблем описанных вами пока не встречал. Анимация работает как и в предыдущей версии.
Вопрос: Как реализовать карточки в HTML?

Лучший ответ:
Посмотрите в сторону мелькающей тут почти каждый день ссылки masonry или сделайте нужное количество колонок и вставляйте в них блоки.
Еще варианты:Css вариант (column-count) jquery.mosaicflowjquery.shapeshiftwookmarkblocksitflexbox

Худший ответ:
Уже сто раз писали ответы на такие вопросы. Поиск видели?) по факту - смотрите плагин masonry
Вопрос: Какие фильтрации входящих данных вы производите?

Лучший ответ:
ограничивать пользователей в том, какие символы они хотят использовать это глупость. 
Проблема sql иньекций в контексте php решается использованием pdo + prepared statements.
Проблема XSS решается эскейпингом (htmlentities). Проще взять на вооружения шаблонизаторы вроде twig-а, которые по умолчанию все выводящиеся данные эскейпят.
Вообще думаю вам стоит взять какой-нибудь популярный фреймворк (doctrine2, silex и т.д.) и не париться по поводу большей части этих проблем.

Худший ответ:
При добавлении данных в бд, для предотвращения SQL-инъекции, все данные пропускаем через mysql_real_escape_string:function sanitize($string) {
    return "'" . mysql_real_escape_string($string) . "'";
}
$query = sql_sprintf(
     "SELECT * FROM users WHERE user=%s AND mail=%s", 
     sanitize($_POST['login']), 
     sanitize($_POST['mail'])
);
Для предотвращения XSS, в артибутах используем htmlentities(), в остальных местах htmlspecialchars():<div data-attr="<?= htmlentities($var)?>"><?= htmlspecialchars($var)?></div>
Но, как уже сказал @Fesor, для работы с базой данных нужно использовать PDO или DBAL, но не функции mysql_*, которые не рекомендуется использовать (даже специальные красные предупреждающие плашки на страницах документации есть).
Для проверки загруженной картинки используй функцию getimagesize().