PHP file help needed

Discussion in 'PHP' started by adsenser, Sep 30, 2007.

  1. #1
    hi,

    can anyone send me install/index.php file for phpLD version 2.0 ?

    i modified the one i have and its not working anymore , also its no more available for download.

    PM me or post here if you have .

    thanks
     
    adsenser, Sep 30, 2007 IP
  2. itdevil

    itdevil Well-Known Member

    Messages:
    632
    Likes Received:
    17
    Best Answers:
    0
    Trophy Points:
    110
    #2
    <?php
    
    require_once '../include/config.php';
    
    $fn = INSTALL_PATH.'temp/templates';
    if(!is_writable($fn)){
    	@chmod( $fn, 0777 );
    }
    
    require_once 'include/functions.php';
    require_once 'install/config.php';
    require_once 'libs/intsmarty/intsmarty.class.php';
    require_once 'libs/smarty/SmartyValidate.class.php';
    require_once 'libs/adodb/adodb.inc.php';
    $tpl = new IntSmarty('en');
    $tpl->template_dir = '../templates';
    $tpl->compile_dir = '../temp/templates';
    $tpl->cache_dir = '../temp/cache';
    $tpl->compile_check = false;
    
    if(!is_writable($fn)){
    	die("<b>The installer cannot start.</b><br /> Please make sure that the folder <b>$fn</b> is writtable by the user the webserver runs under.");
    }
    
    
    $step = $_REQUEST['step'] ? $_REQUEST['step'] : 1;
    session_start();
    
    $path = request_uri();
    $i = strrpos($path, '/install')-8;
    define('DOC_ROOT', substr($path, 0, $i));
    
    
    if(!$_SESSION['nologin']&&!isset($_SESSION['user_id'])&&defined('DB_DRIVER')&& defined('DB_HOST')){
    	$db = ADONewConnection(DB_DRIVER);
    	if($db->Connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)){
    		$c = $db->GetOne("SELECT COUNT(*) FROM {$tables['user']['name']} WHERE ADMIN=1");
    		if($c>0){
    			$_SESSION['return'] = DOC_ROOT."/install/index.php";
    			header("Location: ".DOC_ROOT."/admin/login.php");
    		}
    	}
    }else{
    	$_SESSION['nologin'] = true;
    }
    
    if (empty ($_REQUEST['submit'])) {
    	$_SESSION['values'] = array ('db_driver' => 'mysql');
    	if(defined('DB_DRIVER'))
    		$_SESSION['values']['db_driver'] = DB_DRIVER;
    	else
    		$_SESSION['values']['db_driver'] = 'mysql';
    	if(defined('DB_HOST'))
    		$_SESSION['values']['db_host'] = DB_HOST;
    	if(defined('DB_NAME'))
    		$_SESSION['values']['db_name'] = DB_NAME;
    	if(defined('DB_USER'))
    		$_SESSION['values']['db_user'] = DB_USER;
    	if(defined('DB_PASSWORD'))
    		$_SESSION['values']['db_password'] = DB_PASSWORD;
    	SmartyValidate :: connect($tpl, true);
    	SmartyValidate :: set_page($step);
    	SmartyValidate :: register_criteria('installDb', 'install_db');
    	SmartyValidate :: register_criteria('createAdmin', 'create_admin');
    	SmartyValidate :: register_criteria('checkAdmin', 'check_admin');
    	SmartyValidate :: register_validator('v_step', 'step', 'dummyValid', true);
    	SmartyValidate :: register_validator('v_db_host', 'db_host', 'notEmpty', false, true, false, 'trim');
    	SmartyValidate :: register_validator('v_db_driver', 'db_driver', 'notEmpty', false, false);
    	SmartyValidate :: register_validator('v_db_install', '', 'installDb');
    	SmartyValidate :: register_validator('v_checkAdmin', '', 'checkAdmin');
    	SmartyValidate :: register_validator('v_admin_user', 'admin_user:!^\w{4,10}$!', 'isRegExp');
    	SmartyValidate :: register_validator('v_admin_name', 'admin_name', 'notEmpty', false, false);
    	SmartyValidate :: register_validator('v_admin_password', 'admin_password:6:10', 'isLength');
    	SmartyValidate :: register_validator('v_admin_passwordc', 'admin_password:admin_passwordc', 'isEqual');
    	SmartyValidate :: register_validator('v_admin_email', 'admin_email', 'isEmail');
    	SmartyValidate :: register_validator('v_createAdmin', '', 'createAdmin', false, false, true);
    }
    $_REQUEST = array_merge($_SESSION['values'], $_REQUEST);
    $_SESSION['values'] = $_REQUEST;
    $errors = array ();
    $messages = array ();
    $ss = $_SESSION;
    if ($_REQUEST['submit'] == 'next') {
    	SmartyValidate :: connect($tpl);
    	if (SmartyValidate :: is_valid($_REQUEST)) {
    		$step ++;
    		SmartyValidate :: set_page($step);
    	}
    }
    elseif ($_REQUEST['submit'] == 'back') {
    	$step --;
    	SmartyValidate :: set_page($step);
    }
    $tpl->assign($_SESSION['values']);
    $tpl->assign('errors', $errors);
    $tpl->assign('messages', $messages);
    
    switch ($step) {
    	case 1 :
    		$tpl->assign('req', check_requirements());
    		$tpl->assign('btn_next', 1);
    		$tpl->assign('title', _L('Welcome'));
    		break;
    	case 2 :
    		foreach($db_drivers as $k => $val){
    			if(!in_array($k, $_SESSION['available_db'])){
    				unset($db_drivers[$k]);
    			}
    		}
    		$tpl->assign('db_drivers', $db_drivers);
    		$tpl->assign('btn_next', 1);
    		$tpl->assign('btn_back', 1);
    		$tpl->assignLang('title', _L('Database Settings'));
    		break;
    	case 3 :
    		$tpl->assign('btn_next', 1);
    		$tpl->assign('btn_back', 1);
    		$tpl->assignLang('title', _L('Administrative User'));
    		break;
    	case 4 :
    		$p = request_uri();
    		
    		$tpl->assign('btn_back', 1);
    		$tpl->assignLang('title', _L('Installation Finished'));
    }
    $tpl->assign('step', $step);
    echo $tpl->fetch('install/main.tpl');
    
    
    function check_requirements(){
    	$req = array();
    	#PHP Vesion
    	$r = array('req' =>_L('PHP Version &gt;= 4.1'));
    	$r['ok'] = version_compare(phpversion(), '4.1', '>=');
    	$r['txt'] = '('.phpversion().')';
    	if(!$r['ok']){
    		$r['txt'] .= _L('phpLinkDirectory may not work. Please upgrade!');
    	}
    	$req[] = $r;
    	
    	#Server API
    	$r = array('req' =>_L('Server API'));
    	$r['ok'] = php_sapi_name() != "cgi";
    	if($r['ok']){
    		$r['txt'] = '('.php_sapi_name().')';
    	}else{
    		$r['txt'] = _L('CGI mode is likely to have problems.');
    	}
    	$req[] = $r;
    	
    	#GD support
    	$r = array('req' => _L('GD Support (for visual confirmations)'));
    	$r['ok'] = extension_loaded('gd');
    	if($r['ok']){
    		ob_start();
    		phpinfo(8);
    		$module_info = ob_get_contents();
    		ob_end_clean();
    		if(preg_match("/\bgd\s+version\b[^\d\n\r]+?([\d\.]+)/i", $module_info, $matches))
    		{
    			$r['txt'] = '('.$matches[1].')';
    		}
    	}else{
    		$r['txt'] = _L('Visual confirmation functionality will not be available.');
    	}
    	$req[] = $r;
    	
    	#Session Save Path writable?
    	$r = array('req' => _L('Session Save Path writable?'));
    	$sspath = ini_get('session.save_path');
    	if(preg_match("`.+;(.*)`", $sspath, $matches)){
    		$sspath = $matches[1];
    	}
    	if (! $sspath) {
    		$r['ok'] = false;
    		$r['txt'] = _L('Warning: <span class="item">session.save_path ('.$sspath.')</span> is not set.');
    	}else if (is_dir($sspath) && is_writable($sspath)) {
    		$r['ok'] = true;
    		$r['txt'] = '<span class="item">('.$sspath.')</span>';
    	}else{
    		$r['ok'] = false;
    		$r['txt'] = _L('Warning: <span class="item">##sspath##</span> not existing or not writable.');
    		$r['txt'] = str_replace('##sspath##', $sspath, $r['txt']);
    	}
    	$req[] = $r;
    	
    	$_SESSION['available_db'] = array();
    	
    	#MSSQL Server Support
    	$r = array('req' => _L('MSSQL Server Support'));
    	$r['ok'] = function_exists( 'mssql_connect' );
    	if(!$r['ok']){
    		$r['txt'] = _L('Not available.');
    	}else{
    		$_SESSION['available_db'][] = 'mssqlpo';
    	}
    	$req[] = $r;
    	
    	#MySQL Support
    	$r = array('req' => _L('MySQL Support'));
    	$r['ok'] = function_exists( 'mysql_connect' );
    	if($r['ok']){
    		$mysql_ver = @mysql_get_server_info();
    		if($mysql_ver)
    			$r['txt'] = '('.$mysql_ver.')';
    		$_SESSION['available_db'][] = 'mysql';
    	}else{
    		$r['txt'] = _L('Not available.');
    	}
    	$req[] = $r;
    	
    	#PostgreSQL Support
    	$r = array('req' => _L('PostgreSQL Support'));
    	$r['ok'] = function_exists( 'pg_connect' );
    	if(!$r['ok']){
    		$r['txt'] = _L('Not available.');
    	}else{
    		$_SESSION['available_db'][] = 'postgres64';
    		$_SESSION['available_db'][] = 'postgres7';
    		$_SESSION['available_db'][] = 'postgres8';
    	}
    	$req[] = $r;
    	
    	#./include/config.php writable?
    	$r = array('req' => _L('./include/config.php writable?'));
    	$fn = INSTALL_PATH.'include/config.php';
    	if(!is_writable($fn)){
    		@chmod( $fn, 0777 );
    	}
    	$r['ok'] = is_writable($fn);
    	if(!$r['ok']){
    		$r['txt'] = _L('Fatal: '.INSTALL_PATH.'include/config.php is not writable, installation cannot continue.');
    		$r['fatal'] = true;
    	}
    	$req[] = $r;
    	
    	#./temp writable?
    	$r = array('req' => _L('./temp writable?'));
    	$fn = INSTALL_PATH.'/temp';
    	if(!is_writable($fn)){
    		@chmod( $fn, 0777 );
    	}
    	$r['ok'] = is_writable($fn);
    	if(!$r['ok']){
    		$r['txt'] = _L('Fatal: '.INSTALL_PATH.'temp is not writable, installation cannot continue.');
    		$r['fatal'] = true;
    	}
    	$req[] = $r;
    	
    	#./temp/templates writable?
    	$r = array('req' => _L('./temp/templates writable?'));
    	$fn = INSTALL_PATH.'temp/templates';
    	if(!is_writable($fn)){
    		@chmod( $fn, 0777 );
    	}
    	$r['ok'] = is_writable($fn);
    	if(!$r['ok']){
    		$r['txt'] = _L('Fatal: '.INSTALL_PATH.'temp/templates is not writable, installation cannot continue.');
    		$r['fatal'] = true;
    	}
    	$req[] = $r;
    	
    	return $req;
    }
    function install_db($value, $empty, & $params, & $form) {
    	global $tpl;
    	require_once 'include/create_db.php';
    	$ret = update_config('include/config.php', array('DB_DRIVER' => $form['db_driver'], 'DB_HOST' => $form['db_host'], 'DB_NAME' => $form['db_name'], 'DB_USER' => $form['db_user'], 'DB_PASSWORD' => $form['db_password']));
    	if($ret !== true){
    		$tpl->assign('form_error', $ret);
    		return 0;
    	}
    	$ret = create_db($form['db_driver'], $form['db_host'], $form['db_name'], $form['db_user'], $form['db_password']);
    	if (!$ret[0]) { #Database creation error
    		$tpl->assign('form_error', $ret[1]);
    		$tpl->assign('sql_error', $ret[2]);
    		return 0;
    	} else { #Database was created/updated
    		$tpl->assign('message', $ret[1]);
    		return 1;
    	}
    }
    
    function check_admin($value, $empty, & $params, & $form) {
    	global $tpl, $tables;
    	if (empty ($form['admin_user']) && empty ($form['admin_password']) && empty ($form['admin_passwordc']) && empty ($form['admin_email']) && empty ($form['admin_name'])) {
    		require_once 'include/create_db.php';
    		$db = ADONewConnection($form['db_driver']);
    		$db->Connect($form['db_host'], $form['db_user'], $form['db_password'], $form['db_name']);
    		$sql = "SELECT LOGIN FROM {$tables['user']['name']} WHERE ADMIN!=0";
    		$rs = $db->SelectLimit($sql, 1);
    		if (!$rs) {
    			$tpl->assign('form_error', 'SQL_ERROR_ADMIN');
    			$tpl->assign('sql_error', $db->ErrorMsg());
    			return 0;
    		}
    		if ($rs && $rs->EOF) {
    			$tpl->assign('form_error', 'ADMIN_REQUIRED');
    			return 0;
    		}
    	}
    	if(empty ($form['admin_user']) && empty ($form['admin_password']) && empty ($form['admin_passwordc']) && empty ($form['admin_email']) && empty ($form['admin_name']))
    		return 2;
    	else
    		return 1;
    }
    function create_admin($value, $empty, & $params, & $form) {
    	global $tpl, $tables;
    	require_once 'include/create_db.php';
    	$db = ADONewConnection($form['db_driver']);
    	$db->Connect($form['db_host'], $form['db_user'], $form['db_password'], $form['db_name']);
    	$sql = "SELECT * FROM {$tables['user']['name']} WHERE LOGIN='{$form['admin_user']}'";
    	$db->SetFetchMode(ADODB_FETCH_ASSOC);
    	$max_user_id = $db->GetOne("SELECT MAX(ID) FROM {$tables['user']['name']}");
    	if(!$max_user_id){
    		$max_user_id = 1;
    	} else {
    		$max_user_id++;
    	}
    	$rs = $db->SelectLimit($sql, 1);
    	if (!$rs) {
    		$tpl->assign('form_error', 'SQL_ERROR_ADMIN');
    		$tpl->assign('sql_error', $db->ErrorMsg());
    		return false;
    	}
    	$data = array ();
    	$data['LOGIN'] = $form['admin_user'];
    	$data['PASSWORD'] = $form['admin_password'];
    	$data['EMAIL'] = $form['admin_email'];
    	$data['NAME'] = $form['admin_name'];
    	$data['ADMIN'] = 1;
    	if ($rs->EOF) {
    		$mode = "INSERT";
    		$where = false;
    		$data['ID'] = $db->GenID($tables['user']['name'].'_SEQ', $max_user_id);
    	} else {
    		$mode = "UPDATE";
    		$where = "ID = ".$rs->fields['ID'];
    		// Create a new sequence to cater for upgrading installation.
    		$db->CreateSequence($tables['user']['name'].'_SEQ', $max_user_id);
    
    	}
    	if (!$db->AutoExecute($tables['user']['name'], $data, $mode, $where)) {
    		$tpl->assign('form_error', 'SQL_ERROR_ADMIN');
    		$tpl->assign('sql_error', $db->ErrorMsg());
    		return false;
    	}
    	return 1;
    }
    ?>
    PHP:
     
    itdevil, Sep 30, 2007 IP