zentaoPHP框架的两种请求方式

2014-08-07 16:25:10
王春生
38964
最后编辑:潘仙芝 于 2015-01-09 14:01:50
分享链接
摘要:zentaoPHP框架的两种请求方式

zentaoPHP框架共支持两种方式,一种是传统的GET方式,一种是静态友好的方式。

一、传统GET方式

可以在config/my.php里面设置requestType为GET来启用GET方式。当打开GET方式之后,访问地址格式如下:

index.php?m=$moduleName&f=$methodName&$param1=$value1&param2=valur2&t=html

m: 代表模块名称,比如m=blog,则代表访问blog模块。

f: 代表要访问的模块control里面的方法名,比如f=edit,代表访问blog/control.php里面定义的edit方法。

t: 代表模板类型,默认是html,比如f=edit&t=html,对应的模板文件是blog/view/edit.html.php。

其他的都是参数,也就是变量中指定的方法的参数。比如id=1,则代表终调用blog/control.php里面的edit方法,并向其传id=1的参数。

二、静态友好方式

静态友好方式需要webserver的url重写支持。如果是使用apache作为webserver的话,框架已经自带了.htaccess文件,里面已经包含了url重写规则。

如果是nginx,需要配置下面的参数:


 location / 
 {
     try_files $uri $uri/ /index.php?$args;
 }
 location ~ \.php$ 
 {
     fastcgi_pass  unix:/var/run/php5-fpm.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_param PATH_INFO $request_uri;
     include modules-enabled/fastcgi.conf;
 }
与此同时还需要修改config/my.php,把requestType设置成PATH_INFO。还有一个变量分隔符,需要设置。框架默认的是短横线:-。
 比如访问http://localhost/zentaophp/blog/view/179.html:blog为模块名,view是方法名,179是参数,.html则代表了模板的类型。


评论列表
张思 2022-11-18 16:48:21
代码:
module/hello/control.php
class hello extends control{
public function boy()
{
print_r($_GET);
exit;
}
}

module/hello/view/world.html.php
<form action='<?php echo $this->createLink('hello','boy'); ?>'>
user:<input type="text" name="user" id="user"><br>
from:<input type="text" name="from" id="from">
<input type="submit">
</form>


在网页中输入index.php?m=hello&f=world,可以看到form表单,但是点击确定之后会跳转到index.php?m=my&f=index&tid=1h3ax54u,
控制台报错表示index.php?m=index&f=index&user=zs&from=zs&t=html&tid=1h3ax54u地址的跳转,并提示错误153行Uncaught SyntaxError: Unexpected token ';'错误

看起来是createLink函数的原因
求解答^_^
陈冰安 2022-06-29 17:59:04
支持AOP么?怎么使?
王春生 2022-07-03 21:14:49
设计的时候没有考虑这个概念。
竹笋丸子 2022-03-18 12:05:12
请教下,PATH_INFO模式下 控制器中无法获取参数大概是啥问题?
王春生 2022-03-18 14:19:42
PATH_INFO传参是通过方法的参数来获取的。你检查下参数定义。
元曦 2022-03-15 12:23:23
有没有获取所有post的写法
王春生 2022-03-16 08:34:37
所有post?可以直接用$_POST变量。
潘星宇 2020-08-25 11:49:19
看了下然之,form表单基本全部用的是post方式
王春生 2020-08-28 08:29:42
是的。表单都是用post。
yyt 2018-03-08 11:53:44
为什么使用PATH_INFO模式在对应的控制器中获取不到路由传递的参数
王春生 2018-03-14 08:37:59
你要在函数里面定义参数。
尜尜 2017-11-20 20:15:07
论坛回帖和发帖功能,如果帖子内容有附件,后台取不到post提交的所有数据,是怎么回事? 下载的dome源码未修改的也是一样,取不到post提交的所有数据,但是如果不传附件就可以获取到
王春生 2017-11-22 16:59:25
检查附件是否上传成功。
yzxTest 2016-07-27 10:30:45
url参数中的值存在空格该怎么处理,参数值带空格的请求会返回bad request
王春生 2016-07-29 10:39:54
用helper::safe64Encode编码
张新 2016-07-08 08:42:41
PATH_INFO方式下参数中有中划线传参就异常了
王春生 2016-07-10 14:20:20
参数里面有中划线的话,用helper 里面的safe64Encode() 编码。
xcc 2016-06-17 14:22:59
nginx重写没作用,而且都指向index了
王春生 2016-06-20 16:48:29
那改成GET方式试试吧。
1/2
发表评论
评论通过审核后显示。