路由转发(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 ...
随机推荐
- DOM不同的结点类型
1)node类型 nodeName(what node) and nodeValue(always null) node父子之间可以用childNodes来表示 firstChild,childNod ...
- jQuery对下拉框、单选框、多选框的处理
下拉框: //得到下拉菜单的选中项的文本(注意中间有空格) var cc1 = $(".formc select[@name='country'] option[@selected]&quo ...
- stack适配栈
#include <stack> stack<int> s; s.empty() 如果栈为空,则返回 true,否则返回 stack s.size() 返回栈中元素的个数 s. ...
- 关于Linux平台malloc的写时拷贝(延迟分配)【转】
Linux内核定义了“零页面”(内容全为0的一个物理页,且物理地址固定),应用层的内存分配请求,如栈扩展.堆分配.静态分配等,分配线性地址后,就将页表项条目指向“零页面”(指定初始值的情况除外),这样 ...
- pfsense下的流量管理(转)
http://www.pppei.net/blog/post/331 在作流量管理时,这些概念很重要,不要迷失.. 这里再对Limiter 的源地址和目的地址做个说明,因为limiter是被应用在La ...
- POJ 1755 Triathlon
http://poj.org/problem?id=1755 题意:铁人三项,每个人有自己在每一段的速度,求有没有一种3条路线长度都不为0的设计使得某个人能严格获胜? 我们枚举每个人获胜,得到不等式组 ...
- LeetCode_Combination Sum II
Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in ...
- 常用的Windows批处理
切换执行路径 如果不换盘的话:cd xxx换盘:cd /d xxx 获取当前日期 编写Windows批处理时经常会需要使用到日期和时间作为文件名,所以是非常重要的. 如何获取日期呢?格式: ...
- Qt编程之对QGraphicsItem点击右键弹出菜单
就是对这个contextMenuEvent 事件重新实现,在这个事件函数中创建菜单,大概就是这样. void MyItem::contextMenuEvent(QGraphicsSceneContex ...
- zabbix 对于logstash告警连续发邮件
打上勾就行