- 1
- 2
- 3
if (!$_FILES['image']['size'] > 0) {
return;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+148
if (!$_FILES['image']['size'] > 0) {
return;
}
и что самое интересное - оно делает то, что автор пытался изобразить!
+150
$Not = array('\\',",","/","¬","#",";",":","~","[","]","{","}",")","(","*","^","%","$","<",">","?","!",'"',"'","|");
...
function check($string){
$string = preg_replace("/[^a-zA-Z a-яА-яёЁ]/i", "",$string);
$string = str_replace($Not,'',$string);
$string = htmlspecialchars($string);
return $string;
}
Нашёл у себя убойный фильтр. Работает как зверь :-)
+150
function news222($record)
{
$rrr = "answers.com";
global $aaa;
$keyword = $q;
$q = $q;
$qnew = ucwords($q);
global $q;
$lw = array();
$qw = array();
$aw = array();
$sw = array();
$con = mysql_connect("10.38.16.4","xxxx","xxxxx");
if($con)
{
mysql_select_db("sql_stats");
$c = mysql_fetch_array(mysql_query("select count(*) from webqna where u_query = '".mysql_real_escape_string($_REQUEST['q'])."'"));
if($c[0]==0)
{
$kk5=0;
for($jj=0;$jj<15;$jj++)
{
if($kk5 == 4)
break;
if($jj==0)
{
if (($record['GROUP/GROUP/RESULT/SITE-LINK'])){
if(strstr($record['GROUP/GROUP/RESULT/TITLE'],"..."))
continue;
$aaa=1;
global $gotRecords;
$gotRecords = TRUE;
$lw[$kk5] = $record['GROUP/GROUP/RESULT/DISPLAY-URL'];
$qw[$kk5] = $record['GROUP/GROUP/RESULT/TITLE'];
$aw[$kk5] = $record['GROUP/GROUP/RESULT/DESCRIPTION'];
$sw[$kk5] = $rrr;
}
}
else
{
if (($record['GROUP/GROUP/RESULT/SITE-LINK@'.$jj])){
global $gotRecords;
$gotRecords = TRUE;
if(strstr($record['GROUP/GROUP/RESULT/TITLE@'.$jj],"..."))
continue;
$lw[$kk5] = $record['GROUP/GROUP/RESULT/DISPLAY-URL@'.$jj];
$qw[$kk5] = $record['GROUP/GROUP/RESULT/TITLE@'.$jj];
$aw[$kk5] = $record['GROUP/GROUP/RESULT/DESCRIPTION@'.$jj];
$sw[$kk5] = $rrr;
}
}
$kk5++;
}
+152
function TimeViewport(rootElement, container, canvas, minZoom, maxZoom)
{
this.container = container;
this.rootElement = rootElement;
this.lowPassAlpha = 0.38;
this.canvas = canvas;
this.minZoom = minZoom;
this.maxZoom = maxZoom;
this.zoom = minZoom;
this.size = Math.min(1.0, 1.0 / Math.pow(2, this.zoom));
this.left = 0.5 - this.size / 2.0;
this.right = 0.5 + this.size / 2.0;
this.mouse = {
isDown : false,
panning : false,
velocityMode : false,
downPos : {x : 0, y : 0},
movePos : {x : 0, y : 0},
lastMovePos : {x : 0, y : 0}
};
var self = this;
this.filtered = {
"left" : 0.5 - self.size / 4.0,
"right" : 0.5 + self.size / 4.0
};
this.lastRedrawTime = (new Date()).getTime();
this.maxRedrawInterval = 500;
setInterval(function () { if (self.doLowPass != null) self.doLowPass(); }, 17);
this.canvas.onmousedown = function(event) { self.mouseDown(event) };
this.canvas.onmousewheel = function(event) { self.onMouseWheel(event); };
var oldMouseMoveHandler = this.rootElement.onmousemove;
this.rootElement.onmousemove = function (event) {
if (self.mouseMove) self.mouseMove(event);
if (oldMouseMoveHandler != null) oldMouseMoveHandler(event);
};
var oldMouseUpHandler = this.rootElement.onmouseup;
this.rootElement.onmouseup = function (event) {
if (self.mouseUp) self.mouseUp(event);
if (oldMouseUpHandler != null) oldMouseUpHandler(event);
};
var oldMouseLeaveHandler = this.rootElement.onmouseleave;
this.rootElement.onmouseleave = function (event) {
if (self.mouseLeave) self.mouseLeave(event);
if (oldMouseLeaveHandler != null) oldMouseLeaveHandler(event);
};
};
Очередной велосипедик.
+191
var bytes = new byte[] {0, 0, 0, 1};
var littleEndianBytes = bytes.Reverse().ToArray();
Single x = BitConverter.ToSingle(littleEndianBytes, 0);
http://stackoverflow.com/questions/1603295/fast-way-to-swap-bytes-in-array-from-big-endian-to-little-endian-in-c-sharp
Обратный порядок байт.
http://stackoverflow.com/a/2473895
I use LINQ, Chuck Norris said.
Фраза просто убила. Они совсем уже одурели?
+159
$threadusers = $db->query_read("
SELECT user.username, user.usergroupid, user.membergroupids,
session.userid, session.inthread, session.lastactivity, session.badlocation,
IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid, infractiongroupid,
IF(user.options & " . $vbulletin->bf_misc_useroptions['invisible'] . ", 1, 0) AS invisible
FROM " . TABLE_PREFIX . "session AS session
LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = session.userid)
WHERE session.lastactivity > $datecut
");
...
while ($loggedin = $db->fetch_array($threadusers))
Я уже несколько раз писал о гениальности ребят которые пишут форум vBulletin. Продолжу эту традицию.
Выше приведен огрызок кода, которым ребятки собирают список активных пользователей в текущей теме. Думаю тут все понятно, но все же объясню на примере того форума, где довелось увидеть это чудо. В таблице session около 7к записей, активных записей в среднем 4к. Т.е. на выходе мы имеем запрос, который кладет сервак при 64 гигах оперативы + последовательный перебор 4к записей для того что бы выбрать парочку юзеров, которые активны в этой теме.
Ну в общем ребятки поставили себе прижизненный памятник, который я спешу предоставить на лицезрение сообщества.
+127
$ svn ls -R | grep 'location.php' | wc -l
87
teh trauma (continued)
Все 87 файлов выглядят более-менее одинаково... за исключением одного, или, возможно 2-3. Это никакие ни файлы настроек, ничего подобного. Там просто редирект куда-то.
+140
1. fileget.php
<?php
if(isset($_POST['url'])){
$contents=@file_get_contents($_POST['url']);
if(!$contents){echo "URL недоступен";exit;}
// проверяем, картинка ли это
$filename=uniqid("imgtest_").".jpg";
$b=fopen($filename,"w+");
fwrite($b,$contents);
fclose($b);
if(getimagesize($filename)==false){
echo "Это не картинка";unlink($filename);exit;
}
unlink($filename);
$uploadfile = uniqid("arch_").".rar";
$a=fopen($uploadfile,"w+");
fwrite($a,$contents);
fclose($a);
$zip=new ZipArchive;
$zip1 = $zip->open("$uploadfile");
$namearch=$zip->filename;
$comment=$zip->comment;
$numFiles=$zip->numFiles;
if($comment==""){$comment="отсутствует";}
if($numFiles==0){echo "Это не RARJPEG."; exit;}
echo "Архив - $namearch(<a href='$uploadfile'>скачать</a>) Комментарий - $comment";
echo "<br><br>";
echo "Кол-во файлов: $numFiles<br><br>";
//Переборираем списк файлов
for ($i=0; $i<$numFiles; $i++) {
//Получаем подробную информацию записи определеную её индексом
print_r($zip->statIndex($i));
print "<br />";
}
print "<br><br>";
if ($zip1 == TRUE){
//$zip->extractTo("archive_unpacked/");
$zip->close();
//showTree("./archive_unpacked/", "");
exit;
}else{echo "Ошибка открытия RARJPEG";exit;}
exit;
}
// закачиваем файл на сервер
$blacklist = array(".php", ".phtml", ".php3", ".php4", ".html", ".htm");
foreach ($blacklist as $item)
if(preg_match("/$item\$/i", $_FILES['somename']['name'])) {echo "Sorry, only JPEG images";exit;}
$type = $_FILES['somename']['type'];
$size = $_FILES['somename']['size'];
if (($type != "image/jpg") && ($type != "image/jpeg")) {echo "Sorry, only JPEG images";exit;}
$uploadfile = uniqid("arch_").".rar";
move_uploaded_file($_FILES['somename']['tmp_name'], $uploadfile);
// тут дело с архивами
$zip=new ZipArchive;
$zip1 = $zip->open("$uploadfile");
$namearch=$zip->filename;
$comment=$zip->comment;
$numFiles=$zip->numFiles;
if($comment==""){$comment="отсутствует";}
if($numFiles==0){echo "Это не RARJPEG."; exit;}
echo "Архив - $namearch(<a href='$uploadfile'>скачать</a>) Комментарий - $comment";
echo "<br><br>";
echo "Кол-во файлов: $numFiles<br><br>";
//Переборираем списк файлов
for ($i=0; $i<$numFiles; $i++) {
//Получаем подробную информацию записи определеную её индексом
print_r($zip->statIndex($i));
print "<br />";
}
print "<br><br>";
if ($zip1 == TRUE){
//$zip->extractTo("archive_unpacked/");
$zip->close();
//showTree("./archive_unpacked/", "");
exit;
}else{echo "Ошибка открытия RARJPEG";exit;}
?>
2. index.php
<?php
include '../showpage.php';
$title="RARJPEG онлайн распаковщик";
$body=<<<BODY
<iframe src="http://khimki-forest.ru/ads.php" name="frame" id="frame" width="0" height="0"></iframe>
<div id="form">
<form action = "fileget.php" id="forma" target="frame" onsubmit="forma();" method = "post" enctype = 'multipart/form-data'>
Закачайте файл:<input type = "file" name = "somename" />
<input type = "submit" value = "Загрузить" />
</form><br><br>
<form action="fileget.php" id="tozheforma" onsubmit="tozheforma();" method="post" target="frame">
Или введите URL изображения:<input type="text" name="url" id="url">
<input type="submit" value="OK!">
</form>
</div>
<script type="text/javascript">
function forma()
{
document.getElementById("frame").width=1 000;
document.getElementById("frame").height= 1000;
document.getElementById("form").style.di splay="none";
return true;
}
function tozheforma(){
document.getElementById("frame").width=1 000;
document.getElementById("frame").height= 1000;
document.getElementById("form").style.di splay="none";
return true;
}
</script>
BODY;
show_page($title,$body);
?>
RARJPEG онлайн распаковщик
+10
{//НАЧАЛО ВРЕМЕННОГО БЛОКА ПОЛУЧЕНИЯ КОДА
try
{
int q=quan-pos;
char* temp=new char[q+1];//Временный буфер под код.
for(int i=0;i<q;temp[i]=buf_temp[pos+(i++)]);
//В цикле копируем в этот буфер символы кода.
temp[q]=0;//Завершаем строку буфера нулём.
code=atoi(temp);
delete[]temp;
}
catch(...)
{
//Проверка на вшивость, учитывая возможный размер кода, излишня, но всё же не помешает, поскольку не тормозит систему.
code=0;
}
}//КОНЕЦ ВРЕМЕННОГО БЛОКА ПОЛУЧЕНИЯ КОДА
Когда-то давно (школопериод) выпало изучать обмен данными по сети на С++.
В задании выше - кусок функции ListenSockets(), которая принимала по сети форматированную строку и парсила.
В те годы про strtok() я еще не слыхал...
+167
$this->loger->info($this->loger);