- 1
- 2
- 3
- 4
@old_article_purchase.old_article.warehouse_placement = '102A1'
if @old_article_purchase.old_article.valid?
@old_article_purchase.old_article.save
end
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−82
@old_article_purchase.old_article.warehouse_placement = '102A1'
if @old_article_purchase.old_article.valid?
@old_article_purchase.old_article.save
end
−396
@implementation SlideMenuNavigationBar
- (void)layoutSubviews
{
[super layoutSubviews];
for (UIView *aView in self.subviews) {
// Correcting menu toggle button position
if ([[aView.class description] isEqualToString:@"UIButton"] && aView.frame.origin.x < self.frame.size.width/2) {
CGRect frame = aView.frame;
frame.origin.x = 12; // 8 for correlation
frame.origin.y = -1; // 1 for correlation
aView.frame = frame;
}
if (aView.frame.origin.x > self.frame.size.width/2 && !isIPad && ![[aView.class description] isEqualToString:@"ColoredView"]) {
CGRect frame = aView.frame;
frame.origin.x = 260; // 8 for correlation
frame.origin.y = -1; // 1 for correlation
aView.frame = frame;
}
// Correcting back button and right button positions
if ([[aView.class description] isEqualToString:@"_UINavigationBarBackIndicatorView"]) {
CGRect frame = aView.frame;
frame.origin.y = [self.class navigationBarHeight] - kDefaultNavigationBarHeight + 5; // 5 for correlation
aView.frame = frame;
}
if ([[aView.class description] isEqualToString:@"UINavigationButton"]) {
CGRect frame = aView.frame;
frame.origin.y = [self.class navigationBarHeight] - kDefaultNavigationBarHeight + 2; // 2 for correlation
aView.frame = frame;
}
if ([aView isKindOfClass:[NavigationBarButton class]]) {
CGRect frame = aView.frame;
frame.origin.x = 278; // 8 for correlation
frame.origin.y = 6; // 1 for correlation
aView.frame = frame;
}
}
}
@end
фиг знает что думали :D
+50
#include <iostream>
using namespace std;
void f(int i)
{
cout << "----" << endl;
void *array[] = { &&foo, &&bar, &&baz };
goto *array[i];
foo:
cout << "Foo" << endl;
bar:
cout << "Bar" << endl;
baz:
cout << "Baz" << endl;
}
int main() {
// your code goes here
f(0);
f(1);
f(2);
return 0;
}
http://ideone.com/63tRls
gcc extension
+156
// Real itemid is "contained" in public itemid in a bit tricky way. The formula is:
public_itemid = itemid * 256 + anum
// Quite easy, isn't it? Except where to get that anum. anum is some number assigned when you create a new post in LJ.
// But in fact, you don't need it. Because it is always less than 256, we can avoid searching for it, and just use simple Math to find itemid.
$anum = $public_itemid - floor($public_itemid / 256) * 256;
$itemid = ($public_itemid - $anum) / 256;
Прекрасный подход, то место, где вордпресс и ЖЖ сошлись воедино.
http://drumrock.skipitnow.org/livejournal-tools/itemid/
+159
$image_type = substr($image_data,strpos($image_data, '/')+1,strpos($image_data, ';')-(strpos($image_data, '/')+1));
Выдирание типа из заголовка base64-закодированного изображения (data:image/jpeg;base64,......................)
+134
class ParametersArray
{
...
/// <summary>
/// Копирующей конструктор (создает копию коллекции)
/// </summary>
/// <param name="prs">Коллекция на основе, которой будет создаваться копия</param>
public ParametersArray(ParametersArray prs)
{
paParameters = new ArrayList();
for (int i = 0; i < prs.Count; i++)
{
Parameter p = new Parameter(prs[i]);
paParameters.Add(p);
}
}
...
#region Внутренние состояния
/// <summary>
/// Внутреннее поле - массив параметров
/// </summary>
private ArrayList paParameters;
/// <summary>
/// Внутреннее поле – идентификатор операции, к которой относятся параметры
/// </summary>
private string paOperationId = "";
#endregion
/// <summary>
/// Удаляет параметр из коллекции
/// </summary>
/// <param name="parameterId">Идентификатор параметра</param>
public void Delete(string parameterId)
{
ArrayList list = new ArrayList();
foreach (Parameter prt in paParameters)
{
if (prt.Id.Trim() != parameterId.Trim())
{
list.Add(prt);
}
}
paParameters = list;
}
}
}
...
/// <summary>
/// Класс для поиска и обработки шаблонов в параметрах операций
/// </summary>
public class Parser
{
...
#region Конструкторы
/// <summary>
/// Конструктор инициализирующей класс
/// </summary>
/// <param name="requestUserId">ID пользователя, который используется для обработки шаблона ##USER()</param>
public Parser(string requestUserId)
{
pParameters = null;
pUserId = requestUserId;
}
#endregion
#region Внешние методы
/// <summary>
/// Метод перебирает все параметры операции, ищет там шаблоны и заменяет их значениями
/// </summary>
/// <param name="opr">Операция</param>
/// <returns>Операция с обработанными шаблонами</returns>
public Operation Parse(Operation opr)
{
pParameters = new ParametersArray(opr.Parameters);
for (int i = 0; i < pParameters.Count; i++)
if (FindTemplate(pParameters[i]))
{
ReplaceTemplate(pParameters[i]);
//Удаляет параметр с ошибкой
if (pParameters[i].Value == "parse err")
pParameters.Delete(pParameters[i].Id);
}
opr.Parameters = new ParametersArray(pParameters);
return opr;
}
Внимание привлекает код в строках 81-95
В строке 81-82 мы создаём временную копию параметров операции opr во внутреннем поле класса Parser. Прекрасно. Ещё раз - в публичном в методе инициализируем внутреннее поле (Классный side effect - поле используется в других методах).
В строке 91 удаляет элемент из внутренней коллекции, пересоздавая коллекцию целиком, то есть требования к памяти временно удваиваются на выходе из метода Delete (до очистки памяти). В методе Delete. Да. Супер.
потом инициализируем вновь созданной коллекцией публичное поле Parameters во входящем параметре opr метода Delete.
P.S.: Диагноз - хроническая форма неизлечимой Java. Во первых, автор этих строк искренне думает, что в природе ничего, кроме коллекции ArrayList, не существует. Во вторых, для удаления элемента коллекции мы пересоздаём всю коллекцию целиком, то есть видимо искренне полагая, что коллекция ArrayList - immutable, как и все поля класса Parser (типа ParametersArray) равно как и поле класса ParametersArray (типа ArrayList). Занавес.
Говнокодище.
+158
<?php
public function clearCache() {
if(method_exists('regedit', 'getControllerHost')) {
$host = regedit::getControllerHost(true);
if(!is_null($host)){
$host->cacheClear();
} else {
$sDir = rtrim(mainConfiguration::getInstance()->includeParam('system.static-cache'), '/');
if(getServer('WINDIR') || getServer('windir')){
$arDirs = glob($sDir . '/*');
foreach($arDirs as $item){
$item = rtrim($item, "\\/ ") . "/";
exec("rd /s /q $item");
}
} else {
exec("rm -rf $sDir/*");
}
}
} else {
$sDir = rtrim(mainConfiguration::getInstance()->includeParam('system.static-cache'), '/');
if(getServer('WINDIR') || getServer('windir')) {
$arDirs = glob($sDir . '/*');
foreach($arDirs as $item) {
$item = rtrim($item, "\\/ ") . "/";
exec("rd /s /q $item");
}
} else {
exec("rm -rf $sDir/*");
}
}
}
Найди два отличия.
+135
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main(){
FILE *filein, *fileout;
char fname1[15], fname2[15];
int n, m;
int i, j;
printf("Enter name of input file: "); scanf("%s", &fname1);
printf("Enter name of output file: "); scanf("%s", &fname2);
filein=fopen(fname1, "r");
fileout=fopen(fname2, "w");
if(filein==NULL){
fprintf(stderr, "\nError: can't open file \"%s\"\n\n", fname1);
fclose(filein);
fclose(fileout);
getch();
}
else{
fscanf(filein, "%d%d", &n, &m);
char ch[m][n];
int array[m][n];
int V[m][n];
for(i=0;i<m;i++){
for(j=0;j<n;j++){
V[i][j]=0;
}
}
for(i=0;i<m;i++){
for(j=0;j<n;j++){
fscanf(filein, "%s", &ch[i][j]);
if(ch[i][j]=='+') array[i][j]=1;
else if(ch[i][j]=='-') array[i][j]=0;
}
}
int sum;
for(i=0;i<m;i++){
sum=0;
for(j=0;j<n;j++){
sum+=array[i][j];
}
if(sum==1){
for(j=0;j<n;j++){
V[i][j]=array[i][j];
}
}
else continue;
}
int mm=0, c;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
mm+=V[i][j];
}
}
c = m-mm;
int VoteArray[n];
for(j=0;j<n;j++){
sum=0;
for(i=0;i<m;i++){
sum+=V[i][j];
VoteArray[j]=sum;
}
}
float percent[n];
float per;
per = 100/(float)c;
for(i=0;i<n;i++){
if((percent[i]=per*VoteArray[i])>=7.0) fprintf(fileout, "%d ", i+1);
}
}
fclose(fileout);
fclose(filein);
puts("\nMission comleted\nPress any key...\n");
getch();
}
Фу, блять
+157
foreach ($account->lists as $list) {
print "LIST Name: " . $list->name; echo ' '; echo ' '; echo ' '; print "LIST Id: " . $list->id;
echo "<br>";
}
Не говоря о том, что особой разницы между print и echo в ПХП нет, стоит отметить, что после «nbsp» пропущены точки с запятыми и всё тело этого фора можно было бы вывести одной строчкой.
+158
<?php
/* В настройках кабинета необходимо указать "Проверять md5 на ссылках",
чтобы нельзя было заплатить сумму отличную от заданной в переменной $summa */
$summa=50; //Стоимость доступа к платному разделу, в рублях
$period=60*60*24*2; //Время доступа, в секундах (60 секунд * 60 минут * 24 часа * 2 суток = 172800 секунд). Исчисляется от времени поступления оплаты за код доступа.
$login='demo1'; //Ваше "Имя пользователя" (логин) в системе Onpay.ru
$key='a2su3ig8y'; //Ваш "Секретный пароль для API IN" в системе Onpay.ru
/* Для того, чтобы закрыть доступ к папке, данный код необходимо размещать в индексном файле (index.php) */
$path='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; //Путь к файлу с этим кодом (определяется автоматически), например: http://onpay.ru/dir/index.php
$access=0; //Запрещаем доступ, по умолчанию (0 = доступ закрыт, 1 = доступ открыт)
$code='';
$error='';
//Функция округления для md5
function to_float($sum) {
if (strpos($sum, ".")) {$sum=round($sum,2);}
else {$sum=$sum.".0";}
return $sum;
}
/* Подключаемся к базе данных, если нажали на кнопку оплатить или ввели код доступа */
if(isset($_POST['pay']) || isset($_POST['code'])) {
$db_host='localhost'; //Хост сервера базы данных (домен или IP-адрес)
$db_user='root'; //Имя пользователя БД
$db_pass=''; //Пароль БД
$db_name='pays'; //Название базы данных
$db_tabl='payments'; //Название таблицы в которой будут храниться платежи
if(!mysql_connect($db_host, $db_user, $db_pass)) {echo 'Невозможно подключиться к серверу баз данных';exit;} //Подключение к серверу баз данных
if(!mysql_select_db($db_name)) {echo 'Не получилось выбрать базу данных '.$db_name;exit;} //Выбор базы данных
}
/* Разбираем данные, отправленные через форму*/
if(isset($_POST['pay'])) { //Если нажали на кнопку покупки кода, то генерируем код, сохраняем его в базу данных и выводим форму оплаты:
if(is_numeric($summa)) { //Если сумма введена корректно
$sql = "INSERT INTO $db_tabl SET ".
"path='$path',".
"sum='$summa',".
"payed=0,".
"date=".time().",".
"ip='".$_SERVER['REMOTE_ADDR']."';"; //Запрос в базу данных на создание новой записи
$result=mysql_query($sql); //Добавляем новую строку в базу данных
if($result) { //Если сохранено в базу данных без ошибок
$id=mysql_insert_id(); //Получаем id записи
$code=$id.substr(time(),-7); //Создаем секретный код - соединяем уникальный номер строки в базе данных (id) и последние 7 знаков текущего времени в секундах (коды доступа не должны повторяться)
$sql = "UPDATE $db_tabl SET code='$code' WHERE id='$id';"; //Запрос в базу данных, для добавления кода доступа
$result=mysql_query($sql); //Сохраняем код в базу данных
if($result) { //Если сохранено в базу данных без ошибок
$sum_for_md5=to_float($summa);
$md5check=md5("fix;$sum_for_md5;RUR;$code;yes;$key"); //Создаем проверочную строку, которая защищает платежную ссылку от изменений
$url="http://secure.onpay.ru/pay/$login?pay_mode=fix&pay_for=$code&price=$summa¤cy=RUR&convert=yes&md5=$md5check&url_success=".$path; //Формируем платежную ссылку
/*Выводим код*/
?><p style="font-size:14pt;color:blue;">Ваш код доступа: <b><?=$code; //Выводим код ?></b> (сохраните его в надежном месте)<?php
/*Выводим форму оплаты*/
?><h1><a target="_blank" href="<?=$url; //Выводим платежную ссылку ?>">Оплатить код доступа:</a></h1>
<iframe src="<?=$url; //Выводим платежную ссылку ?>" width="195" height="600" frameborder=no scrolling=no></iframe><?php
} else unset($_POST['pay']); //Удаляем элемент массива (чтобы выводилась кнопка покупки кода)
} else unset($_POST['pay']);
} else unset($_POST['pay']); //Конец условия if(is_numeric($summa)) { //Если сумма введена корректно
} elseif(isset($_POST['code'])) { //Если ввели код, то проверяем его в базе данных и если верный, то сохраняем в COOKIE
$code=intval($_POST['code']); //Код должен быть целым числом
$sql = "SELECT * FROM $db_tabl WHERE code='$code' AND path='$path' AND payed>=sum AND date>=".time().";"; //Проверка кода
$result=mysql_query($sql); //Сохраняем код в базу данных
if($result) { //Если сохранено в базу данных без ошибок
if($row=mysql_fetch_assoc($result)) { //Если в базе данных найдена строка с введенным кодом для данной директории и он не просрочен, то сохраняем код
$access=1; //Разрешаем доступ
} else $error='Введен неправильный код доступа.';
}
} //
if($access == 0) { //Если доступ запрещен, то выводим форму для покупки или ввода оплаченного кода
?><p style="font-size:14pt;font-weight:bold;">Доступ закрыт.<?php
?><p style="font-size:14pt;font-weight:bold;color:red;"><?=$error; //Выводим ошибки?><?php
if(!isset($_POST['pay'])) { //Если не выведена форма оплаты
?><form method="POST" action="<?=$path; //Выводим путь на который будет отправлена форма (на текущую страницу) ?>">
<input style="font-size:16pt;font-weight:bold;color:red;" type="submit" name="pay" value="Купить доступ до <?=date('H:i:s d.m.Y',time()+$period); //Выводим дату ?> всего за <?=$summa; //Выводим сумму ?> руб.">
</form><?php
}
?><p><form method="POST" action="<?=$path; //Выводим путь на который будет отправлена форма (на текущую страницу) ?>">
<input style="font-size:14pt;" type="text" name="code" value="<?=$code; //Выводим текущий код доступа, при его наличии ?>">
<input style="font-size:14pt;" type="submit" value="Ввести оплаченный код доступа">
</form><?php
exit; //Прекращаем выполнение скрипта и выходим
/*Все, что расположено ниже этой строки - не выводится без верного кода доступа. */
} //Конец условия if($access == 0) { if(isset($_POST['pay'])) {
?>
<h1>Доступ по коду <u><?=$row['code'];?></u> разрешен до <?=date('H:i:s d.m.Y',$row['date']);?></h1>
<p>Получено: <?=$row['payed'];?> руб.
<p>Цена продления: <?=$row['sum'];?> руб.
<p>onpay_id: <?=$row['onpay_id'];?>
<p><a href=" <?=$row['path'];?>">Секретная ссылка</a>
Автор задал на тостере вопрос: "я читал про куки но ничего не понял, дайте готовое решение что бы использовать с моим кодом"