diff --git a/app/i18n/en.php b/app/i18n/en.php index 9afc0182c..8c87062f4 100644 --- a/app/i18n/en.php +++ b/app/i18n/en.php @@ -266,6 +266,8 @@ return array ( 'curl_is_nok' => 'You haven\'t cURL', 'pdomysql_is_ok' => 'You have PDO and its driver for MySQL', 'pdomysql_is_nok' => 'You haven\'t PDO or its driver for MySQL', + 'dom_is_ok' => 'You have the necessary to browse the DOM', + 'dom_is_nok' => 'You haven\'t the necessary to browse the DOM (php-xml package can be useful)', 'cache_is_ok' => 'Permissions on cache directory are good', 'log_is_ok' => 'Permissions on logs directory are good', 'conf_is_ok' => 'Permissions on configuration directory are good', @@ -285,6 +287,7 @@ return array ( 'username' => 'Username', 'password' => 'Password', 'bdd' => 'Database', + 'prefix' => 'Table prefix', 'installation_is_ok' => 'Installation process is finished. You must delete install.php file to access FreshRSS... or simply click on following button :)', 'finish_installation' => 'Finish installation', diff --git a/app/i18n/fr.php b/app/i18n/fr.php index 57e288166..73da583ed 100644 --- a/app/i18n/fr.php +++ b/app/i18n/fr.php @@ -266,6 +266,8 @@ return array ( 'curl_is_nok' => 'Vous ne disposez pas de cURL', 'pdomysql_is_ok' => 'Vous disposez de PDO et de son driver pour MySQL', 'pdomysql_is_nok' => 'Vous ne disposez pas de PDO ou de son driver pour MySQL', + 'dom_is_ok' => 'Vous disposez du nécessaire pour parcourir le DOM', + 'dom_is_nok' => 'Vous ne disposez pas du nécessaire pour parcourir le DOM (voir du côté du paquet php-xml ?)', 'cache_is_ok' => 'Les droits sur le répertoire de cache sont bons', 'log_is_ok' => 'Les droits sur le répertoire des logs sont bons', 'conf_is_ok' => 'Les droits sur le répertoire de configuration sont bons', @@ -285,6 +287,7 @@ return array ( 'username' => 'Nom utilisateur', 'password' => 'Mot de passe', 'bdd' => 'Base de données', + 'prefix' => 'Préfixe des tables', 'installation_is_ok' => 'L\'installation s\'est bien passée. Il faut maintenant supprimer le fichier install.php pour pouvoir accéder à FreshRSS... ou simplement cliquer sur le bouton ci-dessous :)', 'finish_installation' => 'Terminer l\'installation', diff --git a/app/models/Category.php b/app/models/Category.php index 197c4df26..e733b15ba 100755 --- a/app/models/Category.php +++ b/app/models/Category.php @@ -65,7 +65,7 @@ class Category extends Model { class CategoryDAO extends Model_pdo { public function addCategory ($valuesTmp) { - $sql = 'INSERT INTO category (id, name, color) VALUES(?, ?, ?)'; + $sql = 'INSERT INTO ' . $this->prefix . 'category (id, name, color) VALUES(?, ?, ?)'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -84,7 +84,7 @@ class CategoryDAO extends Model_pdo { } public function updateCategory ($id, $valuesTmp) { - $sql = 'UPDATE category SET name=?, color=? WHERE id=?'; + $sql = 'UPDATE ' . $this->prefix . 'category SET name=?, color=? WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -103,7 +103,7 @@ class CategoryDAO extends Model_pdo { } public function deleteCategory ($id) { - $sql = 'DELETE FROM category WHERE id=?'; + $sql = 'DELETE FROM ' . $this->prefix . 'category WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -118,7 +118,7 @@ class CategoryDAO extends Model_pdo { } public function searchById ($id) { - $sql = 'SELECT * FROM category WHERE id=?'; + $sql = 'SELECT * FROM ' . $this->prefix . 'category WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -134,7 +134,7 @@ class CategoryDAO extends Model_pdo { } } public function searchByName ($name) { - $sql = 'SELECT * FROM category WHERE name=?'; + $sql = 'SELECT * FROM ' . $this->prefix . 'category WHERE name=?'; $stm = $this->bd->prepare ($sql); $values = array ($name); @@ -151,7 +151,7 @@ class CategoryDAO extends Model_pdo { } public function listCategories () { - $sql = 'SELECT * FROM category ORDER BY name'; + $sql = 'SELECT * FROM ' . $this->prefix . 'category ORDER BY name'; $stm = $this->bd->prepare ($sql); $stm->execute (); @@ -159,7 +159,7 @@ class CategoryDAO extends Model_pdo { } public function getDefault () { - $sql = 'SELECT * FROM category WHERE id="000000"'; + $sql = 'SELECT * FROM ' . $this->prefix . 'category WHERE id="000000"'; $stm = $this->bd->prepare ($sql); $stm->execute (); @@ -190,7 +190,7 @@ class CategoryDAO extends Model_pdo { } public function count () { - $sql = 'SELECT COUNT(*) AS count FROM category'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'category'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -199,7 +199,7 @@ class CategoryDAO extends Model_pdo { } public function countFeed ($id) { - $sql = 'SELECT COUNT(*) AS count FROM feed WHERE category=?'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'feed WHERE category=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); $stm->execute ($values); @@ -209,7 +209,7 @@ class CategoryDAO extends Model_pdo { } public function countNotRead ($id) { - $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id WHERE category=? AND e.is_read=0'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id WHERE category=? AND e.is_read=0'; $stm = $this->bd->prepare ($sql); $values = array ($id); $stm->execute ($values); diff --git a/app/models/Entry.php b/app/models/Entry.php index 1382a0d16..ae70bb58e 100755 --- a/app/models/Entry.php +++ b/app/models/Entry.php @@ -222,7 +222,7 @@ class Entry extends Model { class EntryDAO extends Model_pdo { public function addEntry ($valuesTmp) { - $sql = 'INSERT INTO entry(id, guid, title, author, content, link, date, is_read, is_favorite, is_public, id_feed, lastUpdate, tags) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; + $sql = 'INSERT INTO ' . $this->prefix . 'entry(id, guid, title, author, content, link, date, is_read, is_favorite, is_public, id_feed, lastUpdate, tags) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -261,7 +261,7 @@ class EntryDAO extends Model_pdo { } $set = substr ($set, 0, -2); - $sql = 'UPDATE entry SET ' . $set . ' WHERE id=?'; + $sql = 'UPDATE ' . $this->prefix . 'entry SET ' . $set . ' WHERE id=?'; $stm = $this->bd->prepare ($sql); foreach ($valuesTmp as $v) { @@ -279,7 +279,7 @@ class EntryDAO extends Model_pdo { } public function markReadEntries ($read, $dateMax) { - $sql = 'UPDATE entry e INNER JOIN feed f ON e.id_feed = f.id SET is_read = ? WHERE date < ? AND priority > 0'; + $sql = 'UPDATE ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id SET is_read = ? WHERE date < ? AND priority > 0'; $stm = $this->bd->prepare ($sql); $values = array ($read, $dateMax); @@ -293,7 +293,7 @@ class EntryDAO extends Model_pdo { } } public function markReadCat ($id, $read, $dateMax) { - $sql = 'UPDATE entry e INNER JOIN feed f ON e.id_feed = f.id SET is_read = ? WHERE category = ? AND date < ?'; + $sql = 'UPDATE ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id SET is_read = ? WHERE category = ? AND date < ?'; $stm = $this->bd->prepare ($sql); $values = array ($read, $id, $dateMax); @@ -307,7 +307,7 @@ class EntryDAO extends Model_pdo { } } public function markReadFeed ($id, $read, $dateMax) { - $sql = 'UPDATE entry SET is_read = ? WHERE id_feed = ? AND date < ?'; + $sql = 'UPDATE ' . $this->prefix . 'entry SET is_read = ? WHERE id_feed = ? AND date < ?'; $stm = $this->bd->prepare ($sql); $values = array ($read, $id, $dateMax); @@ -332,7 +332,7 @@ class EntryDAO extends Model_pdo { } $set = substr ($set, 0, -2); - $sql = 'UPDATE entry SET ' . $set; + $sql = 'UPDATE ' . $this->prefix . 'entry SET ' . $set; $stm = $this->bd->prepare ($sql); foreach ($valuesTmp as $v) { @@ -350,7 +350,7 @@ class EntryDAO extends Model_pdo { public function cleanOldEntries ($nb_month) { $date = 60 * 60 * 24 * 30 * $nb_month; - $sql = 'DELETE FROM entry WHERE date <= ? AND is_favorite = 0 AND annotation = ""'; + $sql = 'DELETE FROM ' . $this->prefix . 'entry WHERE date <= ? AND is_favorite = 0 AND annotation = ""'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -368,7 +368,7 @@ class EntryDAO extends Model_pdo { public function searchByGuid ($feed_id, $id) { // un guid est unique pour un flux donné - $sql = 'SELECT * FROM entry WHERE id_feed=? AND guid=?'; + $sql = 'SELECT * FROM ' . $this->prefix . 'entry WHERE id_feed=? AND guid=?'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -388,7 +388,7 @@ class EntryDAO extends Model_pdo { } public function searchById ($id) { - $sql = 'SELECT * FROM entry WHERE id=?'; + $sql = 'SELECT * FROM ' . $this->prefix . 'entry WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -417,8 +417,8 @@ class EntryDAO extends Model_pdo { $order = ''; } - $sql = 'SELECT e.* FROM entry e' - . ' INNER JOIN feed f ON e.id_feed = f.id' . $where + $sql = 'SELECT e.* FROM ' . $this->prefix . 'entry e' + . ' INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id' . $where . ' ORDER BY date' . $order; $stm = $this->bd->prepare ($sql); $stm->execute ($values); @@ -442,7 +442,7 @@ class EntryDAO extends Model_pdo { } public function count () { - $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id WHERE priority > 0'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id WHERE priority > 0'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -450,7 +450,7 @@ class EntryDAO extends Model_pdo { return $res[0]['count']; } public function countNotRead () { - $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id WHERE is_read=0 AND priority > 0'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id WHERE is_read=0 AND priority > 0'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -459,7 +459,7 @@ class EntryDAO extends Model_pdo { } public function countNotReadByFeed ($id) { - $sql = 'SELECT COUNT(*) AS count FROM entry WHERE is_read = 0 AND id_feed = ?'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry WHERE is_read = 0 AND id_feed = ?'; $stm = $this->bd->prepare ($sql); $stm->execute (array ($id)); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -468,7 +468,7 @@ class EntryDAO extends Model_pdo { } public function countNotReadByCat ($id) { - $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id WHERE is_read=0 AND category = ?'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id WHERE is_read=0 AND category = ?'; $stm = $this->bd->prepare ($sql); $stm->execute (array ($id)); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -477,7 +477,7 @@ class EntryDAO extends Model_pdo { } public function countNotReadFavorites () { - $sql = 'SELECT COUNT(*) AS count FROM entry WHERE is_read=0 AND is_favorite=1'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry WHERE is_read=0 AND is_favorite=1'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -485,7 +485,7 @@ class EntryDAO extends Model_pdo { return $res[0]['count']; } public function countFavorites () { - $sql = 'SELECT COUNT(*) AS count FROM entry WHERE is_favorite=1'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry WHERE is_favorite=1'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -494,7 +494,7 @@ class EntryDAO extends Model_pdo { } public function optimizeTable() { - $sql = 'OPTIMIZE TABLE entry'; + $sql = 'OPTIMIZE TABLE ' . $this->prefix . 'entry'; $stm = $this->bd->prepare ($sql); $stm->execute (); } diff --git a/app/models/Feed.php b/app/models/Feed.php index 9d1047bd4..a7788df17 100644 --- a/app/models/Feed.php +++ b/app/models/Feed.php @@ -240,7 +240,7 @@ class Feed extends Model { class FeedDAO extends Model_pdo { public function addFeed ($valuesTmp) { - $sql = 'INSERT INTO feed (id, url, category, name, website, description, lastUpdate, priority, httpAuth, error) VALUES(?, ?, ?, ?, ?, ?, ?, 10, ?, 0)'; + $sql = 'INSERT INTO ' . $this->prefix . 'feed (id, url, category, name, website, description, lastUpdate, priority, httpAuth, error) VALUES(?, ?, ?, ?, ?, ?, ?, 10, ?, 0)'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -274,7 +274,7 @@ class FeedDAO extends Model_pdo { } $set = substr ($set, 0, -2); - $sql = 'UPDATE feed SET ' . $set . ' WHERE id=?'; + $sql = 'UPDATE ' . $this->prefix . 'feed SET ' . $set . ' WHERE id=?'; $stm = $this->bd->prepare ($sql); foreach ($valuesTmp as $v) { @@ -292,7 +292,7 @@ class FeedDAO extends Model_pdo { } public function updateLastUpdate ($id) { - $sql = 'UPDATE feed SET lastUpdate=?, error=0 WHERE id=?'; + $sql = 'UPDATE ' . $this->prefix . 'feed SET lastUpdate=?, error=0 WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -310,7 +310,7 @@ class FeedDAO extends Model_pdo { } public function isInError ($id) { - $sql = 'UPDATE feed SET error=1 WHERE id=?'; + $sql = 'UPDATE ' . $this->prefix . 'feed SET error=1 WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -333,7 +333,7 @@ class FeedDAO extends Model_pdo { $newCat = $catDAO->getDefault (); } - $sql = 'UPDATE feed SET category=? WHERE category=?'; + $sql = 'UPDATE ' . $this->prefix . 'feed SET category=? WHERE category=?'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -351,7 +351,7 @@ class FeedDAO extends Model_pdo { } public function deleteFeed ($id) { - $sql = 'DELETE FROM feed WHERE id=?'; + $sql = 'DELETE FROM ' . $this->prefix . 'feed WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -365,7 +365,7 @@ class FeedDAO extends Model_pdo { } } public function deleteFeedByCategory ($id) { - $sql = 'DELETE FROM feed WHERE category=?'; + $sql = 'DELETE FROM ' . $this->prefix . 'feed WHERE category=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -380,7 +380,7 @@ class FeedDAO extends Model_pdo { } public function searchById ($id) { - $sql = 'SELECT * FROM feed WHERE id=?'; + $sql = 'SELECT * FROM ' . $this->prefix . 'feed WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -396,7 +396,7 @@ class FeedDAO extends Model_pdo { } } public function searchByUrl ($url) { - $sql = 'SELECT * FROM feed WHERE url=?'; + $sql = 'SELECT * FROM ' . $this->prefix . 'feed WHERE url=?'; $stm = $this->bd->prepare ($sql); $values = array ($url); @@ -413,7 +413,7 @@ class FeedDAO extends Model_pdo { } public function listFeeds () { - $sql = 'SELECT * FROM feed ORDER BY name'; + $sql = 'SELECT * FROM ' . $this->prefix . 'feed ORDER BY name'; $stm = $this->bd->prepare ($sql); $stm->execute (); @@ -421,7 +421,7 @@ class FeedDAO extends Model_pdo { } public function listFeedsOrderUpdate () { - $sql = 'SELECT * FROM feed ORDER BY lastUpdate'; + $sql = 'SELECT * FROM ' . $this->prefix . 'feed ORDER BY lastUpdate'; $stm = $this->bd->prepare ($sql); $stm->execute (); @@ -429,7 +429,7 @@ class FeedDAO extends Model_pdo { } public function listByCategory ($cat) { - $sql = 'SELECT * FROM feed WHERE category=? ORDER BY name'; + $sql = 'SELECT * FROM ' . $this->prefix . 'feed WHERE category=? ORDER BY name'; $stm = $this->bd->prepare ($sql); $values = array ($cat); @@ -440,7 +440,7 @@ class FeedDAO extends Model_pdo { } public function count () { - $sql = 'SELECT COUNT(*) AS count FROM feed'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'feed'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -449,7 +449,7 @@ class FeedDAO extends Model_pdo { } public function countEntries ($id) { - $sql = 'SELECT COUNT(*) AS count FROM entry WHERE id_feed=?'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry WHERE id_feed=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); $stm->execute ($values); @@ -458,7 +458,7 @@ class FeedDAO extends Model_pdo { return $res[0]['count']; } public function countNotRead ($id) { - $sql = 'SELECT COUNT(*) AS count FROM entry WHERE is_read=0 AND id_feed=?'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry WHERE is_read=0 AND id_feed=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); $stm->execute ($values); diff --git a/lib/lib_phpQuery.php b/lib/lib_phpQuery.php index 708b7a3df..33ed8a011 100644 --- a/lib/lib_phpQuery.php +++ b/lib/lib_phpQuery.php @@ -514,7 +514,7 @@ class DOMDocumentWrapper { .($xhtml ? '/' : '') .'>'; if (strpos($html, 'prefix = $db['prefix']; } catch (Exception $e) { throw new PDOConnectionException ( $string, diff --git a/public/install.php b/public/install.php index 930241496..97bed4eac 100644 --- a/public/install.php +++ b/public/install.php @@ -8,14 +8,14 @@ if (isset ($_GET['step'])) { define ('STEP', 1); } -define ('SQL_REQ', 'CREATE TABLE IF NOT EXISTS `category` ( +define ('SQL_REQ', 'CREATE TABLE IF NOT EXISTS `%scategory` ( `id` varchar(6) NOT NULL, `name` varchar(255) NOT NULL, `color` varchar(7) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -CREATE TABLE IF NOT EXISTS `entry` ( +CREATE TABLE IF NOT EXISTS `%sentry` ( `id` varchar(6) NOT NULL, `guid` text NOT NULL, `title` varchar(255) NOT NULL, @@ -34,7 +34,7 @@ CREATE TABLE IF NOT EXISTS `entry` ( KEY `id_feed` (`id_feed`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -CREATE TABLE IF NOT EXISTS `feed` ( +CREATE TABLE IF NOT EXISTS `%sfeed` ( `id` varchar(6) NOT NULL, `url` text NOT NULL, `category` varchar(6) DEFAULT \'000000\', @@ -50,10 +50,10 @@ CREATE TABLE IF NOT EXISTS `feed` ( KEY `category` (`category`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -ALTER TABLE `entry` - ADD CONSTRAINT `entry_ibfk_1` FOREIGN KEY (`id_feed`) REFERENCES `feed` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; -ALTER TABLE `feed` - ADD CONSTRAINT `feed_ibfk_4` FOREIGN KEY (`category`) REFERENCES `category` (`id`) ON DELETE SET NULL ON UPDATE CASCADE;'); +ALTER TABLE `%sentry` + ADD CONSTRAINT `entry_ibfk_1` FOREIGN KEY (`id_feed`) REFERENCES `%sfeed` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE `%sfeed` + ADD CONSTRAINT `feed_ibfk_4` FOREIGN KEY (`category`) REFERENCES `%scategory` (`id`) ON DELETE SET NULL ON UPDATE CASCADE;'); function writeLine ($f, $line) { fwrite ($f, $line . "\n"); @@ -138,15 +138,15 @@ function saveStep2 () { return false; } - $_SESSION['sel'] = $_POST['sel']; - $_SESSION['base_url'] = $_POST['base_url']; - $_SESSION['title'] = $_POST['title']; + $_SESSION['sel'] = addslashes ($_POST['sel']); + $_SESSION['base_url'] = addslashes ($_POST['base_url']); + $_SESSION['title'] = addslashes ($_POST['title']); $_SESSION['old_entries'] = $_POST['old_entries']; if (!is_int (intval ($_SESSION['old_entries'])) || $_SESSION['old_entries'] < 1) { $_SESSION['old_entries'] = 3; } - $_SESSION['mail_login'] = $_POST['mail_login']; + $_SESSION['mail_login'] = addslashes ($_POST['mail_login']); $file_data = PUBLIC_PATH . '/data/Configuration.array.php'; @@ -172,10 +172,11 @@ function saveStep3 () { $_SESSION['bd_error'] = true; } - $_SESSION['bd_host'] = $_POST['host']; - $_SESSION['bd_user'] = $_POST['user']; - $_SESSION['bd_pass'] = $_POST['pass']; - $_SESSION['bd_name'] = $_POST['base']; + $_SESSION['bd_host'] = addslashes ($_POST['host']); + $_SESSION['bd_user'] = addslashes ($_POST['user']); + $_SESSION['bd_pass'] = addslashes ($_POST['pass']); + $_SESSION['bd_name'] = addslashes ($_POST['base']); + $_SESSION['bd_prefix'] = addslashes ($_POST['prefix']); $file_conf = APP_PATH . '/configuration/application.ini'; $f = fopen ($file_conf, 'w'); @@ -190,6 +191,7 @@ function saveStep3 () { writeLine ($f, 'user = "' . $_SESSION['bd_user'] . '"'); writeLine ($f, 'password = "' . $_SESSION['bd_pass'] . '"'); writeLine ($f, 'base = "' . $_SESSION['bd_name'] . '"'); + writeLine ($f, 'prefix = "' . $_SESSION['bd_prefix'] . '"'); fclose ($f); $res = checkBD (); @@ -240,6 +242,7 @@ function checkStep1 () { $minz = file_exists (LIB_PATH . '/minz'); $curl = extension_loaded ('curl'); $pdo = extension_loaded ('pdo_mysql'); + $dom = class_exists('DOMDocument'); $cache = CACHE_PATH && is_writable (CACHE_PATH); $log = LOG_PATH && is_writable (LOG_PATH); $conf = APP_PATH && is_writable (APP_PATH . '/configuration'); @@ -250,11 +253,12 @@ function checkStep1 () { 'minz' => $minz ? 'ok' : 'ko', 'curl' => $curl ? 'ok' : 'ko', 'pdo-mysql' => $pdo ? 'ok' : 'ko', + 'dom' => $dom ? 'ok' : 'ko', 'cache' => $cache ? 'ok' : 'ko', 'log' => $log ? 'ok' : 'ko', 'configuration' => $conf ? 'ok' : 'ko', 'data' => $data ? 'ok' : 'ko', - 'all' => $php && $minz && $curl && $pdo && $cache && $log && $conf && $data ? 'ok' : 'ko' + 'all' => $php && $minz && $curl && $pdo && $dom && $cache && $log && $conf && $data ? 'ok' : 'ko' ); } function checkStep2 () { @@ -293,8 +297,17 @@ function checkBD () { $c = new PDO ('mysql:host=' . $_SESSION['bd_host'] . ';dbname=' . $_SESSION['bd_name'], $_SESSION['bd_user'], $_SESSION['bd_pass']); - - $res = $c->query (SQL_REQ); + $sql = sprintf ( + SQL_REQ, + $_SESSION['bd_prefix'], + $_SESSION['bd_prefix'], + $_SESSION['bd_prefix'], + $_SESSION['bd_prefix'], + $_SESSION['bd_prefix'], + $_SESSION['bd_prefix'], + $_SESSION['bd_prefix'] + ); + $res = $c->query ($sql); if (!$res) { $error = true; @@ -375,6 +388,12 @@ function printStep1 () {

+ +

+ +

+ +

@@ -505,6 +524,13 @@ function printStep3 () { +
+ +
+ +
+
+
@@ -561,9 +587,7 @@ case 5: <?php echo _t ('freshrss_installation'); ?> - - - +