Система рейтингов — по большей части ерунда, скажу по секрету. Я сам, когда написал свою первую гостевую на файлах, рассовал во все каталоги, до которых смог дотянутся, следил за рейтингами/комментариями. Ну так смысл в том, что рейтинги там кодеры-самоучки чаще всего сами себе накручивают (я не накручивал, честно) =)
Раньше я тоже постоянно зависал на таких сайтах, скачивал скрипты, учился. По позже пришло понимание, что большинство из них глючные и ужасно написаные, ибо писались не профессионалами. Сейчас я предпочту изобрести качественный велосипед, а потом всю коллекцию как-нибудь выложить в блоге.
Хм… Может быть я не конца вник, но вроде бы на вконтакте просто в кучу смешаны переменные из GET и POST запросов — из-за этого такое поведение и стало возможным. А в остальном вы, конечно, правы, надо бороться.
Если человек не знает, как из алгоритма сложности O(n*n) сделать O(n*log n) — не беда, научится. А если не хочет учиться, то ничего ему и не светит. По моему, прозрачная логика :-)
Я использую для этих целей вот такой код:
if(ini_get('register_globals')) {
$superglobals = array($_SERVER, $_ENV, $_FILES, $_COOKIE, $_POST, $_GET);
if(isset($_SESSION)) array_unshift($superglobals, $_SESSION);
foreach($superglobals as $superglobal) {
foreach($superglobal as $global => $value) {
$GLOBALS[$global] = null; // This is NOT paranoid because
unset($GLOBALS[$global]); // unset may not work
}
}
@ini_set('register_globals', false);
} else {
/**
* Otherwise, just unset HTTP_*_VARS arrays
*/
$GLOBALS['HTTP_GET_VARS'] = $GLOBALS['HTTP_POST_VARS'] = $GLOBALS['HTTP_POST_FILES'] = $GLOBALS['HTTP_COOKIE_VARS'] = $GLOBALS['HTTP_SERVER_VARS'] = $GLOBALS['HTTP_ENV_VARS'] = null;
unset($GLOBALS['HTTP_GET_VARS'], $GLOBALS['HTTP_POST_VARS'], $GLOBALS['HTTP_POST_FILES'], $GLOBALS['HTTP_COOKIE_VARS'], $GLOBALS['HTTP_SERVER_VARS'], $GLOBALS['HTTP_ENV_VARS']);
}
Он, кроме того, очищает $HTTP_*_VARS массивы (они создавались в ранних версиях php, если включена какая-то там директива).
А абсолютная анонимность развращает абсолютно.
А про идиотов… Ну, что-то типа:
I'm not saying there should be a capital punishment for stupidity, but why don't we just take the safety labels off of everything and let the problem solve itself?
© bash.org
=)