- 1
- 2
- 3
- 4
- 5
$darray = explode('.', $_SERVER['HTTP_HOST']);
$narray = array_reverse($darray);
array_pop($narray);
$domain = implode('.',array_reverse($narray));
$this->view->domain=$domain;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+166
$darray = explode('.', $_SERVER['HTTP_HOST']);
$narray = array_reverse($darray);
array_pop($narray);
$domain = implode('.',array_reverse($narray));
$this->view->domain=$domain;
Индусы такие индусы...
+166
$lastID=chr(rand(ord('a'),ord('z'))).rand(1,9).chr(rand(ord('a'),ord('z'))).rand(1,9).rand(1,9).chr(rand(ord('a'),ord('z')));
данная строка генерирует код активации для пользователя при регистрации.
+166
$text_to_check = mysql_real_escape_string ($_GET["запрос"]);
$text_to_check = strip_tags($text_to_check);
$text_to_check = htmlspecialchars($text_to_check);
$text_to_check = stripslashes($text_to_check);
$text_to_check = addslashes($text_to_check);
$_GET["запрос"] = $text_to_check;
все защитил
+166
function getMaxDays($m, $y)
{
switch($m+1) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
$days = 31;
break;
case 4:
case 6:
case 9:
case 11:
$days = 30;
break;
default:
if($y%100==0) {
$days = 29;
} else {
$days = 28;
}
break;
}
return $days;
}
http://php.net/manual/en/function.cal-days-in-month.php
+166
for($i=0,$n=count($vars);$i<$n;$i++){
eval(' $'.$vars[$i].'=isset($_POST["'.$vars[$i].'"])? addslashes(trim($_POST["'.$vars[$i].'"])) : ""; ');
}
В недрах самописной crm)
+166
public static function isMobile()
{
$useragent = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent) ||
preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i', substr($useragent,0,4))
)
return true;
// default
return false;
}
+166
<?php $ago = time()-$time; ?>
<?php $hour = sfConfig::get('app_hour_in_seconds'); ?>
<?php $day = sfConfig::get('app_day_in_seconds'); ?>
<?php if($ago < 60): ?>
<span>less than one minute ago</span>
<?php elseif($ago < $hour): ?>
<?php $m = floor($ago/60); ?>
<span><?php echo($m); ?> minute<?php echo(($m > 1 ? 's' :'')); ?> ago</span>
<?php elseif($ago <= $day): ?>
<?php $h = floor($ago/$hour); ?>
<span><?php echo($h); ?> hour<?php echo(($h > 1 ? 's' :'')); ?> ago</span>
<?php elseif ($ago <= $day*30): ?>
<?php $d = floor($ago/$day); ?>
<span><?php echo($d); ?> day<?php echo(($d > 1 ? 's' :'')); ?> ago</span>
<?php elseif ($ago <= $day*365): ?>
<?php $m = floor($ago/$day*30); ?>
<?php $d = floor(($ago-$m)/$day); ?>
<span><?php echo($m); ?> month<?php echo(($m > 1 ? 's' :'')); ?> <?php echo($d); ?> day<?php echo(($d > 1 ? 's' :'')); ?> ago</span>
<?php else: ?>
<?php $y = floor($ago/$day*365); ?>
<?php $m = floor(($ago-$y)/$day*30); ?>
<?php $d = floor(($ago-$y-$m)/$day); ?>
<span><?php echo($y); ?> year<?php echo(($y > 1 ? 's' :'')); ?>
<?php echo($m); ?> month<?php echo(($m > 1 ? 's' :'')); ?>
<?php echo($d); ?> day<?php echo(($d > 1 ? 's' :'')); ?> ago</span>
<?php endif; ?>
Кусок кода, выводящий дату поста в формате N days N hours ago....
Кроме собственно говностиля забавляет наличие цифр 30 и 365 в коде)
+166
//Анти - XSS
function antixss() {
//Запрещенные элементы
$array = array('./' , '../' , '\'' , '<script>' , 'document.cookie' , '</script>' );
//GET
$query = $_GET;
if( sizeof($query) ) {
foreach($query AS $arr => $value) {
$clear_xss = str_replace($array , '[xss]' , $value);
$_GET[$arr] = $clear_xss;
}
}
//GET
$query = $_POST;
if( sizeof($query) ) {
foreach($query AS $arr => $value) {
$clear_xss = str_replace($array , '[xss]' , $value);
$_POST[$arr] = $clear_xss;
}
}
return true;
}
Наконец-то школьники придумали средство от XSS.
* BY LiteTracker Source
+166
#include <iostream>
using namespace std;
int main () {
for( struct {int i; long i2;} x = {1, 1};
x.i2 <= 100;
x.i++, x.i2 = x.i * x.i ) {
cout << x.i2 << endl;
}
return 0;
}
Поскольку реального ГК нет, добавлю синтетического.
NB: Под MSVC такое не пройдет. g++ - ok: http://codepad.org/JesKsnMQ
http://jia3ep.blogspot.com/2010/07/struct-in-for-loop.html
+166
// say this is some existing structure. And we want to use
// a list. We can tell it that the next pointer
// is apple::next.
struct apple {
int data;
apple * next;
};
// simple example of a minimal intrusive list. Could specify the
// member pointer as template argument too, if we wanted:
// template<typename E, E *E::*next_ptr>
template<typename E>
struct List {
List(E *E::*next_ptr):head(0), next_ptr(next_ptr) { }
void add(E &e) {
// access its next pointer by the member pointer
e.*next_ptr = head;
head = &e;
}
E * head;
E *E::*next_ptr;
};
int main() {
List<apple> lst(&apple::next);
apple a;
lst.add(a);
}
c++ страшный язык :) (часть вторая)
C++: Pointer to class data member: http://stackoverflow.com/questions/670734/c-pointer-to-class-data-member
Такие конструкции "E *E::*next_ptr;" без подготовки не осилить.