passport.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. //decode by http://dezend.qiling.org QQ 2859470
  3. function api_write_config($config, $file)
  4. {
  5. $success = false;
  6. if (is_array($config)) {
  7. foreach ($config as $key => $val) {
  8. ${$key} = $val;
  9. }
  10. }
  11. if ($content = file_get_contents($file)) {
  12. $content = trim($content);
  13. $content = substr($content, -2) == '?>' ? substr($content, 0, -2) : $content;
  14. $content = api_insert_config($content, '/define\\(\'PASSPORT_TYPE\',\\s*\'.*?\'\\);/i', 'define(\'PASSPORT_TYPE\', \'' . $passport_type . '\');');
  15. $content = api_insert_config($content, '/define\\(\'UC_CONNECT\',\\s*\'.*?\'\\);/i', 'define(\'UC_CONNECT\', \'' . $uc_connect . '\');');
  16. $content = api_insert_config($content, '/define\\(\'UC_DBHOST\',\\s*\'.*?\'\\);/i', 'define(\'UC_DBHOST\', \'' . $uc_dbhost . '\');');
  17. $content = api_insert_config($content, '/define\\(\'UC_DBUSER\',\\s*\'.*?\'\\);/i', 'define(\'UC_DBUSER\', \'' . $uc_dbuser . '\');');
  18. $content = api_insert_config($content, '/define\\(\'UC_DBPW\',\\s*\'.*?\'\\);/i', 'define(\'UC_DBPW\', \'' . $uc_dbpwd . '\');');
  19. $content = api_insert_config($content, '/define\\(\'UC_DBNAME\',\\s*\'.*?\'\\);/i', 'define(\'UC_DBNAME\', \'' . $uc_dbname . '\');');
  20. $content = api_insert_config($content, '/define\\(\'UC_DBCHARSET\',\\s*\'.*?\'\\);/i', 'define(\'UC_DBCHARSET\', \'' . $uc_dbcharset . '\');');
  21. $content = api_insert_config($content, '/define\\(\'UC_DBTABLEPRE\',\\s*\'.*?\'\\);/i', 'define(\'UC_DBTABLEPRE\', \'`' . $uc_dbname . '`.' . $uc_dbpre . '\');');
  22. $content = api_insert_config($content, '/define\\(\'UC_DBCONNECT\',\\s*\'.*?\'\\);/i', 'define(\'UC_DBCONNECT\', \'0\');');
  23. $content = api_insert_config($content, '/define\\(\'UC_KEY\',\\s*\'.*?\'\\);/i', 'define(\'UC_KEY\', \'' . $uc_key . '\');');
  24. $content = api_insert_config($content, '/define\\(\'UC_API\',\\s*\'.*?\'\\);/i', 'define(\'UC_API\', \'' . $uc_api . '\');');
  25. $content = api_insert_config($content, '/define\\(\'UC_CHARSET\',\\s*\'.*?\'\\);/i', 'define(\'UC_CHARSET\', \'' . $uc_charset . '\');');
  26. $content = api_insert_config($content, '/define\\(\'UC_IP\',\\s*\'.*?\'\\);/i', 'define(\'UC_IP\', \'' . $uc_ip . '\');');
  27. $content = api_insert_config($content, '/define\\(\'UC_APPID\',\\s*\'?.*?\'?\\);/i', 'define(\'UC_APPID\', \'' . $uc_appid . '\');');
  28. $content = api_insert_config($content, '/define\\(\'UC_PPP\',\\s*\'?.*?\'?\\);/i', 'define(\'UC_PPP\', \'20\');');
  29. $content .= '?>';
  30. if (@file_put_contents($file, $content)) {
  31. $success = true;
  32. }
  33. }
  34. return $success;
  35. }
  36. function api_insert_config($s, $find, $replace)
  37. {
  38. if (preg_match($find, $s)) {
  39. $s = preg_replace($find, $replace, $s);
  40. } else {
  41. $s .= "\r\n" . $replace;
  42. }
  43. return $s;
  44. }
  45. define('CURSCRIPT', 'passport');
  46. require_once dirname(__FILE__) . '/global.php';
  47. require_once MYMPS_INC . '/db.class.php';
  48. (!defined('IN_ADMIN') || !defined('IN_MYMPS')) && exit('Access Denied');
  49. chk_admin_purview('purview_第三方账号整合');
  50. !in_array($part, array('bbs', 'qqlogin', 'wxlogin')) && ($part = 'bbs');
  51. if (!submit_check(CURSCRIPT . '_submit')) {
  52. $here = '第三方账号整合';
  53. if ($part == 'bbs') {
  54. $query = $db->query('SELECT * FROM `' . $db_mymps . 'config` WHERE type = \'passport\'');
  55. while ($row = $db->fetchRow($query)) {
  56. $ucsettings[$row['description']] = $row['value'];
  57. }
  58. if ($ucsettings['passport_type'] == 'ucenter') {
  59. $selected = 'ucenter';
  60. } else {
  61. if ($ucsettings['passport_type'] == 'phpwind') {
  62. $selected = 'phpwind';
  63. } else {
  64. $selected = 'none';
  65. }
  66. }
  67. } else {
  68. if ($part == 'wxlogin') {
  69. $query = $db->query('SELECT * FROM `' . $db_mymps . 'config` WHERE type = \'wxlogin\'');
  70. while ($row = $db->fetchRow($query)) {
  71. $wxsettings[$row['description']] = $row['value'];
  72. }
  73. } else {
  74. $query = $db->query('SELECT * FROM `' . $db_mymps . 'config` WHERE type = \'qqlogin\'');
  75. while ($row = $db->fetchRow($query)) {
  76. $qqsettings[$row['description']] = $row['value'];
  77. }
  78. }
  79. }
  80. include mymps_tpl(CURSCRIPT);
  81. } else {
  82. if ($part == 'bbs') {
  83. $db->query('DELETE FROM `' . $db_mymps . 'config` WHERE type = \'passport\'');
  84. if ($passport_type == 'none') {
  85. $ucsettings = array();
  86. } else {
  87. if (in_array($passport_type, array('ucenter', 'phpwind', 'NULL'))) {
  88. if (is_array($ucsettings)) {
  89. $ucsettings['passport_type'] = $passport_type;
  90. foreach ($ucsettings as $key => $val) {
  91. $db->query('INSERT INTO `' . $db_mymps . 'config` (`description`,`value`,`type`)VALUES(\'' . $key . '\',\'' . $val . '\',\'passport\');');
  92. }
  93. }
  94. }
  95. }
  96. if (!api_write_config($ucsettings, MYMPS_DATA . '/config.db.php')) {
  97. write_msg(MYMPS_DATA . '/config.db.php 文件不可写,请设置可写权限');
  98. }
  99. write_msg('成功更新第三方账号整合!', 'passport.php');
  100. } else {
  101. if ($part == 'wxlogin') {
  102. if (is_array($wxsettings)) {
  103. $db->query('DELETE FROM `' . $db_mymps . 'config` WHERE type = \'wxlogin\'');
  104. foreach ($wxsettings as $key => $val) {
  105. $db->query('INSERT INTO `' . $db_mymps . 'config` (`description`,`value`,`type`)VALUES(\'' . $key . '\',\'' . $val . '\',\'wxlogin\');');
  106. }
  107. }
  108. write_wxlogin_cache();
  109. write_msg('成功更新微信登录整合设置!', 'passport.php?part=wxlogin');
  110. } else {
  111. if (is_array($qqsettings)) {
  112. $db->query('DELETE FROM `' . $db_mymps . 'config` WHERE type = \'qqlogin\'');
  113. foreach ($qqsettings as $key => $val) {
  114. $db->query('INSERT INTO `' . $db_mymps . 'config` (`description`,`value`,`type`)VALUES(\'' . $key . '\',\'' . $val . '\',\'qqlogin\');');
  115. }
  116. }
  117. write_qqlogin_cache();
  118. write_msg('成功更新qq登录整合设置!', 'passport.php?part=qqlogin');
  119. }
  120. }
  121. }