A super easy PHP Framework for web development! https://github.com/exacti/phacil-framework
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.2 KiB

<?php
/*
* Copyright © 2021 ExacTI Technology Solutions. All rights reserved.
* GPLv3 General License.
* https://exacti.com.br
* Phacil PHP Framework - https://github.com/exacti/phacil-framework
*/
namespace Phacil\Framework;
final class Request {
public $get = array();
public $post = array();
public $cookie = array();
public $files = array();
public $server = array();
public $method;
public function __construct() {
$_GET = $this->clean($_GET);
$_POST = $this->clean($_POST);
$_REQUEST = $this->clean($_REQUEST);
$_COOKIE = $this->clean($_COOKIE);
$_FILES = $this->clean($_FILES);
$_SERVER = $this->clean($_SERVER);
$this->get = $_GET;
$this->post = $_POST;
$this->request = $_REQUEST;
$this->cookie = $_COOKIE;
$this->files = $_FILES;
$this->server = $_SERVER;
$this->method = (isset($this->server['REQUEST_METHOD'])) ? $this->clean($this->server['REQUEST_METHOD']) : false;
}
public function clean($data) {
if (is_array($data)) {
foreach ($data as $key => $value) {
unset($data[$key]);
$data[$this->clean($key)] = $this->clean($value);
}
} else {
$data = htmlspecialchars($data, ENT_COMPAT);
}
return $data;
}
public function isPOST() {
return $this->is('POST');
}
public function isGET() {
return $this->is('GET');
}
public function isHEAD() {
return $this->is('HEAD');
}
public function isPUT() {
return $this->is('PUT');
}
public function isDELETE() {
return $this->is('DELETE');
}
public function isCONNECT() {
return $this->is('CONNECT') ;
}
public function isOPTIONS() {
return $this->is('OPTIONS') ;
}
public function isTRACE() {
return $this->is('TRACE');
}
public function isPATCH() {
return $this->is('PATCH');
}
public function is($method){
return ($this->method == $method) ? true : false;
}
}