From: jason Date: Wed, 16 Apr 2008 22:24:34 +0000 (-0400) Subject: factored out to/from _raw() to binary.php fixed .htaccess for metaform X-Git-Url: https://jasonwoof.com/gitweb/?a=commitdiff_plain;h=85bb9b0d8edc94ba469ee4c225407b5d1a1ef993;hp=--cc;p=wfpl.git factored out to/from _raw() to binary.php fixed .htaccess for metaform --- 85bb9b0d8edc94ba469ee4c225407b5d1a1ef993 diff --git a/binary.php b/binary.php index bc0a3aa..51f44f8 100644 --- a/binary.php +++ b/binary.php @@ -44,4 +44,25 @@ function pop_int(&$string) { return $int; } +# convert an array (not hash) to a string of bytes +function array_to_raw($data) { + $ret = to_raw_int(count($data)); + foreach($data as $dat) { + $ret .= to_raw_int(strlen($dat)); + $ret .= $dat; + } + return $ret; +} + +function raw_to_array($data) { + $header_count = pop_int($data); + $ret = array(); + while($header_count--) { + $size = pop_int($data); + $ret[] = substr($data, 0, $size); + $data = substr($data, $size); + } + return $ret; +} + ?> diff --git a/fdb.php b/fdb.php index a9bb59f..30c7798 100644 --- a/fdb.php +++ b/fdb.php @@ -47,28 +47,6 @@ function fdb_get_dir() { return $GLOBALS['fdb_dir']; } -# return a 4 bytes that represent the passed integer as a big-endian binary number -function to_raw_int($int) { - return chr($int >> 24) . chr(($int >> 16) & 0xff) . chr(($int >> 8) & 0xff) . chr($int & 0xff); -} - -# return a php number from the string you pass in. The first 4 bytes of the -# string are read in as a binary value in big-endian format. -function from_raw_int($quad) { - return (ord(substr($quad, 0, 1)) << 24) + (ord(substr($quad, 1, 1)) << 16) + (ord(substr($quad, 2, 1)) << 8) + ord(substr($quad, 3, 1)); -} - -function int_at($string, $index) { - return from_raw_int(substr($string, $index * 4, 4)); -} - -# remove the first 4 bytes of the string, and return them as an int -function pop_int(&$string) { - $int = from_raw_int(substr($string, 0, 4)); - $string = substr($string, 4); - return $int; -} - function fdb_fix_key($key) { $key = ereg_replace('[^a-z0-9.-]', '_', strtolower($key)); @@ -94,14 +72,7 @@ function fdb_geta($key) { if($data === false) { return false; } - $header_count = pop_int($data); - $out = array(); - while($header_count--) { - $size = pop_int($data); - $out[] = substr($data, 0, $size); - $data = substr($data, $size); - } - return $out; + return raw_to_array($data); } # returns: @@ -130,12 +101,7 @@ function fdb_set($key, $data) { if(!is_array($data)) { $data = array($data); } - $out = to_raw_int(count($data)); - foreach($data as $dat) { - $out .= to_raw_int(strlen($dat)); - $out .= $dat; - } - fdb_set_raw($key, $out); + fdb_set_raw($key, array_to_raw($data)); } function fdb_delete($key) { diff --git a/file_run.php b/file_run.php index e177797..d69b5b6 100644 --- a/file_run.php +++ b/file_run.php @@ -40,7 +40,9 @@ function file_run($filename) { require_once($filename); $func = basename($filename, '.php') . '_main'; - return $func(); + if(function_exists($func)) { + return $func(); + } } ?> diff --git a/metaform/htaccess b/metaform/htaccess index 30e6afd..1e7df36 100644 --- a/metaform/htaccess +++ b/metaform/htaccess @@ -1,4 +1,4 @@ php_flag magic_quotes_gpc off RewriteEngine on -RewriteRule ^$ /run.php +RewriteRule ^$ /~form~/run.php RewriteRule ^[^/]*\.html$ /~form~/run.php diff --git a/session.php b/session.php index 4bbaea9..1ac709c 100644 --- a/session.php +++ b/session.php @@ -74,7 +74,7 @@ function session_new($length = 86400) { } # call to renew the timeout for the session. -# assumes there's a session. call session_init() if you'd like one auto-create one if not found. +# assumes there's a session. call init_session() if you'd like one auto-create one if not found. function session_touch($length = false) { if(!$length) { $length = db_get_value('wfpl_sessions', 'length', 'where id=%i', $GLOBALS['session_id']);