$conf[\'db_password\'] = \'' . $dbpasswd . '\'; $conf[\'db_host\'] = \'' . $dbhost . '\'; $prefixeTable = \'' . $prefixeTable . '\'; define(\'PHPWG_INSTALLED\', true); define(\'PWG_CHARSET\', \'utf-8\'); define(\'DB_CHARSET\', \'utf8\'); define(\'DB_COLLATE\', \'\'); ?' . '>'; @umask(0111); // writing the configuration file if (!($fp = @fopen($config_file, 'w'))) { // make sure nobody can list files of _data directory secure_directory(PHPWG_ROOT_PATH . $conf['data_location']); $tmp_filename = md5(uniqid(time())); $fh = @fopen(PHPWG_ROOT_PATH . $conf['data_location'] . 'pwg_' . $tmp_filename, 'w'); @fputs($fh, $file_content, strlen($file_content)); @fclose($fh); $template->assign(array('config_creation_failed' => true, 'config_url' => 'install.php?dl=' . $tmp_filename, 'config_file_content' => $file_content)); } @fputs($fp, $file_content, strlen($file_content)); @fclose($fp); // tables creation, based on piwigo_structure.sql execute_sqlfile(PHPWG_ROOT_PATH . 'install/piwigo_structure-mysql.sql', DEFAULT_PREFIX_TABLE, $prefixeTable, 'mysql'); // We fill the tables with basic informations execute_sqlfile(PHPWG_ROOT_PATH . 'install/config.sql', DEFAULT_PREFIX_TABLE, $prefixeTable, 'mysql'); $query = ' INSERT INTO ' . $prefixeTable . 'config (param,value,comment) VALUES (\'secret_key\',md5(' . pwg_db_cast_to_text(DB_RANDOM_FUNCTION . '()') . '),
function prepare_directory($directory) { if (!is_dir($directory)) { if (substr(PHP_OS, 0, 3) == 'WIN') { $directory = str_replace('/', DIRECTORY_SEPARATOR, $directory); } umask(00); $recursive = true; if (!@mkdir($directory, 0777, $recursive)) { die('[prepare_directory] cannot create directory "' . $directory . '"'); } } if (!is_writable($directory)) { // last chance to make the directory writable @chmod($directory, 0777); if (!is_writable($directory)) { die('[prepare_directory] directory "' . $directory . '" has no write access'); } } secure_directory($directory); }