- 1
- 2
- 3
- 4
bool THotKeysRepository::TKeyCombination::operator<( const TKeyCombination& y ) const
{
return this->_AltKeyState<y._AltKeyState && this->_ScanCode<y._ScanCode;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+159
bool THotKeysRepository::TKeyCombination::operator<( const TKeyCombination& y ) const
{
return this->_AltKeyState<y._AltKeyState && this->_ScanCode<y._ScanCode;
}
+133
<?php
class InitVars {
# Недопустимые слова в запросах
var $deny_words = array("union","char","select","update","group","order","benchmark","null","/*","UNION","CHAR","SELECT","UPDATE","GROUP","ORDER","BENCHMARK","NULL",);
function InitVars() {
}
# Метод конвентирует суперглобальные массивы $_POST, $_GET в перемнные
# Например : $_GET['psw'] будет переобразовано в $psw с тем же значением
function convertArray2Vars () {
foreach($_GET as $_ind => $_val) {
global $$_ind;
if(is_array($$_ind)) $$_ind = htmlspecialchars(stripslashes($_val));
}
foreach($_POST as $_ind => $_val) {
global $$_ind;
if(is_array($$_ind)) $$_ind = htmlspecialchars(stripslashes($_val));
}
}
# Метод проверяет $_GET и $_POST переменные на наличие опасных данных и SQL инъекций
function checkVars() {
//Проверка опасных данных.
foreach($_GET as $_ind => $_val) {
$_GET[$_ind] = htmlspecialchars(stripslashes($_val));
$exp = explode(" ",$_GET[$_ind]);
foreach($exp as $ind => $val) {
if(in_array($val,$this->deny_words)) $this->antihack("Послушайте, мои маленькие кул хацкеры... Несанкционированный доступ в БД карается лишением свободы на срок от 3-х до 5-ти лет. <br> Ваш ip адресс помечен. Вам ведь не нужны проблемы, правда?. ");
}
}
foreach($_POST as $_ind => $_val) {
$_POST[$_ind] = htmlspecialchars(stripslashes($_val));
$exp = explode(" ",$_POST[$_ind]);
foreach($exp as $ind => $val) {
if(in_array($val,$this->deny_words)) $this->antihack("Послушайте, мои маленькие кул хацкеры... Несанкционированный доступ в БД карается лишением свободы на срок от 3-х до 5-ти лет. <br> Ваш ip адресс помечен. Вам ведь не нужны проблемы, правда?.");
}
}
}
function antihack($msg) {
echo "<font color='red'><b>Antihack error: </b></font>$msg<br>\n";
die;
}
}
?>
Защита от SQL инъекций.
+153
imagettftext ($im,9, 0, 12, 21, $black,$font, 'Mike Lowry');
imagettftext ($im,9, 0, 10, 20, $text_color,$font, 'Mike Lowry');
Профессиональная тень текста. Скоро в ваших экранах.
+155
require_once($_SERVER['DOCUMENT_ROOT'] . '/inc/ugBase.php');
require_once($_SERVER['DOCUMENT_ROOT'] . "/inc/BizForm.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/inc/BizForm2.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/inc/banner.php");
/**
* Общий класс для построения старинц - класс содержит методы для
* отображения блоков на странице, отдельных элементов (сыыслок и т.д.)
* Также класс формирует основные элементы страницы - хидер, футер и т.д.
*
*/
class ugPage ...
Дальше можно было бы не читать... Но руководство вынуждает :(
+161
wp_list_categories('orderby=order&hide_empty=0&title_li&echo=0&exclude=13,14,19,20,21,36,37,42,43,44,45,46,47,48,70,126,127,167,75,128,129,130,131,132,133,53,68,69,134,135,136,117,118,119,168,146,120,121,122,67,150,123,142,124,54,125,149,66,104,105,144,106,107,108,55,109,110,111,112,57,113,114,115,116,162,175,95,96,97,98,99,100,59,163,49,101,145,102,103,158,153,157,174,169,160,147,148,151,172,152,161,154,165,173,170,171,177,166,176,155,159,156,164,87,180,181,182,183,184,185,186,191,193,22,194,78,16,82,89,88,28,83,73,85,71,72,30,23,58,86,90,26,25,190,41,34,35,39,40,50,51,52,56,74,62,91,92,93,94,178,187,188,192,18,31,33,63,61,65,60,64,29,32,79,80,81');
Как вы заебали..
+162
if(
(trim($class->antihacker($_POST['fio']))=='')or
(trim($class->antihacker($_POST['phone']))=='')or
(trim($class->antihacker($_POST['email']))=='')or
(trim($class->antihacker($_POST['adress']))=='')
){$error="Указанные поля заполнены неверно!";}
elseif(!$class->validate_email($_POST['email'])){$error="E-mail указан не корректно!";}
elseif($_POST['is_company']=='1'){
if(
(trim($class->antihacker($_POST['company']))=='')or
(trim($class->antihacker($_POST['fio_cmp']))=='')or
(trim($class->antihacker($_POST['email_cmp']))=='')or
(trim($class->antihacker($_POST['kchet']))=='')or
(trim($class->antihacker($_POST['rchet']))=='')
){$error="Указанные поля заполнены неверно!";}
}
анти хакерз...
+60
public int getSummaryChildWidth() {
return getMaxChildWidth(true);
}
public int getFuckingDinosaurD*cksHeight() {
return 0;
}
public int getFuckingDinosaurD*cksWidth() {
return 0;
}
Достался в наследство шедевр(выложен с цензурой). Самое интересное, что в svn эти методы еще и что-то выполняли.
PS. речь не про утку.
−124
////////////////////////////////////////////////////////////////////
////////Преобразование горизонтали в вертикаль с дурацким циклом////
///////////////////////////////////////////////////////////////////
ТекДата = ТекущаяДата();
ТекущийГод = НачалоГода(ТекДата);
ТекущийМесяц = НачалоМесяца(ТекДата);
Пока Выборка.Следующий() Цикл
ДатаЯнварь = ТекущийГод;
Если ДатаЯнварь >= ТекущийМесяц Тогда
Январь = ПланПост.Добавить();
Январь.Организация =Выборка.Организация;
Январь.Расход = Выборка.ПродажиЯнварь;
Январь.НормОст = Выборка.ОстаткиФевраль;
Январь.МесяцПрихода = ТекущийГод;
КонецЕсли;
ДатаФевраль = ДобавитьМесяц(ТекущийГод, 1);
Если ДатаФевраль >= ТекущийМесяц Тогда
Февраль = ПланПост.Добавить();
Февраль.Организация =Выборка.Организация;
Февраль.Расход = Выборка.ПродажиФевраль;
Февраль.НормОст = Выборка.ОстаткиМарт;
Февраль.МесяцПрихода = ДатаФевраль;
КонецЕсли;
ДатаМарт = ДобавитьМесяц(ТекущийГод, 2);
Если ДатаМарт >= ТекущийМесяц Тогда
Март = ПланПост.Добавить();
Март.Организация =Выборка.Организация;
Март.Расход = Выборка.ПродажиМарт;
Март.НормОст = Выборка.ОстаткиАпрель;
Март.МесяцПрихода = ДатаМарт;
КонецЕсли;
ДатаАпрель = ДобавитьМесяц(ТекущийГод, 3);
Если ДатаАпрель >= ТекущийМесяц Тогда
Апрель = ПланПост.Добавить();
Апрель.Организация =Выборка.Организация;
Апрель.Расход = Выборка.ПродажиАпрель;
Апрель.НормОст = Выборка.ОстаткиМай;
Апрель.МесяцПрихода = ДатаАпрель;
КонецЕсли;
ДатаМай = ДобавитьМесяц(ТекущийГод, 4);
Если ДатаМай >= ТекущийМесяц Тогда
Май = ПланПост.Добавить();
Май.Организация =Выборка.Организация;
Май.Расход = Выборка.ПродажиМай;
Май.НормОст = Выборка.ОстаткиИюнь;
Май.МесяцПрихода = ДатаМай;
КонецЕсли;
Была ТЧ в документе с колонками-названиями месяцев....И руководство поставило задачу вывести ЭТО в отчет...На СКД....
+142
/**
* Конфигурация программы
*
* 2 конструктора:
- по умолчанию - загружающий данные из файла настроек (см. Configuration.CONFIGURATION_FILENAME);
- с одним параметром java.util.Properties - загружающий данные данные из него.
- метод save()
- без параметра - записывает данные в Configuration.CONFIGURATION_FILENAME
- с одним параметром java.util.Properties - записывает данные в него.
*/
public class Configuration {
public static final String CONFIGURATION_FILENAME = System.getProperty("user.home") + "/serialmon/1.properties";
private PortConfig firstPort;
private PortConfig secondPort;
private String logFileName;
private int logWidth;
public Configuration() {
this.firstPort = new PortConfig();
this.secondPort = new PortConfig();
Properties pp = new Properties();
try {
File PropFile = new File(CONFIGURATION_FILENAME);
if (!PropFile.exists()) {
PropFile.createNewFile();
}
FileInputStream inPropFile = new FileInputStream(CONFIGURATION_FILENAME);
pp.load(inPropFile);
setProperties(pp);
} catch (IOException e) {
e.printStackTrace();
}
}
public Configuration(Properties p) {
this.firstPort = new PortConfig();
this.secondPort = new PortConfig();
setProperties(p);
}
/**
* вспомогательный метод. В идеале можно было обойтись без него, вызывая из конструктора по умолчанию
* конструктор с параметром Properties, но ПЕРЕД вызовом этого конструктора нужно было
* загрузить данные из файла в Properties pp, а потом уже вызвать конструктор.
* Это сделать не возможно, т.к. вызов конструктора должен быть ПЕРВЫМ.
*
* @param pp
*/
private void setProperties(Properties pp){
this.setLogFileName(pp.getProperty("logFileName"));
this.setLogWidth(Integer.parseInt(pp.getProperty("logWidth")));
}
/**
* - метод save()
* без параметра - записывает данные в Configuration.CONFIGURATION_FILENAME
*/
public void save() {
Properties pp = new Properties();
save(pp);
try {
FileOutputStream outPropFile = new FileOutputStream(CONFIGURATION_FILENAME);
pp.store(outPropFile, null);
} catch(IOException ex) {
ex.printStackTrace();
}
}
/**
* - с одним параметром java.util.Properties - записывает данные в него.
*
* @param p
*/
public void save(Properties p) {
p.put("logFileName", this.getLogFileName());
p.put("logWidth", String.valueOf(this.getLogWidth()));
}
Товарищи, возникла необходимость создания двух конструкторов. Хочется вызвать один из другого, чтобы было красиво, НО перед вызовом второго, который с параметром Properties, нужно установить этот самый параметр, а потом уже передать его.
Т.е. нужно в конструкторе по умолчанию сделать такое:
Properties p = new Properties();
p.set(бла бла бла);
THIS(P); // как вы понимаете, компилятор будет ругаться, что вызов THIS должен быть ПЕРВЫМ в конструкторе.
вызов типа this(new Properties), не годится.
сейчас, как можно видеть, использую вспомогательный метод setProperties, как раз без которого было бы идеально.
+142
using System;
namespace Trening_6
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Введите 2 числа через пробел...");
string[] Value = Console.ReadLine().Split(new char[] {' '});
int Result = 0;
for (int i = Convert.ToInt32(Value[0]); i < Convert.ToInt32(Value[1]) + 1; i++)
{
Result += i;
}
Console.WriteLine("Сумма всех чисел в диапозоне от {0} до {1} равна {2}", Convert.ToInt32(Value[0]), Convert.ToInt32(Value[1]), Result);
Console.ReadKey();
}
}
}
Говнище еще свежее, неделю назад высрал.