- 1
- 2
- 3
- 4
- 5
$sql_info = "SELECT * FROM accessories";
$query_info = mysql_query($sql_info);
while($row_info=mysql_fetch_array($query_info)) {
$found_something=1;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−110
$sql_info = "SELECT * FROM accessories";
$query_info = mysql_query($sql_info);
while($row_info=mysql_fetch_array($query_info)) {
$found_something=1;
}
Проверка наличия записей в БД
−129
Функция ВыделитьАртикул(А) Экспорт
Перем СтрВспом, Инд;
Инд = 1;
СтрВспом = "";
Пока Инд <= СтрДлина(А) Цикл
Если (Сред(А,Инд,1)="0") ИЛИ (Сред(А,Инд,1)="1") ИЛИ
(Сред(А,Инд,1)="2") ИЛИ (Сред(А,Инд,1)="3") ИЛИ
(Сред(А,Инд,1)="4") ИЛИ (Сред(А,Инд,1)="5") ИЛИ
(Сред(А,Инд,1)="6") ИЛИ (Сред(А,Инд,1)="7") ИЛИ
(Сред(А,Инд,1)="8") ИЛИ (Сред(А,Инд,1)="9") ИЛИ
(Сред(А,Инд,1)="/") ИЛИ (Сред(А,Инд,1)="-") Тогда
СтрВспом = СтрВспом + Сред(А, Инд, 1);
Инд = Инд + 1;
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
Возврат СтрВспом;
КонецФункции
Нашел у клиента, когда рефакорил код конфы. Страшно подумать, если придется выделять еще с десяток символов...
+160
HRESULT GetOutlookVersionString(LPSTR* ppszVer, BOOL* pf64Bit)
{
HRESULT hr = E_FAIL;
LPSTR pszTempPath = NULL;
LPSTR pszTempVer = NULL;
TCHAR pszaOutlookQualifiedComponents[][MAX_PATH] = {
TEXT("{1E77DE88-BCAB-4C37-B9E5-073AF52DFD7A}"), // Outlook 2010
TEXT("{24AAE126-0911-478F-A019-07B875EB9996}"), // Outlook 2007
TEXT("{BC174BAD-2F53-4855-A1D5-0D575C19B1EA}") // Outlook 2003
};
int nOutlookQualifiedComponents = _countof(pszaOutlookQualifiedComponents);
int i = 0;
DWORD dwValueBuf = 0;
UINT ret = 0;
*pf64Bit = FALSE;
for (i = 0; i < nOutlookQualifiedComponents; i++)
{
ret = MsiProvideQualifiedComponent(
pszaOutlookQualifiedComponents[i],
TEXT("outlook.x64.exe"),
(DWORD) INSTALLMODE_DEFAULT,
NULL,
&dwValueBuf);
if (ERROR_SUCCESS == ret) break;
}
if (ret != ERROR_SUCCESS)
{
ret = MsiProvideQualifiedComponent(
pszaOutlookQualifiedComponents[i],
TEXT("outlook.exe"),
(DWORD) INSTALLMODE_DEFAULT,
NULL,
&dwValueBuf);
}
else
{
*pf64Bit = TRUE;
}
if (ret == ERROR_SUCCESS)
{
dwValueBuf += 1;
pszTempPath = (LPSTR) malloc(dwValueBuf * sizeof(TCHAR));
if (pszTempPath != NULL)
{
if ((ret = MsiProvideQualifiedComponent(
pszaOutlookQualifiedComponents[i],
TEXT("outlook.exe"),
(DWORD) INSTALLMODE_EXISTING,
pszTempPath,
&dwValueBuf)) != ERROR_SUCCESS)
{
goto Error;
}
pszTempVer = (LPSTR) malloc(MAX_PATH * sizeof(TCHAR));
dwValueBuf = MAX_PATH;
if ((ret = MsiGetFileVersion(pszTempPath,
pszTempVer,
&dwValueBuf,
NULL,
NULL))!= ERROR_SUCCESS)
{
goto Error;
}
*ppszVer = pszTempVer;
pszTempVer = NULL;
hr = S_OK;
}
}
Error:
free(pszTempVer);
free(pszTempPath);
return hr;
}
Говнокод от САМОГО Билли... 21 век на дворе, а у нас в C++ коде goto Error написано (точнее - накакано).
Источник - http://msdn.microsoft.com/en-us/library/dd941331.aspx
+90
Procedure TfMain.CheckButtonsStatus;
begin
// Если есть кто-то в персональной очереди, то возобновить активна
if (dMain.PersonalQueueQuery.RecordCount > 0) then
TImageButton(mButtons[6]).mlabel.Enabled := true
else
TImageButton(mButtons[6]).mlabel.Enabled := False;
// 'приглашен', 3, 'оповещен', 4, 'оповещен', 5, 'прием начат')
if (dMain.StateQuery.FieldValues['state'] = 'свободно') then
begin
TImageButton(mButtons[0]).mlabel.Enabled := False;
TImageButton(mButtons[1]).mlabel.Enabled := False;
if dMain.CommonQueueQuery.RecordCount > 0 then
TImageButton(mButtons[2]).mlabel.Enabled := true
else
TImageButton(mButtons[2]).mlabel.Enabled := False;
TImageButton(mButtons[3]).mlabel.Enabled := False;
TImageButton(mButtons[4]).mlabel.Enabled := False;
TImageButton(mButtons[5]).mlabel.Enabled := False;
OperPopupMenu.Items[0].Enabled := False;
end;
if (dMain.StateQuery.FieldValues['state'] = 'приглашен') or
(dMain.StateQuery.FieldValues['state'] = 'оповещен') then
begin
TImageButton(mButtons[0]).mlabel.Enabled := true;
TImageButton(mButtons[1]).mlabel.Enabled := False;
TImageButton(mButtons[2]).mlabel.Enabled := False;
TImageButton(mButtons[3]).mlabel.Enabled := true;
TImageButton(mButtons[4]).mlabel.Enabled := False;
TImageButton(mButtons[5]).mlabel.Enabled := False;
TImageButton(mButtons[6]).mlabel.Enabled := False;
if (dMain.StateQuery.FieldValues['state'] = 'приглашен') then
OperPopupMenu.Items[0].Enabled := False
else
OperPopupMenu.Items[0].Enabled := true;
end;
if (dMain.StateQuery.FieldValues['state'] = 'прием начат') then
begin
TImageButton(mButtons[0]).mlabel.Enabled := False;
TImageButton(mButtons[1]).mlabel.Enabled := true;
TImageButton(mButtons[2]).mlabel.Enabled := False;
TImageButton(mButtons[3]).mlabel.Enabled := False;
TImageButton(mButtons[4]).mlabel.Enabled := true;
TImageButton(mButtons[5]).mlabel.Enabled := true;
TImageButton(mButtons[6]).mlabel.Enabled := False;
OperPopupMenu.Items[0].Enabled := False;
end;
end;
На работе достался проект, состоящий чуть менее чем полностью из подобных высеров.
+162
/*
Содержимое news.xml
<?xml version="1.0" encoding="utf-8"?>
<news>
<item>
<title>Новые поступления</title>
<text>
This program is free software;
</text>
<date>13:30 - 12.08.2004</date>
</item>
<item>
<title>ERERER поступления</title>
<text>
p pppppppppppppppp p p pp p pppppppppppppppppp pppppppppppppppppppppp
</text>
<date>18:30 - 12.08.2004</date>
</item>
</news>
*/
$file = fopen("news.xml","r");
fseek($file, 47, SEEK_SET);
$other = fread($file, 900000);
fseek($file, 0, SEEK_SET);
$prev = fread($file, 47);
fclose($file);
$file = fopen("news.xml","w");
//...
$text1 = "$text";
$title = "$h1";
$date = "$dates";
echo $other;
$all = $prev.'<item><title>'.$title.'</title><text>'.$text1.'</text><date>'.$date.'</date></item>'.$other;
$buff = fputs ($file, $all);
print $buff;
Оригинальный способ дописывать новую новость в xml файл.
Данный способ уже не кошерный:
$doc = new DOMDocument();
$doc->load($xml);
$item = $doc->createElement('item');
$news = $doc>getElementsByTagName('news')->item(0);
$news->appendChild($item);
$doc->save($xml);
+154
<?php
function import_var($name,$source,$type,$maxlen=0) {
$retarr=array();
if(is_array($name)) { // если нужно обработать массив с именами
foreach($name as $v) {
$retarr[$v] = import_var($v,$source,$type,$maxlen);
// рекурсивно запускаем себя же
}
if(sizeof($retarr)>0) return $retarr; // возвращаем массив
}
// если нужно обработать одну переменную
switch($source) {
case 'G':
if (isset($_GET[$name])) {
$var=$_GET[$name]; // из GET
}
break;
case 'P':
if (isset($_POST[$name])) {
$var=$_POST[$name]; // из POST
}
break;
case 'C':
if (isset($_COOKIE[$name])) {
$var=$_COOKIE[$name]; // из Cookie
}
break;
}
if(!isset($var)) return false; // если переменная существует
if(is_array($var)) return false; // и если это не массив...
if(get_magic_quotes_gpc()) $var = stripslashes($var);
// убираем лишние бэкслэши
if(empty($var)) return false; // если переменная пуста
if ($maxlen>0) $var = substr($var,0,$maxlen); //обрубаем лишнее
switch($type) { // теперь обрабатываем в соответствии с типом
case 'INT' : // число integer
return is_integer($var) ? $var : intval($var);
break;
case 'NUM' : // число integer или float
return is_numeric($var) ? $var : false;
break;
case 'HTML' : // текст, в котором могут содержаться тэги
return trim(htmlspecialchars($var));
break;
case 'SQL' : // строка, которая попадет в SQL-запрос
return mysql_real_escape_string(htmlspecialchars($var));
break;
case 'MAIL' : // email-адрес
return preg_match('/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{2,4}$/',$var) ? $var : false;
break;
case 'ALPHA' : // только буквенные символы
return preg_match("/^[а-яА-ЯёЁa-zA-Z]+$/",$var) ? $var : false;
break;
case 'ALPHANUM' : // числовые и буквенные символы
return preg_match("/^[а-яА-ЯёЁa-zA-Z0-9]+$/",$var) ? $var : false;
break;
case 'MD5' : // md5-хэш
return preg_match("/^[a-fA-F0-9]{32}+$/",$var) ? $var : false;
break;
case 'SHA1' : // sha1-хэш
return preg_match("/^[a-fA-F0-9]{40}+$/",$var) ? $var : false;
break;
case 'BOOL': // булева величина
return ($var=="1" || $var=="true" || $var=="on") ? true : false;
break;
}
}
?>
http://raz0r.name/releases/funkciya-dlya-obrabotki-vxodyashhix-dannyx/
+161
$period = in_array($bullRegionId,array_keys($periods)) ? $periods[$bullRegionId]['text'] : $periods['default']['text'];
Интересна сама проверка на существование ключа, не правда ли? :-)
Код мой. Коллега учуял, что от него несколько плохо пахнет и предложил запостить сюда))
+153
function resetIsetSorting()
{
$db = 'i_set';
$co = -1;
$q = $this->db->get($db);
$r = $q->result();
foreach($r as $row)
{
$co++;
$upd['sort'] = $co;
$this->db->where('id_set', $row->id_set);
$this->db->update($db, $upd);
}
}
function isetSortExchange($sort, $canBeSort)
{
$db = 'i_set';
$bigNumber = 1470000;
$this->db->where('sort', $canBeSort);
$q = $this->db->get($db);
if ($q->num_rows() == 1)
{
$upd['sort'] = $bigNumber;
$this->db->where('sort', $canBeSort);
$this->db->update($db, $upd);
//
$upd['sort'] = $canBeSort;
$this->db->where('sort', $sort);
$this->db->update($db, $upd);
//
$upd['sort'] = $sort;
$this->db->where('sort', $bigNumber);
$this->db->update($db, $upd);
}
}
Первая функция призвана обновить поле sort на уникальные последовательные значение. Сначала хотел провернуть такое дело на SQL в PHPmyADMIN, но мозгов моих оказалось мало, и я сделал это на CodeIgniter. Говнокод ли это?
Вторая функция призвана для обмена значениями полей sort. Это нужно для сортировки чего либо в баз. Чутьё мне подсказывает что это можно проделать каким-то белее правильным путём, без использования $bigNumber = 1470000; (а вдруг количество строк достигнет этого числа??!!). Говнокод ли это?
Всё рабочее, только что проверил. Свежий код, только что написан!
+161
<select onchange="goTo();" id="navSelect">
<option value="/way_to_hell/">Вопросы-ответы</option>
.
.
.
</select>
<script>
function goTo()
{
var objSel = document.getElementById("navSelect");
window.location = objSel.options[objSel.selectedIndex].value;
}
</script>
//можно вообще вот так:
<select onchange="window.location = this.options[this.selectedIndex].value">
+162
function validemail($email){
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email))
return false;
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++) {
if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i]))
return false;
}