Re: pg_connect(), force_ssl, lms-arpd i mantis
Witam.
- pg_connect() nie obsługuje przypadku, kiedy user, hasło lub nazwa
bazy jest pusta. autoryzacja w ten sposób jest możliwa: default user to ten który uruchamia webserver, hasło może być puste (TRUST), domyślna baza danych to taka sama jak username.
Tak jak napisałem - do tej pory index.php miał w nosie czy jest to pusta, czy też unsetnięta wartość. Teraz, jeżeli będzie pusta, czyli np.
user=
To zostanie przepuszczone '' dalej. Więc dopiero całkowite pominięcie niektórych[1] opcji w lms.ini spowoduje ustawienie wartości domyślnych.
[1] konkretnie opcji 'user', 'host', 'database', 'password'.
patch:
Trochę inaczej zrobiłem (dodane do repo):
diff -u -r1.11 LMSDB_driver_postgres.class.php --- lib/LMSDB_driver_postgres.class.php 12 Sep 2003 22:22:52 -0000 1.11 +++ lib/LMSDB_driver_postgres.class.php 11 Oct 2003 03:43:47 -0000 @@ -41,7 +41,14 @@
function _driver_connect($dbhost,$dbuser,$dbpasswd,$dbname) { - if($this->_dblink = pg_connect(($host != '' ? 'host='.$dbhost : '' ).' user='.$dbuser.' password='.$dbpasswd.' dbname='.$dbname)) + $cstring = join(' ',array( + ($dbhost != '' ? 'host='.$dbhost : ''), + ($dbuser != '' ? 'user='.$dbuser : ''), + ($dbpasswd != '' ? 'password='.$dbpasswd : ''), + ($dbname != '' ? 'dbname='.$dbname : '') + )); + + if($this->_dblink = pg_connect($cstring)) { $this->_dbhost = $dbhost; $this->_dbuser = $dbuser;
uczestnicy (1)
-
Łukasz Jarosław Mozer