diff --git a/sql/swad.sql b/sql/swad.sql
index 2449e40f..63f55baa 100644
--- a/sql/swad.sql
+++ b/sql/swad.sql
@@ -816,14 +816,6 @@ CREATE TABLE IF NOT EXISTS mch_times (
ElapsedTime TIME NOT NULL DEFAULT 0,
UNIQUE INDEX(MchCod,QstInd));
--
--- Table hidden_params: stores some hidden parameters passed from a page to another using database instead of forms
---
-CREATE TABLE IF NOT EXISTS hidden_params (
- SessionId CHAR(43) NOT NULL,
- ParamName VARCHAR(255) NOT NULL,
- ParamValue LONGTEXT NOT NULL,
- INDEX(SessionId));
---
-- Table holidays: stores the holidays in each institution
--
CREATE TABLE IF NOT EXISTS holidays (
@@ -1284,6 +1276,14 @@ CREATE TABLE IF NOT EXISTS room_check_in (
INDEX(UsrCod,CheckInTime),
INDEX(CheckInTime));
--
+-- Table ses_params: stores some hidden parameters passed from a page to another using database instead of forms
+--
+CREATE TABLE IF NOT EXISTS ses_params (
+ SessionId CHAR(43) NOT NULL,
+ ParamName VARCHAR(255) NOT NULL,
+ ParamValue LONGTEXT NOT NULL,
+ INDEX(SessionId));
+--
-- Table sessions: stores the information of open sessions
--
CREATE TABLE IF NOT EXISTS sessions (
diff --git a/swad_changelog.h b/swad_changelog.h
index 4281a976..6a5c8953 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -600,13 +600,17 @@ TODO: Salvador Romero Cort
TODO: FIX BUG, URGENT! En las fechas como parámetro Dat_WriteParamsIniEndDates(), por ejemplo al cambiar el color de la gráfica de accesos por día y hora, no se respeta la zona horaria.
*/
-#define Log_PLATFORM_VERSION "SWAD 20.51.12 (2021-03-18)"
+#define Log_PLATFORM_VERSION "SWAD 20.51.13 (2021-03-18)"
#define CSS_FILE "swad20.45.css"
#define JS_FILE "swad20.6.2.js"
/*
TODO: Rename CENTRE to CENTER in help wiki.
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
+ Version 20.51.13: Mar 18, 2021 Session parameters database table renamed. (307862 lines)
+ 1 change necessary in database:
+RENAME TABLE hidden_params TO ses_params;
+
Version 20.51.12: Mar 18, 2021 Forum threads database tables renamed. (307859 lines)
3 changes necessary in database:
RENAME TABLE forum_thr_clip TO for_clipboards;
diff --git a/swad_database.c b/swad_database.c
index df01f4f2..6f90dc43 100644
--- a/swad_database.c
+++ b/swad_database.c
@@ -1772,24 +1772,6 @@ mysql> DESCRIBE mch_times;
"ElapsedTime TIME NOT NULL DEFAULT 0,"
"UNIQUE INDEX(MchCod,QstInd))");
- /***** Table hidden_params *****/
-/*
-mysql> DESCRIBE hidden_params;
-+------------+--------------+------+-----+---------+-------+
-| Field | Type | Null | Key | Default | Extra |
-+------------+--------------+------+-----+---------+-------+
-| SessionId | char(43) | NO | MUL | NULL | |
-| ParamName | varchar(255) | NO | | NULL | |
-| ParamValue | longtext | NO | | NULL | |
-+------------+--------------+------+-----+---------+-------+
-3 rows in set (0.01 sec)
-*/
- DB_CreateTable ("CREATE TABLE IF NOT EXISTS hidden_params ("
- "SessionId CHAR(43) NOT NULL," // Cns_BYTES_SESSION_ID
- "ParamName VARCHAR(255) NOT NULL,"
- "ParamValue LONGTEXT NOT NULL,"
- "INDEX(SessionId))");
-
/***** Table holidays *****/
/*
mysql> DESCRIBE holidays;
@@ -2703,6 +2685,24 @@ mysql> DESCRIBE room_check_in;
"INDEX(UsrCod,CheckInTime),"
"INDEX(CheckInTime))");
+ /***** Table ses_params *****/
+/*
+mysql> DESCRIBE ses_params;
++------------+--------------+------+-----+---------+-------+
+| Field | Type | Null | Key | Default | Extra |
++------------+--------------+------+-----+---------+-------+
+| SessionId | char(43) | NO | MUL | NULL | |
+| ParamName | varchar(255) | NO | | NULL | |
+| ParamValue | longtext | NO | | NULL | |
++------------+--------------+------+-----+---------+-------+
+3 rows in set (0.01 sec)
+*/
+ DB_CreateTable ("CREATE TABLE IF NOT EXISTS ses_params ("
+ "SessionId CHAR(43) NOT NULL," // Cns_BYTES_SESSION_ID
+ "ParamName VARCHAR(255) NOT NULL,"
+ "ParamValue LONGTEXT NOT NULL,"
+ "INDEX(SessionId))");
+
/***** Table sessions *****/
/*
mysql> DESCRIBE sessions;
diff --git a/swad_global.c b/swad_global.c
index c914ab3f..89d3e99d 100644
--- a/swad_global.c
+++ b/swad_global.c
@@ -136,8 +136,6 @@ void Gbl_InitializeGlobals (void)
Gbl.DB.DatabaseIsOpen = false;
Gbl.DB.LockedTables = false;
- Gbl.HiddenParamsInsertedIntoDB = false;
-
Gbl.Prefs.Language = Txt_Current_CGI_SWAD_Language;
Gbl.Prefs.FirstDayOfWeek = Cal_FIRST_DAY_OF_WEEK_DEFAULT; // Default first day of week
Gbl.Prefs.DateFormat = Dat_FORMAT_DEFAULT; // Default date format
@@ -153,6 +151,7 @@ void Gbl_InitializeGlobals (void)
Gbl.Session.IsOpen = false;
Gbl.Session.HasBeenDisconnected = false;
Gbl.Session.Id[0] = '\0';
+ Gbl.Session.ParamsInsertedIntoDB = false;
Gbl.Usrs.Me.UsrIdLogin[0] = '\0';
Gbl.Usrs.Me.LoginPlainPassword[0] = '\0';
@@ -160,7 +159,6 @@ void Gbl_InitializeGlobals (void)
Gbl.Usrs.Me.UsrDat.UsrIDNickOrEmail[0] = '\0';
Usr_UsrDataConstructor (&Gbl.Usrs.Me.UsrDat);
Usr_ResetMyLastData ();
- Gbl.Session.Id[0] = '\0';
Gbl.Usrs.Me.Logged = false;
Gbl.Usrs.Me.Role.Available = 0;
Gbl.Usrs.Me.Role.FromSession =
@@ -358,7 +356,7 @@ void Gbl_Cleanup (void)
if (!Gbl.Action.UsesAJAX &&
!Gbl.WebService.IsWebService &&
Act_GetBrowserTab (Gbl.Action.Act) == Act_BRW_1ST_TAB)
- Ses_RemoveHiddenParFromThisSession ();
+ Ses_RemoveParamFromThisSession ();
Usr_FreeMyCourses ();
Usr_FreeMyDegrees ();
Usr_FreeMyCenters ();
diff --git a/swad_global.h b/swad_global.h
index 048df868..f3ca53b3 100644
--- a/swad_global.h
+++ b/swad_global.h
@@ -132,8 +132,6 @@ struct Globals
bool LockedTables;
} DB;
- bool HiddenParamsInsertedIntoDB; // If parameters are inserted in the database in this execution
-
/* To compute execution time of the program */
struct timeval tvStart;
struct timeval tvPageCreated;
@@ -165,6 +163,7 @@ struct Globals
bool HasBeenDisconnected;
char Id[Cns_BYTES_SESSION_ID + 1];
long UsrCod;
+ bool ParamsInsertedIntoDB; // If parameters are inserted in the database in this session
} Session;
struct
diff --git a/swad_session.c b/swad_session.c
index b4d3cb53..bb7372c1 100644
--- a/swad_session.c
+++ b/swad_session.c
@@ -52,7 +52,7 @@ extern struct Globals Gbl;
static void Ses_RemoveSessionFromDB (void);
-static bool Ses_CheckIfHiddenParIsAlreadyInDB (const char *ParamName);
+static bool Ses_CheckIfParamIsAlreadyInDB (const char *ParamName);
static void Ses_DeletePublicDirFromCache (const char *FullPathMediaPriv);
@@ -131,7 +131,7 @@ void Ses_CloseSession (void)
Con_RemoveOldConnected ();
/***** Remove unused data associated to expired sessions *****/
- Ses_RemoveHiddenParFromExpiredSessions ();
+ Ses_RemoveParamsFromExpiredSessions ();
Ses_RemovePublicDirsFromExpiredSessions ();
/***** Now, user is not logged in *****/
@@ -332,24 +332,24 @@ bool Ses_GetSessionData (void)
}
/*****************************************************************************/
-/******************* Insert hidden parameter in the database *****************/
+/******************* Insert session parameter in the database ****************/
/*****************************************************************************/
-void Ses_InsertHiddenParInDB (const char *ParamName,const char *ParamValue)
+void Ses_InsertParamInDB (const char *ParamName,const char *ParamValue)
{
- /***** Before of inserting the first hidden parameter passed to the next action,
+ /***** Before of inserting the first session parameter passed to the next action,
delete all the parameters coming from the previous action *****/
- Ses_RemoveHiddenParFromThisSession ();
+ Ses_RemoveParamFromThisSession ();
/***** For a unique session-parameter,
don't insert a parameter more than one time *****/
if (ParamName)
if (ParamName[0])
- if (!Ses_CheckIfHiddenParIsAlreadyInDB (ParamName))
+ if (!Ses_CheckIfParamIsAlreadyInDB (ParamName))
{
- /***** Insert parameter in the database *****/
- DB_QueryINSERT ("can not create hidden parameter",
- "INSERT INTO hidden_params"
+ /***** Insert session parameter in the database *****/
+ DB_QueryINSERT ("can not create session parameter",
+ "INSERT INTO ses_params"
" (SessionId,ParamName,ParamValue)"
" VALUES"
" ('%s','%s','%s')",
@@ -357,21 +357,22 @@ void Ses_InsertHiddenParInDB (const char *ParamName,const char *ParamValue)
ParamName,
ParamValue ? ParamValue :
"");
- Gbl.HiddenParamsInsertedIntoDB = true;
+ Gbl.Session.ParamsInsertedIntoDB = true;
}
}
/*****************************************************************************/
-/************ Remove hidden parameters of a session from database ************/
+/************ Remove session parameters of a session from database ***********/
/*****************************************************************************/
-void Ses_RemoveHiddenParFromThisSession (void)
+void Ses_RemoveParamFromThisSession (void)
{
if (Gbl.Session.IsOpen && // There is an open session
- !Gbl.HiddenParamsInsertedIntoDB) // No params just inserted
- /***** Remove hidden parameters of this session *****/
- DB_QueryDELETE ("can not remove hidden parameters of current session",
- "DELETE FROM hidden_params WHERE SessionId='%s'",
+ !Gbl.Session.ParamsInsertedIntoDB) // No params just inserted
+ /***** Remove session parameters of this session *****/
+ DB_QueryDELETE ("can not remove session parameters of current session",
+ "DELETE FROM ses_params"
+ " WHERE SessionId='%s'",
Gbl.Session.Id);
}
@@ -379,37 +380,38 @@ void Ses_RemoveHiddenParFromThisSession (void)
/********* Remove expired hidden parameters (from expired sessions) **********/
/*****************************************************************************/
-void Ses_RemoveHiddenParFromExpiredSessions (void)
+void Ses_RemoveParamsFromExpiredSessions (void)
{
- /***** Remove hidden parameters from expired sessions *****/
- DB_QueryDELETE ("can not remove hidden parameters of expired sessions",
- "DELETE FROM hidden_params"
+ /***** Remove session parameters from expired sessions *****/
+ DB_QueryDELETE ("can not remove session parameters of expired sessions",
+ "DELETE FROM ses_params"
" WHERE SessionId NOT IN"
- " (SELECT SessionId FROM sessions)");
+ " (SELECT SessionId"
+ " FROM sessions)");
}
/*****************************************************************************/
-/*************** Check if a hidden parameter existed in database *************/
+/************** Check if a session parameter existed in database *************/
/*****************************************************************************/
// Return true if the parameter already existed in database
-static bool Ses_CheckIfHiddenParIsAlreadyInDB (const char *ParamName)
+static bool Ses_CheckIfParamIsAlreadyInDB (const char *ParamName)
{
- return (DB_QueryCOUNT ("can not check if a hidden parameter"
+ return (DB_QueryCOUNT ("can not check if a session parameter"
" is already in database",
- "SELECT COUNT(*) FROM hidden_params"
+ "SELECT COUNT(*)"
+ " FROM ses_params"
" WHERE SessionId='%s'"
- " AND ParamName='%s'",
+ " AND ParamName='%s'",
Gbl.Session.Id,
ParamName) != 0);
}
/*****************************************************************************/
-/***************** Get hidden parameter from the database ********************/
+/***************** Get session parameter from the database *******************/
/*****************************************************************************/
-void Ses_GetHiddenParFromDB (const char *ParamName,char *ParamValue,
- size_t MaxBytes)
+void Ses_GetParamFromDB (const char *ParamName,char *ParamValue,size_t MaxBytes)
{
MYSQL_RES *mysql_res;
MYSQL_ROW row;
@@ -420,12 +422,12 @@ void Ses_GetHiddenParFromDB (const char *ParamName,char *ParamValue,
ParamValue[0] = '\0';
if (Gbl.Session.IsOpen) // If the session is open, get parameter from DB
{
- /***** Get a hidden parameter from database *****/
- NumRows = DB_QuerySELECT (&mysql_res,"can not get a hidden parameter",
+ /***** Get a session parameter from database *****/
+ NumRows = DB_QuerySELECT (&mysql_res,"can not get a session parameter",
"SELECT ParamValue"
- " FROM hidden_params"
+ " FROM ses_params"
" WHERE SessionId='%s'"
- " AND ParamName='%s'",
+ " AND ParamName='%s'",
Gbl.Session.Id,
ParamName);
@@ -447,7 +449,7 @@ void Ses_GetHiddenParFromDB (const char *ParamName,char *ParamValue,
if (ParameterIsTooBig)
{
snprintf (ErrorTxt,sizeof (ErrorTxt),
- "Hidden parameter %s too large,"
+ "Session parameter %s too large,"
" it exceed the maximum allowed size (%lu bytes).",
ParamName,(unsigned long) MaxBytes);
Lay_ShowErrorAndExit (ErrorTxt);
diff --git a/swad_session.h b/swad_session.h
index 0f1bec8b..bff63364 100644
--- a/swad_session.h
+++ b/swad_session.h
@@ -47,11 +47,10 @@ void Ses_UpdateSessionLastRefreshInDB (void);
void Ses_RemoveExpiredSessions (void);
bool Ses_GetSessionData (void);
-void Ses_InsertHiddenParInDB (const char *ParamName,const char *ParamValue);
-void Ses_RemoveHiddenParFromThisSession (void);
-void Ses_RemoveHiddenParFromExpiredSessions (void);
-void Ses_GetHiddenParFromDB (const char *ParamName,char *ParamValue,
- size_t MaxBytes);
+void Ses_InsertParamInDB (const char *ParamName,const char *ParamValue);
+void Ses_RemoveParamFromThisSession (void);
+void Ses_RemoveParamsFromExpiredSessions (void);
+void Ses_GetParamFromDB (const char *ParamName,char *ParamValue,size_t MaxBytes);
bool Ses_GetPublicDirFromCache (const char *FullPathMediaPriv,
char TmpPubDir[PATH_MAX + 1]);
diff --git a/swad_user.c b/swad_user.c
index 09edafea..e05c412a 100644
--- a/swad_user.c
+++ b/swad_user.c
@@ -5718,7 +5718,7 @@ void Usr_PutHiddenParSelectedUsrsCods (struct SelectedUsrs *SelectedUsrs)
/* Put the parameter *****/
if (Gbl.Session.IsOpen)
- Ses_InsertHiddenParInDB (ParamName,SelectedUsrs->List[Rol_UNK]);
+ Ses_InsertParamInDB (ParamName,SelectedUsrs->List[Rol_UNK]);
else
Par_PutHiddenParamString (NULL,ParamName,SelectedUsrs->List[Rol_UNK]);
@@ -5748,7 +5748,7 @@ void Usr_GetListsSelectedEncryptedUsrsCods (struct SelectedUsrs *SelectedUsrs)
Usr_AllocateListSelectedEncryptedUsrCods (SelectedUsrs,Rol_UNK);
if (Gbl.Session.IsOpen) // If the session is open, get parameter from DB
{
- Ses_GetHiddenParFromDB (ParamName,SelectedUsrs->List[Rol_UNK],
+ Ses_GetParamFromDB (ParamName,SelectedUsrs->List[Rol_UNK],
Usr_MAX_BYTES_LIST_ENCRYPTED_USR_CODS);
Str_ChangeFormat (Str_FROM_FORM,Str_TO_TEXT,SelectedUsrs->List[Rol_UNK],
Usr_MAX_BYTES_LIST_ENCRYPTED_USR_CODS,true);