]> git.wh0rd.org - tt-rss.git/blobdiff - install/index.php
Merge branch 'master' of git://github.com/falu/Tiny-Tiny-RSS into falu-master
[tt-rss.git] / install / index.php
index 3deb7ad23575d14404871f5c46e9315d95661a30..6cb2ace4f370c8b5e0788354c5fd9a66b5e04893 100644 (file)
@@ -9,7 +9,26 @@
 </head>
 <body>
 
-<?
+<?php
+       function make_password($length = 8) {
+
+               $password = "";
+               $possible = "0123456789abcdfghjkmnpqrstvwxyzABCDFGHJKMNPQRSTVWXYZ*%+^";
+
+       $i = 0;
+
+               while ($i < $length) {
+                       $char = substr($possible, mt_rand(0, strlen($possible)-1), 1);
+
+                       if (!strstr($password, $char)) {
+                               $password .= $char;
+                               $i++;
+                       }
+               }
+               return $password;
+       }
+
+
        function sanity_check($db_type) {
                $errors = array();
 
                        array_push($errors, "PHP version 5.3.0 or newer required.");
                }
 
-               if (ini_get("open_basedir")) {
-                       array_push($errors, "PHP configuration option open_basedir is not supported. Please disable this in PHP settings file (php.ini).");
-               }
-
                if (!function_exists("curl_init") && !ini_get("allow_url_fopen")) {
                        array_push($errors, "PHP configuration option allow_url_fopen is disabled, and CURL functions are not present. Either enable allow_url_fopen or install PHP extension for CURL.");
                }
@@ -29,7 +44,7 @@
                        array_push($errors, "PHP support for JSON is required, but was not found.");
                }
 
-               if ($db_type == "mysql" && !function_exists("mysql_connect")) {
+               if ($db_type == "mysql" && !function_exists("mysql_connect") && !function_exists("mysqli_connect")) {
                        array_push($errors, "PHP support for MySQL is required for configured $db_type in config.php.");
                }
 
                        array_push($errors, "PHP safe mode setting is not supported.");
                } */
 
-               if ((PUBSUBHUBBUB_HUB || PUBSUBHUBBUB_ENABLED) && !function_exists("curl_init")) {
-                       array_push($errors, "PHP support for CURL is required for PubSubHubbub.");
-               }
-
                if (!class_exists("DOMDocument")) {
                        array_push($errors, "PHP support for DOMDocument is required, but was not found.");
                }
        }
 
        function print_error($msg) {
-               print "<div class='error'><img src='../images/sign_excl.svg'> $msg</div>";
+               print "<div class='error'><span><img src='../images/sign_excl.svg'></span>
+                       <span>$msg</span></div>";
        }
 
        function print_notice($msg) {
                print "<div class=\"notice\">
-                       <img src=\"../images/sign_info.svg\">$msg</div>";
+                       <span><img src=\"../images/sign_info.svg\"></span><span>$msg</span></div>";
        }
 
-       function db_connect($host, $user, $pass, $db, $type) {
+       function db_connect($host, $user, $pass, $db, $type, $port = false) {
                if ($type == "pgsql") {
 
                        $string = "dbname=$db user=$user";
                                $string .= " host=$host";
                        }
 
-                       if (defined('DB_PORT')) {
-                               $string = "$string port=" . DB_PORT;
+                       if ($port) {
+                               $string = "$string port=" . $port;
                        }
 
                        $link = pg_connect($string);
                        return $link;
 
                } else if ($type == "mysql") {
-                       $link = mysql_connect($host, $user, $pass);
-                       if ($link) {
-                               $result = mysql_select_db($db, $link);
-                               if ($result) return $link;
+                       if (function_exists("mysqli_connect")) {
+                               if ($port)
+                                       return mysqli_connect($host, $user, $pass, $db, $port);
+                               else
+                                       return mysqli_connect($host, $user, $pass, $db);
+
+                       } else {
+                               $link = mysql_connect($host, $user, $pass);
+                               if ($link) {
+                                       $result = mysql_select_db($db, $link);
+                                       if ($result) return $link;
+                               }
                        }
                }
        }
 
                $finished = false;
 
+               if (function_exists("mcrypt_decrypt")) {
+                       $crypt_key = make_password(24);
+               } else {
+                       $crypt_key = "";
+               }
+
                foreach ($data as $line) {
                        if (preg_match("/define\('DB_TYPE'/", $line)) {
                                $rv .= "\tdefine('DB_TYPE', '$DB_TYPE');\n";
                                $rv .= "\tdefine('DB_PORT', '$DB_PORT');\n";
                        } else if (preg_match("/define\('SELF_URL_PATH'/", $line)) {
                                $rv .= "\tdefine('SELF_URL_PATH', '$SELF_URL_PATH');\n";
+                       } else if (preg_match("/define\('FEED_CRYPT_KEY'/", $line)) {
+                               $rv .= "\tdefine('FEED_CRYPT_KEY', '$crypt_key');\n";
                        } else if (!$finished) {
                                $rv .= "$line\n";
                        }
                        }
                        return $result;
                } else if ($type == "mysql") {
-                       $result = mysql_query($query, $link);
+
+                       if (function_exists("mysqli_connect")) {
+                               $result = mysqli_query($link, $query);
+                       } else {
+                               $result = mysql_query($query, $link);
+                       }
                        if (!$result) {
                                $query = htmlspecialchars($query);
                                if ($die_on_error) {
 
 <fieldset>
        <label>Database name</label>
-       <input name="DB_NAME" size="20" value="<?php echo $DB_NAME ?>"/>
+       <input required name="DB_NAME" size="20" value="<?php echo $DB_NAME ?>"/>
 </fieldset>
 
 <fieldset>
        <label>Host name</label>
-       <input  name="DB_HOST" placeholder="if needed" size="20" value="<?php echo $DB_HOST ?>"/>
+       <input name="DB_HOST" size="20" value="<?php echo $DB_HOST ?>"/>
+       <span class="hint">If needed</span>
 </fieldset>
 
 <fieldset>
        <label>Port</label>
-       <input name="DB_PORT" type="number" placeholder="if needed, PgSQL only" size="20" value="<?php echo $DB_PORT ?>"/>
+       <input name="DB_PORT" type="number" size="20" value="<?php echo $DB_PORT ?>"/>
+       <span class="hint">Usually 3306 for MySQL or 5432 for PostgreSQL</span>
 </fieldset>
 
 <h2>Other settings</h2>
        <h2>Checking database</h2>
 
        <?php
-               $link = db_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME, $DB_TYPE);
+               $link = db_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME, $DB_TYPE, $DB_PORT);
 
                if (!$link) {
                        print_error("Unable to connect to database using specified parameters.");