-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathHTTP.php
More file actions
136 lines (117 loc) · 3.25 KB
/
Copy pathHTTP.php
File metadata and controls
136 lines (117 loc) · 3.25 KB
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?php
/**
* Created by PhpStorm.
* User: galych
* Date: 03.02.15
* Time: 12:57
*/
namespace Mirage;
class HTTP {
static $default_controller = "home";
static $controller;
static $default_action = "index";
static $action;
static $uri;
static $cms = false;
static $cms_action;
static $page = 1;
static $link = [];
static $link_index = [];
static $page_localisation = "page";
static public function setRouting() {
$input_url = current(explode("?", strtolower($_SERVER['REQUEST_URI']))); //clean string from ?params
self::$uri = trim($input_url, '/');
$links = explode("/", self::$uri);
self::$controller = isset($links[0]) ? $links[0] : self::$default_controller;
array_shift($links);//removing controller name
self::$action = isset($links[0]) ? $links[0] : self::$default_action;
if(self::$cms) {
self::$cms_action = isset($links[1]) ? $links[1] : false;
array_shift($links);//removing cms action name
}
//check if last section is page, and store it in static vars
if (preg_match('/' . self::$page_localisation . '-(?P<page>\d+)/', end($links), $matches)) {
self::$page = $matches['page'];
}
foreach ($links as $key => $value) {
if($key%2 == 0) {
self::$link[$value] = isset($links[$key+1]) ? $links[$key+1] : "";
}
self::$link_index[] = $links[$key];
}
}
static public function get($id) {
return isset($_GET[$id]) ? $_GET[$id] : false;
}
static public function post($id) {
return isset($_POST[$id]) ? $_POST[$id] : false;
}
static public function postAll($decoded = false) {
$vals = $_POST;
if($decoded && $vals) {
foreach ($vals as $key => $value) {
$vals[$key] = urldecode($value);
}
}
return !empty($vals) ? $vals : false;
}
static public function cookie($id) {
return isset($_COOKIE[$id]) ? $_COOKIE[$id] : false;
}
static public function request($id) {
return isset($_REQUEST [$id]) ? $_REQUEST [$id] : false;
}
static public function param($id) {
return isset(self::$link[$id]) ? self::$link[$id] : false;
}
static public function index($id){
return isset(self::$link_index[$id]) ? self::$link_index[$id] : null;
}
static public function redirect($path = false, $code = 301) {
$path = !empty($path) ? $path : $_SERVER['REQUEST_URI'];
http_response_code($code);
header("Location: " . $path);
flush();
exit();
}
static public function val($name, $default = false) {
if( isset($_POST[$name]) ){
return $_POST[$name];
} elseif( isset($_GET[$name]) ){
return $_GET[$name];
} elseif( isset($_SESSION[$name]) ){
return $_SESSION[$name];
} elseif( isset(self::$link[$name]) && self::$link[$name] ) {
return self::$link[$name];
} else {
return $default;
}
}
static public function getAllValsDecoded() {
if( $_POST ){
$vals = $_POST;
} elseif( $_GET ){
$vals = $_GET;
} elseif (isset(self::$link)) {
$vals = self::$link;
} else {
$vals = false;
}
if($vals) {
foreach ($vals as $key => $value) {
$vals[$key] = urldecode($value);
}
}
return $vals;
}
static public function ip() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
}