- 1
--
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+144
--
--
+158
<!DOCTYPE html>
<html>
<head>
<title>Pixel Farm</title>
</head>
<body>
<script type="text/javascript">
function sc(name, val, endh) {
var exdate = new Date;
endh = exdate.getHours() + endh;
exdate.setHours(endh);
document.cookie = name + "=" + escape(val) + (endh === null ? "" : ";expires=" + exdate.toGMTString() + ";path=/;");
}
</script>
<script type="text/javascript">
var am_lo = function () {
try {
return "localStorage" in window && window["localStorage"] !== null;
} catch (e) {
return false;
}
};
if (document.cookie.indexOf("uid") === -1) {
if (am_lo()) {
var am_lo_uid = localStorage.getItem("uid");
if (am_lo_uid === null) {
am_lo_uid = "5fdf30844eb1823f23ff34a742719b01";
localStorage.setItem("uid", am_lo_uid);
}
} else {
var am_lo_uid = "5fdf30844eb1823f23ff34a742719b01";
}
var exdate = new Date;
exdate.setDate(exdate.getDate() + 30);
document.cookie = "uid=" + am_lo_uid + ";expires=" + exdate.toGMTString() + ";path=/;domain=.am15.net;";
}
</script><script type="text/javascript" src="//px10.net/c.php"></script><img src="http://sync2.adsniper.ru/?src=a1" width="1" height="1" /><img src="http://advm.upstats.ru/" width="1px" height="1px" alt="" /><img src="http://advm.upstats.ru/b/" width="1px" height="1px" alt="" />
<script type="text/javascript">
function AdvMakerMyragon(r) {
/* var myr4i=document.createElement("img");
myr4i.src="//w16.am15.net/x/log.php?action=myr4&content="+JSON.stringify(r);
document.body.appendChild(myr4i);*/
if (r[0]) {
if (r[0].reply === "positive") {
var exdate = new Date;
exdate.setMinutes(exdate.getMinutes() + 180);
var k = parseInt(r[0].price_id);
// document.cookie = "myragon_" + k + "=1;expires=" + exdate.toGMTString() + ";path=/;domain=.am15.net;";
// document.cookie = "myragon_" + k + "=1;expires=" + exdate.toGMTString() + ";path=/;domain=am15.net;";
var name="myragon_" + k;
sc(name, 1, 1);
if (k == 4){
var myr4=document.createElement("script");
myr4.type="text/javascript";
myr4.src="//am15.net/x/myragon.php";
document.body.appendChild(myr4);
}
}
}
}
</script>
<script src="http://t02.rbnt.org/rsc.php?mode=bu&pkey=ffd3337d72b61dd75b3b95f59f9c85be&scr=1&p=advmaker&callback=AdvMakerMyragon&sitename=3517" type="text/javascript"></script><img src="//ad.dumedia.ru/advmaker/pixel" width="1" height="1" alt="" />
<img src="http://luxup.ru/cmrk/5/?clickunder_url=http%3A%2F%2Fam15.net%2Fx%2Fadlabs.php" width="1" height="1" /></body>
</html>
это собственно та самая хрень которая перенаправляет на всякие "полезные" подписки на 3жы модемах мегафон.
оно у меня вылезает даже на говнокоде, но в сорцах страниц такого нет, пхп гуру, откуда оно берется и кого бить за эту хрень?
+153
// строка 139
$parts = explode('@',self::$callbacks[$pos]);
$file = strtolower('app/controllers/'.$parts[0].'.php');
//try to load and instantiate model
if(file_exists($file)){
require $file;
}
//grab all parts based on a / separator
$parts = explode('/',self::$callbacks[$pos]);
//collect the last index of the array
$last = end($parts);
//grab the controller name and method call
$segments = explode('@',$last);
//instanitate controller
$controller = new $segments[0]();
$params = count($matched);
//call method and pass any extra parameters to the method
switch ($params) {
case '0':
$controller->$segments[1]();
break;
case '1':
$controller->$segments[1]($matched[0]);
break;
case '2':
$controller->$segments[1]($matched[0],$matched[1]);
break;
case '3':
$controller->$segments[1]($matched[0],$matched[1],$matched[2]);
break;
case '4':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3]);
break;
case '5':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3],$matched[4]);
break;
case '6':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3],$matched[4],$matched[5]);
break;
case '7':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3],$matched[4],$matched[5],$matched[6]);
break;
case '8':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3],$matched[4],$matched[5],$matched[6],$matched[7]);
break;
case '9':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3],$matched[4],$matched[5],$matched[6],$matched[7],$matched[8]);
break;
case '10':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3],$matched[4],$matched[5],$matched[6],$matched[7],$matched[8],$matched[9]);
break;
}
// ...
Вот так SimpleMVCFramework передает аргументы контролеру *facepalm*
+18
#include <iostream>
#include <memory>
#include <mutex>
#include <condition_variable>
#include <atomic>
typedef ::std::unique_lock<::std::mutex> TLock;
using namespace std;
template<typename T>
class TQueueElement
{
public:
T _data;
std::shared_ptr<TQueueElement<T> > _prev;
mutable ::std::mutex _lockElem;
public:
TQueueElement(T data):_data(data),_prev(nullptr){};
virtual ~TQueueElement(){};
};
template<typename T>
class TQueue
{
private:
mutable ::std::mutex _lockHead;
mutable ::std::mutex _lockTail;
::std::condition_variable _pushToQueue;
std::atomic<bool> _isEmpty;
std::shared_ptr<TQueueElement<T> > _tail;
std::shared_ptr<TQueueElement<T> > _head;
public:
TQueue():_lockHead(),_isEmpty(true){};
virtual ~TQueue(){};
///получаем элемент из очереди
T pop()
{
TLock lock(_lockTail);//блокируем все получения из очереди
if (_tail==nullptr)
{_isEmpty=true; _pushToQueue.wait(lock,[this](){return !_isEmpty;});} //если очередь пуста ожидаем пока в ней чтото появиться
{
TLock lockTail(_tail->_lockElem); //блокируем последний элемент в очереди возможно к нему попробуют обратиться во время запихивания в очередь
auto data=_tail->_data;
_tail=_tail->_prev;
return data;
}
}
void push(T data)
{
auto el=std::shared_ptr<TQueueElement<T> >(new TQueueElement<T>(data));//заранее создаем элемент очереди
TLock lock(_lockHead);
if (_isEmpty)//если очередь пуста говорим что наш элемент пока первый и последний
{
_head=el;
_tail=el;
_isEmpty=false;
_pushToQueue.notify_all();
}else//если очередь не пуста
{
{
TLock lockHead(_head->_lockElem); //блокируем голову от возможного обращения с хвоста
_head->_prev=el; //выставляем ссылку на новую голову у старой
}
_head=el;//выставляем новую голову
}
}
};
int main() {
TQueue<int> q;
q.push(7);
q.pop();
// your code goes here
return 0;
}
https://ideone.com/uGX56M
Ничего не забыл ? Пытался написать очередь для межпоточной синхронизации.
+26
private:
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGenerator);
Корпорация добра.
+157
class WP_Post {
public static function get_instance( $post_id ) {
...
}
public function __construct( $post ) {
foreach ( get_object_vars( $post ) as $key => $value )
$this->$key = $value;
}
Вордпресс 3.9.1. Создать объект можно только из объекта. Ну или передав айдишник записи (что само по себе еще логично), но называется эта хуйня почему-то get_instance(), словно это синглтон.
+159
function redirect(){
setTimeout("redirect1();", 60000)
}
function redirect1(){
if(parent.lan_ipaddr == "192.168.1.1")
if(navigator.appName.indexOf("Microsoft") >= 0){
parent.location.reload();
//parent.location.href = "http://192.168.1.1/index.asp?t="+new Date().getTime();
}
else{
//parent.location.href = "http://192.168.1.1/";
parent.parent.location.href = parent.parent.location.href;
}
else{
parent.$('drword').innerHTML = "<#Setting_factorydefault_iphint#><br/>";
setTimeout("parent.hideLoading()",1000);
setTimeout("parent.dr_advise();",1000);
}
}
Решил тут посмотреть сорцы вебморды роутера
+135
public static List<string[]> Compose(List<string> list_eng, List<string> list_tar, string divider = ";")
{
List<string[]> composed = new List<string[]>();
for (int i = 0; i < list_eng.Count - 1; i++)
{
string[] tokens = new string[3];
string[] temp = list_eng[i].Split(new string[] { divider }, StringSplitOptions.None);
if (temp.Length != 2)
{
Console.WriteLine("1." + i + " : expected 2 tokens, found " + temp.Length);
continue;
}
tokens[0] = temp[0];
tokens[1] = temp[1];
composed.Add(tokens);
}
for (int i = 0; i < list_tar.Count - 1; i++)
{
string[] tokens = list_tar[i].Split(new string[] { divider }, StringSplitOptions.None);
if (tokens.Length != 2)
{
Console.WriteLine("2." + i + " : expected 2 tokens, found " + tokens.Length);
continue;
}
int eq = composed.FindIndex(a => a[0] == tokens[0]);
if (eq == -1)
continue;
else
composed[eq][2] = tokens[1];
}
return composed;
}
Парсит csv в колонки.
+134
IEventDetails evt = logger.GetEvent((Int32)((Object[])msg.ID)[0], (Int64)((Object[])msg.ID)[1]);
Нашёл свой код бородатой давности в одном решении, в котором присутсвует дедлок, а лезть в код не хотелось.
Вот теперь думаю, ковырять компонент дальше или пусть себе с дедлоком живёт.....
+14
std::string MakeString(const char* ch)
{
stringstream ss;
for (int i = 0; i < strlen(ch); i++) {
ss<<ch[i];
}
string result = ss.str();
return result;
}
Создание строки