/web/htdocs/www.euroroma.net/home/public/gallery3/installer/web.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php defined("SYSPATH") or die("No direct script access.");
/**
 * Gallery - a web based photo album viewer and editor
 * Copyright (C) 2000-2013 Bharat Mediratta
 *
 * 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.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA  02110-1301, USA.
 */
if (installer::already_installed()) {
  
$content render("success.html.php");
} else {
  switch (@
$_GET["step"]) {
  default:
  case 
"welcome":
    
$errors installer::check_environment();
    if (
$errors) {
      
$content render("environment_errors.html.php", array("errors" => $errors));
    } else {
      
$content render("get_db_info.html.php");
    }
    break;

  case 
"save_db_info":
    
$config = array("host" => $_POST["dbhost"],
                    
"user" => $_POST["dbuser"],
                    
"password" => $_POST["dbpass"],
                    
"dbname" => $_POST["dbname"],
                    
"prefix" => $_POST["prefix"],
                    
"type" => function_exists("mysqli_set_charset") ? "mysqli" "mysql");
    list (
$config["host"], $config["port"]) = explode(":"$config["host"] . ":");
    foreach (
$config as $k => $v) {
      if (
$k == "password") {
        
$config[$k] = str_replace(array("'""\\"), array("\\'""\\\\"), $v);
      } else {
        
$config[$k] = strtr($v"'`\\""___");
      }
    }

    if (!
installer::connect($config)) {
      
$content render("invalid_db_info.html.php");
    } else if (!
installer::verify_mysql_version($config)) {
      
$content render("invalid_db_version.html.php");
    } else if (!
installer::select_db($config)) {
      
$content render("missing_db.html.php");
    } else if (
is_string($count installer::db_empty($config)) || !$count) {
      if (
is_string($count)) {
        
$content oops($count);
      } else {
        
$content render("db_not_empty.html.php");
      }
    } else if (!
installer::unpack_var()) {
      
$content oops("Unable to create files inside the <code>var</code> directory");
    } else if (!
installer::unpack_sql($config)) {
      
$content oops("Failed to create tables in your database:" mysql_error());
    } else if (!
installer::create_database_config($config)) {
      
$content oops("Couldn't create var/database.php");
    } else {
      try {
        list (
$user$password) = installer::create_admin($config);
        
installer::create_admin_session($config);
        
$content render("success.html.php", array("user" => $user"password" => $password));

        
installer::create_private_key($config);
      } catch (
Exception $e) {
        
$content oops($e->getMessage());
      }
    }
    break;
  }
}

include(
"views/install.html.php");

function 
render($view$args=array()) {
  
ob_start();
  
extract($args);
  include(
DOCROOT "installer/views/" $view);
  return 
ob_get_clean();
}

function 
oops($error) {
  return 
render("oops.html.php", array("error" => $error));
}