示例#1
0
文件: Http.php 项目: 446244451/zphp
 /**
  * 直接 parse $_REQUEST
  * @param $_data
  * @return bool
  */
 public function parse($data)
 {
     $this->_ctrl = Config::getField('project', 'default_ctrl_name', 'main\\main');
     $this->_method = Config::getField('project', 'default_method_name', 'main');
     $apn = Config::getField('project', 'ctrl_name', 'a');
     $mpn = Config::getField('project', 'method_name', 'm');
     if (isset($data[$apn])) {
         $this->_ctrl = \str_replace('/', '\\', $data[$apn]);
     }
     if (isset($data[$mpn])) {
         $this->_method = $data[$mpn];
     }
     if (!empty($_SERVER['PATH_INFO'])) {
         $routeMap = ZRoute::match(Config::get('route', false), $_SERVER['PATH_INFO']);
         if (is_array($routeMap)) {
             $this->_ctrl = $routeMap[0];
             $this->_method = $routeMap[1];
             if (!empty($routeMap[2]) && is_array($routeMap[2])) {
                 //参数优先
                 $data = $data + $routeMap[2];
             }
         }
     }
     $this->_params = $data;
     $this->_tpl_file = str_replace('\\', DS, $this->_ctrl) . DS . $this->_method . '.php';
     return true;
 }
示例#2
0
文件: Http.php 项目: heesey/zphp
 /**
  * 直接 parse $_REQUEST
  * @param $_data
  * @return bool
  */
 public function parse($data)
 {
     $ctrlName = Config::getField('project', 'default_ctrl_name', 'main\\main');
     $methodName = Config::getField('project', 'default_method_name', 'main');
     $apn = Config::getField('project', 'ctrl_name', 'a');
     $mpn = Config::getField('project', 'method_name', 'm');
     if (isset($data[$apn])) {
         $ctrlName = \str_replace('/', '\\', $data[$apn]);
     }
     if (isset($data[$mpn])) {
         $methodName = $data[$mpn];
     }
     if (!empty($_SERVER['PATH_INFO'])) {
         //swoole_http模式 需要在onRequest里,设置一下 $_SERVER['PATH_INFO'] = $request->server['path_info']
         $routeMap = ZRoute::match(Config::get('route', false), $_SERVER['PATH_INFO']);
         if (is_array($routeMap)) {
             $ctrlName = \str_replace('/', '\\', $routeMap[0]);
             $methodName = $routeMap[1];
             if (!empty($routeMap[2]) && is_array($routeMap[2])) {
                 //参数优先
                 $data = $data + $routeMap[2];
             }
         }
     }
     Request::init($ctrlName, $methodName, $data, Config::getField('project', 'view_mode', 'Php'));
     return true;
 }
示例#3
0
 /**
  * 包格式: 包总长+命令id+请求id+数据
  * 
  * @param $_data
  * @return bool
  */
 public function parse($_data)
 {
     $ctrlName = Config::getField('project', 'default_ctrl_name', 'main\\main');
     $methodName = Config::getField('project', 'default_method_name', 'main');
     if (empty($this->_cache)) {
         $this->_cache = ZCache::getInstance('Php');
     }
     $fd = Request::getFd();
     $cacheData = $this->_cache->get($fd);
     if (!empty($cacheData)) {
         $_data = $cacheData . $_data;
         $this->_cache->delete($fd);
     }
     if (empty($_data)) {
         return false;
     }
     $packData = new MessagePacker($_data);
     $packLen = $packData->readInt();
     $dataLen = \strlen($_data);
     if ($packLen > $dataLen) {
         $this->_cache->set($fd, $_data);
         return false;
     } elseif ($packLen < $dataLen) {
         $this->_cache->set($fd, \substr($_data, $packLen, $dataLen - $packLen));
     }
     $packData->resetOffset(4);
     $data = [];
     $data['_cmd'] = $packData->readInt();
     $pathinfo = Config::getField('cmdlist', $data['_cmd']);
     $data['_rid'] = $packData->readInt();
     $params = $packData->readString();
     $unpackData = \json_decode(gzdecode($params), true);
     if (!empty($unpackData) && \is_array($unpackData)) {
         $data += $unpackData;
     }
     $routeMap = ZRoute::match(Config::get('route', false), $pathinfo);
     if (is_array($routeMap)) {
         $ctrlName = $routeMap[0];
         $methodName = $routeMap[1];
         if (!empty($routeMap[2]) && is_array($routeMap[2])) {
             //参数优先
             $data = $data + $routeMap[2];
         }
     }
     Request::init($ctrlName, $methodName, $data);
     return true;
 }
示例#4
0
 public static function makeUrl($action, $method, $params = array())
 {
     return ZRoute::makeUrl($action, $method, $params);
 }
示例#5
0
文件: main.php 项目: jxw7733/zphpdemo
        width: 600px;
        margin: 200px auto;
    }
    #show_avatar{
        width: 120px;
        position: relative;
        left: 420px;
        top: -140px;
    }
    #show_avatar img{
        border-radius: 8px;
    }
</style>

<div class='container login' >
    <form action="<?php 
echo ZRoute::makeUrl('login', 'check');
?>
" method="post" class="well" style="height: 162px">
        <h3>zphp websocket chat</h3>
        <input type="text" name="name" placeholder="请输入用户名" required="required"/></br>
        <input type="password" name="password" placeholder="请输入密码"  required="required"/></br>
        <input type="submit" class="btn btn-primary" value="Login" id="login_submit">
        <input type="reset" class="btn" value="Reset"> [<a href="<?php 
echo ZRoute::makeUrl('login', 'reg');
?>
">注册</a>]
    </form>
</div>
</body>
</html>
示例#6
0
文件: reg.php 项目: jxw7733/zphpdemo
        if(pic=='') {
            return
        }
        $('#avatar_pic').attr('src', pic);
        $('#avatar_pic').show();
    }
    function pic_error(o) {
        $(o).hide();
        falert("图片不存在,请重新填写一个吧。^-^");
        $('input[name=avatar]').val('');
    }
</script>

<div class='container login' >
    <form action="<?php 
echo ZRoute::makeUrl('login', 'check');
?>
" method="post" class="well"
          onsubmit="return checkForm(this)" style="height: 162px">
        <h3>zphp websocket chat 注册</h3>
        <input type="text" name="name" placeholder="请输入用户名" required="required"/></br>
        <input type="password" name="password" placeholder="请输入密码"  required="required"/></br>
        <input type="submit" class="btn btn-primary" value="注册" id="login_submit">
        <input type="reset" class="btn" value="Reset"> [<a href="<?php 
echo ZRoute::makeUrl('main', 'main');
?>
">登录</a>]
    </form>
</div>
</body>
</html>