请问:织梦dedecms系统php文件里面的参数和变量如何传递到前端的htm模板中呢?
楼主你好
你上面的logophp应该是写错了,dedecms有三个登录处理程序文件,前台的有 index_dophp 和 loginphp,不过l oginphp 没有处理数据,仅判断是否登录,登录的话跳转到会员中心首页。后台的有 loginphp 来处理。下面详细说明:
前台 index_dophp 文件。首先不论用户是在网站首页右侧的登录框登录还是会员中心的登录页面登录,两者都会把参数传到 /member/index_dophp 文件中,从登录模板的 action 中我们可以看到登录的时候会把表单数据传递到哪个文件来处理。如下图:
上图是位于/member/templets/loginhtm文件中的部分截图,这是我们前台登录的模板页面,可以看到<form>中将参数传给了index_dophp文件,具体传的参数是每个表单(input)的name值,比如用户名的表单是<input id="txtUsername" class="text login_from" type="text" name="userid"/> ,通过对name的判断知道这个表单提交的是用户名,也就是userid的值,数据库会有对应的userid的字段。比如你登录的用户名是:林羽凡,传过去(到index_dophp)的值就是“userid='林羽凡'”。
type="hidden"的是隐藏域,也就是不在页面上显示,但系统仍能传递参数。比如<input type="hidden" name="fmdo" value="login">就是传递 fmdo的值是 login,这样index_dophp就会知道这里传来的值是用于登录处理的,会有对应的函数(funtion)来处理。
dedecms的$dopost很诡异,通过这个参数的值判断是登入还是登出。
通过以上,我们还有一个登录按钮,类型是submit,也就是提交,这样表单form中的所有信息才会传递到index_dophp文件。
在/member/index_dophp文件240行就可以看到function login()了,也就是登录处理函数,这个时候这个函数就会把传递过来的参数统统接收,这里也是最容易进行sql注入的地方,如果对表单过滤不好,很容易把sql语句写到处理文件中,这里就不细说了。
index_dophp的大概处理过程是这样的,可参考下,不一定每一条都说到。
1、判断是否设置验证码,如果没有,进行用户名验证,如果有设置看对不对,不对的话提示跳转到indexphp文件,如果对,就进行用户名验证。
2、if(CheckUserID($userid,'',false)!='ok')就是通过CheckUserID()来检查用户是否合法,主要是指是不是系统禁用名,是不是长度不够等等,具体语法就不解释了。
3、看你密码是不是空的。
4、接下来就是最重要的,看你的用户名和密码匹配不匹配。$rs = $cfg_ml->CheckUser($userid,$pwd); dedecms这里的验证有点繁琐,还加入了UC机制,就不详细说了。
总结下:说得有点啰嗦,但希望楼主能明白大概的流程,后台的登录传参原理也一样,也是通过<input>把值传到 loginphp 文件,再有对应的函数处理。我们通过传参都会用post方法,也就是你在代码中看到的 method='POST',还有一种是 Get 方式,两种有区别,主要是 post 可传的字节比 get多。
希望可以帮到你。 林羽凡
dede:global ,dede field标签一样的。
区别:
{dede:fieldtitle}:
一般是在文章页调用的标题标签,显示文章的标题,全局都可以使用。 这个标签通常用在页面的head中。
基本语法:
<head><title>{dede:fieldtitle}</title></head>。
dede:global :
是全局变量 例如后台基本参数中的站点根网址,{field:title/] :是列表页底层模板标签,需要配合{dede:list}{/dede:list}或者{dede:arclist}{/dede:arclist}一起使用。
基本语法:
{dede:list pagesize="10"}
<li>[<b>[field:typelink/]</b>]<a href="[field:arcurl/]" >[field:title/]</a></li>
{/dede:list}
扩展资料:
Field类
获得Field
1、Field[] fs=cgetFields();
//获得公有属性(只能是公有的)//可以是父类的公有的属性
2、Field[] fs2=cgetDeclaredFields();
//获得所有属性(全部类型的修饰符属性均可获得)
3、Field fs3=cgetField(String FieldName);
//获得指定名字的公有属性(只能是公有的)
4、Field fs4=cgetDeclaredField(String FieldName);
//获得指定名字的属性(全部类型的修饰符的属性中指定名字)
主要使用 $pv->SetVar('title',$title);往模板渲染数据;
前面用dede自己的标签显示;
学习更多的dedecms使用,请参考:http://wwwtuicoolcom/articles/RF3eimf
一、输入你的账户和密码并登录到网站后台。
二、通过FTP将准备好的模板和默认模板一起上传到/templates。
三、在网站后台,点击系统基本参数。此时,您可以看到下面有一个“模板默认样式”,用于将默认“default”更改为模板文件夹名称并保存它。
四、单击生成更新主页。您可以看到“选择主页模板”后面仍然跟着“default””。此时,将其更改为“模板文件夹名称”。单击“更新”。
五、此时,主页正常,但列和内容页仍与以前相同。那是因为没有更新。在这里,我们需要更新列和内容页并更新缓存。
六、此时,主页将在后台生成并点击浏览。网站将正常显示,栏目和内容也将正常。如果仍然与原始页相同,则可以强制更新页或此时按F5键。
0条评论