-
Notifications
You must be signed in to change notification settings - Fork 0
/
http.php
78 lines (74 loc) · 1.72 KB
/
http.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
set_sgs(array("get" => $_GET, "post" => $_POST, "request" => $_REQUEST, "cookie" => $_COOKIE, "server" => $_SERVER));
function set_sgs($arr)
{
foreach($arr as $sg=>$superglobal)
{
global $http_reqarrs;
global $_globals;
$pairs = array();
foreach($superglobal as $k=>$v)
{
if(is_array($v))
{
$val = array();
foreach($v as $_k=>$_v)
{
$str = F_String::__from_string($_v);
$str->F_taint(NULL);
$val[] = F_Array::__from_array(array(F_Symbol::__from_string($_k), $str));
}
}
else
{
$val = F_String::__from_string($v);
$val->F_taint(NULL);
}
$pairs[] = F_Array::__from_array(array(F_Symbol::__from_string($k), $val));
}
$_globals['F_' . $sg] = F_Hash::__from_pairs($pairs);
}
}
class F_HttpSession extends F_Object
{
public function __operator_arrayget($block, $key)
{
@session_start();
$k = $key->F_to_s(NULL)->__STRING;
if(!isset($_SESSION[$k]))
return new F_NilClass;
return $_SESSION[$k];
}
public function __operator_arrayset($block, $key, $val)
{
@session_start();
$_SESSION[$key->F_to_s(NULL)->__STRING] = $val;
return $val;
}
public function F_delete($block, $key)
{
unset($_SESSION[$key->F_to_s(NULL)->__STRING]);
return new F_NilClass;
}
public function F_regenerate_id($block)
{
return F_TrueClass::__from_bool(session_regenerate_id());
}
public function F_id($block)
{
if(session_id() === '')
return new F_NilClass;
return F_String::__from_string(session_id());
}
public function F_id__set($block, $val)
{
session_id($val->F_to_s(NULL)->__STRING);
return $val;
}
public function F_destroy_EXCL_($block)
{
session_destroy();
return new F_NilClass;
}
}
$GLOBALS['_globals']['F_session'] = new F_HttpSession;