Вход Регистрация
Файл: install/steps/paths.php
Строк: 40
<?php

function step($is_submit){

    if (
$is_submit){
        return 
check_writables();
    }

    
$root str_replace(DOC_ROOT''str_replace(DS'/'dirname(PATH)));

    
$sp session_save_path();

    if (!
$sp) {
        
$sp sys_get_temp_dir();
    }

    
$sp rtrim($sp'/');

    
$uniq uniqid();

    if(
mkdir($sp.DS.$uniq0755true) && is_writable($sp.DS.$uniq)){
        
$sp $sp.DS.$uniq;
    }

    
$paths = array(
        
'session_save_path' => $sp,
        
'root' => $root '/',
        
'upload' => $root '/' 'upload' '/',
        
'cache' => $root '/' 'cache' '/'
    
);

    
$protocol 'http://';
    if(
            (!empty(
$_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ||
            (!empty(
$_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) ||
            (!empty(
$_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
        ){
        
$protocol 'https://';
    }

    
$hosts = array(
        
'root' => $protocol rtrim($_SERVER['HTTP_HOST'], '/') . $root,
        
'upload' => $protocol rtrim($_SERVER['HTTP_HOST'], '/') . $root '/upload',
    );

    
$open_basedir = @ini_get('open_basedir'); $open_basedir_hint '';

    if(
$open_basedir){
        
$open_basedirs explode(PATH_SEPARATOR$open_basedir);
        
$open_basedir_hint LANG_PATHS_SESSIONS_BASEDIR.implode(', '$open_basedirs);
    }

    
$result = array(
        
'html' => render('step_paths', array(
            
'doc_root' => DOC_ROOT,
            
'open_basedir_hint' => $open_basedir_hint,
            
'root' => $root,
            
'paths' => $paths,
            
'hosts' => $hosts
        
))
    );

    return 
$result;

}

function 
check_writables(){

    
$error false;
    
$message '';

    
$paths $_POST['paths'];
    
$hosts $_POST['hosts'];

    
$hosts['root'] = rtrim($hosts['root'], '/');
    
$hosts['upload'] = rtrim($hosts['upload'], '/');

    
$upload rtrim(DOC_ROOT $paths['upload'], '/');
    
$cache rtrim(DOC_ROOT $paths['cache'], '/');

    if (empty(
$paths['upload']) || empty($paths['cache']) ||
            empty(
$paths['session_save_path']) || empty($hosts['root']) ||
            empty(
$hosts['upload']) || empty($paths['root'])){
        return array(
            
'error' => true,
            
'message' => LANG_ADMIN_ERROR
        
);
    }

    if (!
is_writable($upload)){
        
$error true;
        
$message LANG_PATHS_UPLOAD_PATH ' 'LANG_PATHS_NOT_WRITABLE "n" LANG_PATHS_WRITABLE_HINT;
    } else

    if (!
is_writable($cache)){
        
$error true;
        
$message LANG_PATHS_CACHE_PATH ' 'LANG_PATHS_NOT_WRITABLE "n" LANG_PATHS_WRITABLE_HINT;
    } else

    if (!
is_writable($paths['session_save_path'])){
        
$error true;
        
$message LANG_PATHS_SESSION_PATH ' 'LANG_PATHS_NOT_WRITABLE "n" LANG_PATHS_WRITABLE_HINT;
    }

    if (!
$error){
        
$_SESSION['install']['paths'] = $paths;
        
$_SESSION['install']['hosts'] = $hosts;
    }

    return array(
        
'error' => $error,
        
'message' => $message
    
);

}
Онлайн: 1
Реклама