dedecms登陆的logophp是怎么传参数的?谢谢大神
您好,朋友。跟版网很高兴为您解答:
首先您用终端连接mysql的话只能证明您的数据库用户名和密码是正确的。
安装织梦的话,还有一个数据库名称,也就是你database的名称。如果正常安装织梦的话,会在data下的commonincphp中生成一个文件,里面有连接信息,数据库名称,数据库用户名和密码这几项。如果你安装后的话还是登陆不了后台,那么可能是data下的这个文件没有生成,也可能是数据库没有生成,请检查一下。
值得一提的是,有的数据库链接地址,空间商采用的是远程地址,也就是一个网址或者ip。这个具体的话需要去你空间控制面板查看。
希望我的回答能够帮到您!跟版网-专业织梦模板定制下载站。genbanorg织梦默认的模板不是有这个登陆的东西,你把代码复制过来,然后样式自己需要什么样修改就行了。
<form name="userlogin" action="{dede:globalcfg_memberurl/}/index_dophp" method="POST"><input type="hidden" name="fmdo" value="login" />
<input type="hidden" name="dopost" value="login" />
<input type="hidden" name="keeptime" value="604800" />
<div class="fb"><span>用户名:</span>
<input type="text" name="userid" size="20" class="ipt-txt" />
</div>
<div class="fb"><span>密码:</span>
<input type="password" name="pwd" size="20" class="ipt-txt" />
</div>
{dede:php}
if(preg_match("#2#", $safe_gdopen))
{
echo '
<div class="fb"><span>验证码:</span>
<input type="text" name="vdcode" size="8" class="ipt-txt" />
<img id="vdimgck" align="absmiddle" onClick="thissrc=thissrc+\'\'" style="cursor:pointer;margin-left:0px;text-transform:uppercase;" alt="看不清?点击更换" src="'$cfg_cmspath'/include/vdimgckphp"/></div>
';
}
{/dede:php}
<div class="submit">
<button type="submit" class="btn-1">登录</button>
<a href="{dede:globalcfg_memberurl/}/index_dophpfmdo=user&dopost=regnew" >注册帐号</a> <a href="{dede:globalcfg_memberurl/}/resetpasswordphp">忘记密码</a> </div>
</form>
楼主你好
你上面的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多。
希望可以帮到你。 林羽凡
1、空间满了。我遇到的验证码错误都是空间满了,如果也遇到验证码错误的问题,可以先检查是否空间满了。
2、用ftp进入你的dedecms程序空间,把data/session目录下除indexhtm外的其它session文件都删除,然后本地ie浏览器清除缓存。重新登录dedecms后台试试看。
3、可以取消掉验证码,具体方法如下:
实现的方法一共分为两步来进行:
打开 loginphp 找到:
if($validate=='' || $validate != $svali)替换为:
if( false )
然后,在模板dede/templets/loginhtm里去掉以下验证码的具体HTML代码:
<li><span>验证码:</span><input name="validate" type="text" id="vdcode” style="width:50px;text-transform:uppercase;" />
<img id="vdimgck" src="/include/vdimgckphp" alt="看不清?点击更换" align="absmiddle" style="cursor:pointer" onclick="thissrc=thissrc+''" />
</li>
一、你找一下/dede/loginphp里面有一段代码,你查找“成功登录,正在转向管理管理主页”,然后把对应的代码改成这样,
if($res==1)
{
$cuserLogin->keepUser();
if(!empty($gotopage))
{
ShowMsg('成功登录,正在转向管理管理主页!',$gotopage);
exit();
}
else
{
ShowMsg('成功登录,正在转向管理管理主页!',"indexphp");
exit();
}
}
你看是不是这样写的,如果不是改成这样的;
二、然后在/dede/templets/loginhtm查找<form name="form1" method="post" action="loginphp">
然后看下面有没有这样一句<input type="hidden" name="gotopage" value="<php if(!empty($gotopage)) echo $gotopage;>" />,如果没有,添加上,或者说这是这样写的,改成这样的。然后再登录看看。
修改date里面的commonincphp文件,
<php
//数据库连接信息
$cfg_dbhost = 'localhost';
$cfg_dbname = 'dedecmsv56gbk'; /数据库名称,dedecms56默认是dedecmsv56gbk
$cfg_dbuser = 'root'; /数据库用户名
$cfg_dbpwd = ''; /dbuser 的密码
$cfg_dbprefix = 'dede_'; /表前缀,一般不必修改过
$cfg_db_language = 'gbk'; /编码,一般不必修改过
>
0条评论