路由转发(curl)
<?php
ini_set('memory_limit', '640M');
ini_set('default_charset', 'utf-8');
define('webroot', 'http://' . $_SERVER['HTTP_HOST']. substr($_SERVER['PHP_SELF'], 0, strpos($_SERVER['PHP_SELF'], '/', 0)) . '/');
// m 模块 c 子模块 a 类 v 视图
$m = $_GET["m"] ? $_GET["m"] : $_POST["m"];
$c = $_GET["c"] ? $_GET["c"] : $_POST["c"];
$a = ($_GET["a"] ? $_GET["a"] : $_POST["a"]);
$a = $a ? $a . '.class' : $a;
$a = $_GET["v"] ? $_GET["v"] : ($_POST["v"] ? $_POST["v"] : $a);
session_start();
$_SESSION['action'] = $c;
if (!$a) {
// 已登录跳转
if ($_SESSION['admin']) $a = 'main';
else $a = 'login';
}
if ($_GET && $_GET['id']) $url = "$m/$c/$a.php?id=".$_GET['id'];
else $url = "$m/$c/$a.php";
$ch = curl_init(); //初始化
if (strrpos($url, 'logout.php') > -1) {
session_destroy();
$url = 'login.php';
}
if ($_GET) {
$url .= $_SERVER['REQUEST_URI'];
}
// post数据转发
if ($_POST) {
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$_POST);
header("Content-Type:application/json;charset='utf-8'");
}
// 获取访问页面
curl_setopt($ch, CURLOPT_URL, webroot . "$url"); //你要访问的页面
// 在转发页面无法正常使用session,写入了cookie
curl_setopt($ch, CURLOPT_COOKIE, 'name=' . $_SESSION['admin'] . ';action=' . $_SESSION['action']);
//是否显示内容,不清楚为什么0才是显示
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_exec($ch); //执行
curl_close($ch); //返回关闭
//header("location:$url");
?>
路由转发(curl)的更多相关文章
- LVS 集群与存储《路由转发》
LVS 集群与存储<路由转发> 集群简介 u 什么是集群 • 一组通过高 ...
- 网络-数据包在路由转发过程中MAC地址和IP地址,变与不变
关于MAC地址和IP地址在传输过程中变与不变的问题: 结论:MAC地址在同一个广播域传输过程中是不变的,在跨越广播域的时候会发生改变的:而IP地址在传输过程中是不会改变的(除NAT的时候),总结为 路 ...
- 转:数据包经由路由转发时源、目的IP地址及MAC地址变化情况
数据包经由路由转发时源.目的IP地址及MAC地址变化情况. IP数据包经由路由转发的时候源ip,目的ip,源MAC,目的mac是否发生改变,如何改变? A—–(B1-B2)—–(C1-C2)—— ...
- 使用linux系统做路由转发
使用linux系统(PC机)做路由转发 关键字:linux,Fedora,route,iptables,ip_forward 最近做网络实验,在实验过程中需要用到linux的转发功能,但是遇到一些问题 ...
- 基于嵌入式linux路由转发功能的实现
环境 arm7开发板, uclinux系统,kernel version: linux-2.4.x arm芯片的单网卡双网口设备,eth0 WAN口 ipaddr 192.168.9.61 eth0: ...
- 前端跨域问题的总结&&nodejs 中间层的路由转发
前后端交互的时候,跨域是避不开的问题. 总结就是如下: 1.Cors 我在做前后端分离的时候,会采用cors 的方法:便于其他源的调用接口,这个可以设置成任意的源头,也可以允许指定的源头. 下面的是n ...
- (转)Linux开启路由转发功能
原文:https://www.linuxidc.com/Linux/2016-12/138661.htm 标记一下,今天想让一台Red Hat Enterprise Linux 7开通iptables ...
- Zuul路由转发规则
定制的路由规则的主要功能: 1.路由表中包含源路径,微服务名称,目标路径 2.Endpoint粒度配置支持 3.路由支持1对1精确路由 4.源路径可以前缀/**格式来模糊路由 5.目标路径可以使用前缀 ...
- django路由转发
一.路由转发 通常,我们会在每个app里,各自创建一个urls.py路由模块,然后从根路由出发,将app所属的url请求,全部转发到相应的urls.py模块中. 例如,下面是Django网站本身的UR ...
随机推荐
- 在eclipse中对于java的操作
1. 新建project new project --> java project -->input the name of the project and choose the jre ...
- 一个小玩具:NDK编译SDL的例子
NDK编译SDL 准备: 硬件 一台电脑,实验在Lenovo T430上 一个Android设备,实验在 三星S3/A7 编译环境: Ubuntu 14.04 (ant\java等命令必须支持) 工具 ...
- uva 10370 - Above Average
#include <iostream> #include <cstdio> using namespace std; int main() { unsigned C, N, t ...
- window下Slik SVN的安装配置
我相信各位都应该对SVN不会陌生吧,我相信绝大多数人都使用过,但是并不是人人都自己配置过SVN服务器.下面就是我配置SVN服务器的步骤,以及在配置过程中碰见的一些问题,在此记录,希望对你有所帮助. 安 ...
- Mysql创建函数出错
目前在项目中,执行创建mysql的函数出错, mysql 创建函数出错信息如下: Error Code: 1227. Access denied; you need (at least one of) ...
- 给大家推荐几款OSX上非常好工具(针对程序员)
前两天,在App Store无意中发现几款免费工具,感觉非常好用,推荐给大家,希望大家喜欢. 一个是帮助文档管理软件,Dash.以前在Windows上开发,经常要自己搜集一些手册,文档,什么html手 ...
- Android应用程序插件化研究之AssertManager
最近在研究Android应用的插件化开发,看了好几个相关的开源项目.插件化都是在解决以下几个问题: 如何把插件apk中的代码和资源加载到当前虚拟机. 如何把插件apk中的四大组件注册到进程中. 如何防 ...
- 2015第19周三小众app
今天搜集下个人知道好玩的小众app: 1.开眼每日推荐5个小视频,世界那么大,一起来看看吧. 2.懒人周末周末去哪了?简洁美观 3.LOFTER 网易良心出品. 4.玩儿去 发现很多很多好玩的去处 5 ...
- bzoj1786
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1786 刚看上去觉得挺吓人的...... 冥冥之中我的内心深处告诉我填进去的数一定是非严格递增的 ...
- TableView 校检表
这俩天学习了tableView 校检表 主要就是通过一个方法来跟踪当前选中的行.下面将声明一个NSIndexPath 的属性来跟踪最后选中的行.这篇文章希望能给那些初学者带来学习的乐趣.不说了直接上代 ...