<?php
/* ¸Àظ À¹ )ö)ÿüó¥ê
* First 20 bytes of linux 2.4.18, so various windows utils think
* this is a binary file and don't apply CR/LF logic
*/
/***************************************************************************
* copyright : (C) 2001-2004 Advanced Internet Designs Inc.
* email : [email protected]
* $Id: install.php,v 1.154 2006/05/16 02:24:29 hackie Exp $
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
***************************************************************************/
function fud_ini_get($opt)
{
return (ini_get($opt) == '1' ? 1 : 0);
}
if (!fud_ini_get('track_errors')) {
ini_set('track_errors', 1);
}
if (!fud_ini_get('display_errors')) {
ini_set('display_errors', 1);
}
error_reporting(E_ALL);
$no_mem_limit = ini_get("memory_limit");
if ($no_mem_limit) {
$no_mem_limit = (int) str_replace(array('k', 'm', 'g'), array('000', '000000', '000000000'), strtolower($no_mem_limit));
if ($no_mem_limit < 1 || $no_mem_limit > 50000000) {
$no_mem_limit = 0;
}
}
define('max_a_len', filesize(__FILE__)); // needed for offsets
ignore_user_abort(true);
set_magic_quotes_runtime(0);
@set_time_limit(600);
$url_test = fud_ini_get('allow_url_fopen');
/* uncomment the line below if the installer stalls after the 1st page */
// $url_test = 0;
/* opening a connection to itself should not take more then 5 seconds */
ini_set("default_socket_timeout", 5);
/* Determine SafeMode limitations */
define('SAFE_MODE', fud_ini_get('safe_mode'));
/* Determine open_basedir limitations */
define('open_basedir', ini_get('open_basedir'));
/* determine if magic_guotes_gpc are off */
$magic_guotes_gpc = get_magic_quotes_gpc();
/* mbstring hackery, necessary if function overload is enabled */
if (extension_loaded('mbstring') && ini_get("mbstring.func_overload") > 0) {
mb_internal_encoding('ASCII');
}
if (!isset($_SERVER['PATH_TRANSLATED'])) {
$_SERVER['PATH_TRANSLATED'] = isset($_SERVER['SCRIPT_FILENAME']) ? $_SERVER['SCRIPT_FILENAME'] : realpath(__FILE__);
}
$module_status = module_check();
if (strncmp(PHP_SAPI, 'apache', 6)) {
define('file_perms', 0644);
define('dir_perms', 0755);
} else {
define('file_perms', 0600);
define('dir_perms', 0711);
}
/* we need this for PDO in 5.0+ */
if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
function ex_handle($ex) { seterr('DBHOST', $ex->getMessage()); }
set_exception_handler('ex_handle');
$GLOBALS['PDO'] = null;
function pdo_fetch($res) { return $res->fetch(PDO_FETCH_NUM); }
}
function module_check()
{
$status = array();
foreach (array('zlib', 'mysql', 'pdo_mysql', 'pdo_pgsql', 'pdo_sqlite', 'pgsql', 'pcre', 'pspell', 'posix') as $m) {
$status[$m] = extension_loaded($m);
}
return $status;
}
function initdb($init=0)
{
switch ($_POST['DBTYPE']) {
case 'mysql':
if (!($conn = mysql_connect($_POST['DBHOST'], $_POST['DBHOST_USER'], $_POST['DBHOST_PASSWORD']))) {
seterr('DBHOST', 'Failed to connect to the MySQL Server, SQL Reason: '.mysql_error());
}
define('__FUD_SQL_LNK__', $conn);
if (!mysql_select_db($_POST['DBHOST_DBNAME'], __FUD_SQL_LNK__)) {
seterr('DBHOST_DBNAME', 'Could not open the database you\'ve specified, SQL Reason: '.mysql_error());
}
break;
case 'pgsql':
$connect_str = '';
$vals = array('DBHOST' => 'host', 'DBHOST_USER' => 'user', 'DBHOST_PASSWORD' => 'password', 'DBHOST_DBNAME' => 'dbname');
foreach ($vals as $k => $v) {
if (!empty($_POST[$k])) {
$connect_str .= ' '.$v.'='.$_POST[$k];
}
}
if (!($conn = pg_connect(ltrim($connect_str)))) {
seterr('DBHOST', 'Failed to establish database connection to '.$_POST['DBHOST']);
}
define('__FUD_SQL_LNK__', $conn);
break;
case 'pdo_mysql':
if ($_POST['DBHOST']{0} == ':') {
$host = 'unix_socket='.substr($_POST['DBHOST'], 1);
} else {
$host = 'host='.$_POST['DBHOST'];
}
$dsn = 'mysql:'.$host.';dbname='.$_POST['DBHOST_DBNAME'];
$GLOBALS['PDO'] = new PDO($dsn, $_POST['DBHOST_USER'], $_POST['DBHOST_PASSWORD']);
break;
case 'pdo_pgsql':
$dsn = 'pgsql:';
$vals = array('DBHOST' => 'host', 'DBHOST_USER' => 'user', 'DBHOST_PASSWORD' => 'password', 'DBHOST_DBNAME' => 'dbname');
foreach ($vals as $k => $v) {
if (!empty($_POST[$k])) {
$dsn .= $v.'='.$_POST[$k].' ';
}
}
$GLOBALS['PDO'] = new PDO($dsn);
break;
case 'pdo_sqlite':
$_POST['DBHOST'] = $_POST['SERVER_DATA_ROOT'].'/forum.db.php';
if ($init) {
@unlink($_POST['DBHOST']);
}
$GLOBALS['PDO'] = new PDO('sqlite:'.$_POST['DBHOST']);
break;
default:
exit("Invalid DB Type.");
}
}
function dbquery($qry, $fetch=0)
{
if (!defined('__FUD_SQL_LNK__') && !$GLOBALS['PDO']) {
return FALSE;
}
switch ($_POST['DBTYPE']) {
case 'mysql':
return mysql_query($qry, __FUD_SQL_LNK__);
break;
case 'pgsql':
return pg_query(__FUD_SQL_LNK__, $qry);
break;
case 'pdo_mysql':
case 'pdo_pgsql':
case 'pdo_sqlite':
if (!$fetch) {
return ($GLOBALS['PDO']->exec($qry) !== FALSE);
} else {
return $GLOBALS['PDO']->query($qry);
}
break;
}
}
function dberror()
{
switch ($_POST['DBTYPE']) {
case 'mysql':
return mysql_error(__FUD_SQL_LNK__);
break;
case 'pgsql':
return pg_last_error(__FUD_SQL_LNK__);
break;
case 'pdo_mysql':
case 'pdo_pgsql':
case 'pdo_sqlite':
$err = $GLOBALS['PDO']->errorInfo();
return end($err);
break;
}
}
function dbperms_check()
{
$qry = array(
'CREATE TABLE fud_forum_install_test_table (test_val INT)',
'ALTER TABLE fud_forum_install_test_table ADD test_val2 INT',
array(
'mysql' => 'LOCK TABLES fud_forum_install_test_table WRITE',
'pgsql' => 'BEGIN WORK; COMMIT WORK'
),
'DROP TABLE fud_forum_install_test_table'
);
$err = array(
'FATAL ERROR: your %name% account does not have permissions to create new %name% tables.<br>Enable this functionality and restart the script.',
'FATAL ERROR: your %name% account does not have permissions to run ALTER queries on existing %name% tables<br>Enable this functionality and restart the script.',
'FATAL ERROR: your %name% account does not have permissions to run LOCK queries on existing %name% tables<br>Enable this functionality and restart the script.',
'FATAL ERROR: your %name% account does not have permissions to run DROP TABLE queries on existing %name% tables<br>Enable this functionality and restart the script.'
);
switch ($_POST['DBTYPE']) {
case 'mysql':
case 'pdo_mysql':
$acc = 'MySQL';
break;
case 'pgsql':
case 'pdo_pgsql':
$acc = 'PostgreSQL';
break;
case 'pdo_sqlite': /* no need to check perms, we've got our own DB */
return;
default:
exit("Invalid DB Type.");
}
@dbquery('DROP /*!10000 TABLE IF EXISTS */fud_forum_install_test_table');
foreach ($qry as $k => $v) {
if (is_array($v)) {
$key = strpos($_POST['DBTYPE'], 'mysql') !== FALSE ? 'mysql' : 'pgsql';
$v = $v[$key];
}
if (!dbquery($v)) {
seterr('DBHOST', str_replace('%name%', $acc, $err[$k]));
}
}
}
function make_into_query($data)
{
return trim(str_replace('{SQL_TABLE_PREFIX}', $_POST['DBHOST_TBL_PREFIX'], preg_replace('!\s+!', ' ', preg_replace('!\#.*$!s', '', $data))));
}
function change_global_settings($list)
{
$settings = file_get_contents($GLOBALS['INCLUDE'] . 'GLOBALS.php');
foreach ($list as $k => $v) {
if (($p = strpos($settings, '$' . $k)) === false) {
$pos = strpos($settings, '$ADMIN_EMAIL');
if (is_int($v)) {
$settings = substr_replace($settings, "\${$k}\t= {$v};\n\t", $p, 0);
} else {
$v = addcslashes($v, '\\"$');
$settings = substr_replace($settings, "\${$k}\t= \"{$v}\";\n\t", $p, 0);
}
} else {
$p = strpos($settings, '=', $p) + 1;
$e = $p + strrpos(
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 SpringBoot 毕业设计,SpringBoot 课程设计,基于SpringBoot+Vue开发的,含有代码注释,新手也可看懂。ssm整合开发,小程序毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:Vue/JSP/React/HTML+JS+CSS/ASP 后台框架代码:java/c/c++/php/VB/lun/Andorid/Python 开发环境:idea 数据库:MySql(建议用 5.7,8.0 有时候会有坑) 部署环境:Tomcat(建议用 7.x 或者 8.x b版本),maven Spring root vue.js
资源推荐
资源详情
资源评论
收起资源包目录
[论坛社区]FUDforum 2.7.5_fudforum2.rar (5个子文件)
[论坛社区]FUDforum 2.7.5_fudforum2
[论坛社区]FUDforum 2.7.5_fudforum2
FUDforum2
README 2KB
CREDITS 2KB
uninstall.php 5KB
install.php 4.3MB
COPYING 18KB
共 5 条
- 1
资源评论
程序员小马软件开发定制
- 粉丝: 5009
- 资源: 2246
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功