zoukankan      html  css  js  c++  java
  • 路由转发(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");
    ?>
  • 相关阅读:
    【转】使用Eclipse的几个必须掌握的快捷方式
    【原创】远景能源面试--一面
    vritualenv虚拟环境迁移
    Mysql数据库的增删改查
    Java面向对象的三大特征
    JAVA 数组
    JAVA简介
    web前端瀑布流设计分析
    华为C语言编程规范
    学生成绩管理系统1.0v 完成的学习总结
  • 原文地址:https://www.cnblogs.com/gabin/p/3927485.html
Copyright © 2011-2022 走看看