reasonableframework/route/webapp.php

101 lines
2.2 KiB
PHP
Raw Normal View History

2019-02-22 18:15:06 +00:00
<?php
2019-02-22 21:37:33 +00:00
/**
* @file webapp.php
* @date 2019-02-23
* @author Go Namhyeon <gnh1201@gmail.com>
* @brief Compatible for legacy applications
*/
2019-02-22 21:49:43 +00:00
loadHelper("isemail.lnk");
2019-02-22 20:07:04 +00:00
if(!defined("_DEF_RSF_")) set_error_exit("do not allow access");
2019-02-22 21:37:33 +00:00
// Protect GET method
foreach($_GET as $k=>$v) {
$_GET[$k] = get_requested_value($k, "_GET");
}
// Protect POST method
foreach($_POST as $k=>$v) {
$_POST[$k] = get_requested_value($k, "_POST");
}
// Protect REQUEST(ALL) method
foreach($_REQUEST as $k=>$v) {
$_REQUEST[$k] = get_requested_value($k, "_ALL");
}
2019-02-22 22:36:14 +00:00
// get self filename
$self_filename = "";
2019-02-22 21:49:43 +00:00
2019-02-22 21:37:33 +00:00
// get routes
2019-02-22 18:15:06 +00:00
$routes = read_route_all();
2019-02-22 21:37:33 +00:00
// set path and URL
$webapp_root = $_SERVER["DOCUMENT_ROOT"] . "webapp";
$webapp_url = base_url() . "webapp";
// set DOCUMENT_ROOT forcely
$_SERVER["DOCUMENT_ROOT"] = $webapp_root;
// set file path
$appfile = $webapp_root . "/" . implode("/", $routes);
$appfile_path = $appfile . ".php";
// get end of routes
$is_static_file = false;
$is_redirect_to_index = false;
$end_route = end($routes);
$end_routes_attributes = explode(".", $end_route);
2019-02-22 22:36:14 +00:00
$end_fra = $end_routes_attributes[0];
2019-02-22 21:37:33 +00:00
$end_era = end($end_routes_attributes);
if($end_era == "php" || file_exists($appfile_path)) {
$appfile_path = str_replace(".php.php", ".php", $appfile_path);
if(file_exists($appfile_path)) {
include($appfile_path);
2019-02-22 22:36:14 +00:00
$self_filename = $end_fra . ".php";
2019-02-22 21:37:33 +00:00
} else {
set_error("Webapp 404 Not Found");
show_errors();
}
2019-02-22 20:07:04 +00:00
} else {
2019-02-22 21:37:33 +00:00
if(file_exists($appfile . "/index.php")) {
$appfile .= "/index.php";
if(empty($end_era)) {
include($appfile);
2019-02-22 20:07:04 +00:00
} else {
2019-02-22 21:37:33 +00:00
$is_redirect_to_index = true;
2019-02-22 20:07:04 +00:00
}
2019-02-22 21:37:33 +00:00
} elseif(file_exists($appfile . "/index.html")) {
$is_static_file = true;
$appfile .= "/index.html";
if(empty($end_era)) {
2019-02-22 20:30:35 +00:00
$end_era = "html";
} else {
2019-02-22 21:37:33 +00:00
$is_redirect_to_index = true;
2019-02-22 20:30:35 +00:00
}
2019-02-22 21:37:33 +00:00
} else {
$is_static_file = true;
2019-02-22 20:30:35 +00:00
}
2019-02-22 21:37:33 +00:00
}
2019-02-22 20:30:35 +00:00
2019-02-22 21:37:33 +00:00
if($is_redirect_to_index == true) {
redirect_uri(base_url() . implode("/", $routes) . "/");
exit;
}
if($is_static_file == true) {
if(file_exists($appfile)) {
2019-02-22 20:30:35 +00:00
set_header_content_type($end_era);
2019-02-24 14:32:43 +00:00
2019-02-24 14:34:03 +00:00
$fp = fopen($appfile, "r") or die("file does not exists");
2019-02-24 14:32:43 +00:00
while(!feof($fp)) {
echo fread($fp, 8192);
}
2019-02-22 20:07:04 +00:00
fclose($fp);
2019-02-22 21:37:33 +00:00
} else {
echo "File Not Found";
2019-02-22 20:07:04 +00:00
}
2019-02-22 18:15:06 +00:00
}