$name, 'expire' => $expire); debug_event('Core', "Registered $type form $name with SID $sid and expiration $expire ($window seconds from now)", 5); switch ($type) { default: case 'post': $string = ''; break; case 'get': $string = $sid; break; } // end switch on type return $string; } // form_register /** * form_verify * * This takes a form name and then compares it with the posted sid, if * they don't match then it returns false and doesn't let the person * continue */ public static function form_verify($name, $type = 'post') { switch ($type) { case 'post': $sid = $_POST['form_validation']; break; case 'get': $sid = $_GET['form_validation']; break; case 'cookie': $sid = $_COOKIE['form_validation']; break; case 'request': $sid = $_REQUEST['form_validation']; break; } if (!isset($_SESSION['forms'][$sid])) { debug_event('Core', "Form $sid not found in session, rejecting request", 2); return false; } $form = $_SESSION['forms'][$sid]; unset($_SESSION['forms'][$sid]); if ($form['name'] == $name) { debug_event('Core', "Verified SID $sid for $type form $name", 5); if ($form['expire'] < time()) { debug_event('Core', "Form $sid is expired, rejecting request", 2); return false; } return true; } // OMG HAX0RZ debug_event('Core', "$type form $sid failed consistency check, rejecting request", 2); return false; } // form_verify /** * image_dimensions * This returns the dimensions of the passed song of the passed type * returns an empty array if PHP-GD is not currently installed, returns * false on error */ public static function image_dimensions($image_data) { if (!function_exists('ImageCreateFromString')) { return false; } $image = ImageCreateFromString($image_data); if (!$image) { return false; } $width = imagesx($image); $height = imagesy($image); if (!$width || !$height) { return false; } return array('width'=>$width,'height'=>$height); } // image_dimensions /* * is_readable * * Replacement function because PHP's is_readable is buggy: * https://bugs.php.net/bug.php?id=49620 */ public static function is_readable($path) { if (is_dir($path)) { $handle = opendir($path); if ($handle === false) { return false; } closedir($handle); return true; } $handle = fopen($path, 'rb'); if ($handle === false) { return false; } fclose($handle); return true; } } // Core ?>