国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
3.5KB

  1. <?php
  2. /**
  3. * 后台登陆
  4. *
  5. * @version $Id: login.php 1 8:48 2010年7月13日Z tianya $
  6. * @package DedeCMS.Administrator
  7. * @copyright Copyright (c) 2007 - 2020, DesDev, Inc.
  8. * @license http://help.dedecms.com/usersguide/license.html
  9. * @link http://www.dedecms.com
  10. */
  11. require_once(dirname(__FILE__).'/../include/common.inc.php');
  12. require_once(DEDEINC.'/userlogin.class.php');
  13. if(empty($dopost)) $dopost = '';
  14. if(empty($gotopage)) $gotopage = '';
  15. $gotopage = RemoveXSS($gotopage);
  16. //检测安装目录安全性
  17. if( is_dir(dirname(__FILE__).'/../install') )
  18. {
  19. if(!file_exists(dirname(__FILE__).'/../install/install_lock.txt') )
  20. {
  21. $fp = fopen(dirname(__FILE__).'/../install/install_lock.txt', 'w') or die('安装目录无写入权限,无法进行写入锁定文件,请安装完毕删除安装目录!');
  22. fwrite($fp,'ok');
  23. fclose($fp);
  24. }
  25. //为了防止未知安全性问题,强制禁用安装程序的文件
  26. if( file_exists("../install/index.php") ) {
  27. @rename("../install/index.php", "../install/index.php.bak");
  28. }
  29. if( file_exists("../install/module-install.php") ) {
  30. @rename("../install/module-install.php", "../install/module-install.php.bak");
  31. }
  32. $fileindex = "../install/index.html";
  33. if( !file_exists($fileindex) ) {
  34. $fp = @fopen($fileindex,'w');
  35. fwrite($fp,'dir');
  36. fclose($fp);
  37. }
  38. }
  39. //更新服务器
  40. require_once (DEDEDATA.'/admin/config_update.php');
  41. if ($dopost=='showad')
  42. {
  43. include('templets/login_ad.htm');
  44. exit;
  45. }
  46. //检测后台目录是否更名
  47. $cururl = GetCurUrl();
  48. if(preg_match('/dede\/login/i',$cururl))
  49. {
  50. $redmsg = '<div class=\'safe-tips\'>您的管理目录的名称中包含默认名称dede,建议在FTP里把它修改为其它名称,那样会更安全!</div>';
  51. }
  52. else
  53. {
  54. $redmsg = '';
  55. }
  56. //登录检测
  57. $admindirs = explode('/',str_replace("\\",'/',dirname(__FILE__)));
  58. $admindir = $admindirs[count($admindirs)-1];
  59. if($dopost=='login')
  60. {
  61. $validate = empty($validate) ? '' : strtolower(trim($validate));
  62. $svali = strtolower(GetCkVdValue());
  63. if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen)){
  64. ResetVdValue();
  65. ShowMsg('验证码不正确!','login.php',0,1000);
  66. exit;
  67. } else {
  68. $cuserLogin = new userLogin($admindir);
  69. if(!empty($userid) && !empty($pwd))
  70. {
  71. $res = $cuserLogin->checkUser($userid,$pwd);
  72. //success
  73. if($res==1)
  74. {
  75. $cuserLogin->keepUser();
  76. if(!empty($gotopage))
  77. {
  78. ShowMsg('成功登录,正在转向管理管理主页!',$gotopage);
  79. exit();
  80. }
  81. else
  82. {
  83. ShowMsg('成功登录,正在转向管理管理主页!',"index.php");
  84. exit();
  85. }
  86. }
  87. //error
  88. else if($res==-1)
  89. {
  90. ResetVdValue();
  91. ShowMsg('你的用户名不存在!','login.php',0,1000);
  92. exit;
  93. }
  94. else
  95. {
  96. ResetVdValue();
  97. ShowMsg('你的密码错误!','login.php',0,1000);
  98. exit;
  99. }
  100. }
  101. //password empty
  102. else
  103. {
  104. ResetVdValue();
  105. ShowMsg('用户和密码没填写完整!','login.php',0,1000);
  106. exit;
  107. }
  108. }
  109. }
  110. include('templets/login.htm');