View Issue Details

IDProjectCategoryView StatusLast Update
0016879phplist applicationInstallationpublic01-10-13 21:44
Reporterduncanc 
PrioritynormalSeverityminorReproducibilitysometimes
Status resolvedResolutionfixed 
Product Version3.0.2 
Target Version3.0.XFixed in Version3.0.5 
Summary0016879: Installation does not record the current version
DescriptionRecently I have run several clean installs of release 3.0.2, i.e. into a new empty database.

After completing the database installation and being forced to login there was an odd error displayed on the dashboard. The current version was not displayed.

Error: Your database is out of date, please make sure to upgrade
Your version :
phpList version : 3.0.2
Upgrade

The problem seems to be that the installation is not populating a row in the config table for "version".

Possibly in function SaveConfig() this line needs to force a reload of the $_SESSION["dbtables"] array:

    $_SESSION['hasconf'] = Sql_Table_Exists($tables["config"]);

change to

    $_SESSION['hasconf'] = Sql_Table_Exists($tables["config"], true);

There are several calls to SaveConfig in initialise.php that seem to be affected by this.
TagsNo tags attached.

Activities

michiel

19-09-13 14:02

manager   ~0052266

I can't seem to replicate this.

Any steps to reproduce this? I'd like to be able to replicate it to ensure the fix works.

But it's probably not a problem to force the cache update on these calls, so we could just add them anyway.

duncanc

19-09-13 14:19

developer   ~0052268

Last edited: 19-09-13 14:21

View 3 revisions

Create a new database and modify config.php
go to /lists/admin
follow steps to initialise the database including entering email, org name etc.
then login and go to the dashboard page

It seems to happen repeatedly for me in different environments - hosted Linux as well as my Windows desktop using WAMP. The message about an out of date database is displayed only on the dashboard page on logging in after the installation completes.

duncanc

19-09-13 16:10

developer   ~0052269

I think that the problem is an earlier call of sql_table_exists() before the tables have been created. That will cause $_SESSION['dbtables'] to be initialised to an empty array.

See file index.php line 101

if (!empty($_SESSION['hasconf']) || Sql_Table_exists($tables["config"],1)) {

michiel

01-10-13 21:06

manager   ~0052295

Aha, now it happened to me as well.