Version 15.207

This commit is contained in:
Antonio Cañas Vargas 2016-05-01 01:52:35 +02:00
parent b126068f00
commit fd8caa4bfe
9 changed files with 171 additions and 72 deletions

View File

@ -1202,17 +1202,17 @@ CREATE TABLE IF NOT EXISTS usr_banned (
--
CREATE TABLE IF NOT EXISTS usr_data (
UsrCod INT NOT NULL AUTO_INCREMENT,
EncryptedUsrCod CHAR(43) NOT NULL,
Password CHAR(86) COLLATE latin1_bin NOT NULL,
Surname1 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL,
Surname2 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL,
FirstName VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL,
EncryptedUsrCod CHAR(43) NOT NULL DEFAULT '',
Password CHAR(86) COLLATE latin1_bin NOT NULL DEFAULT '',
Surname1 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT '',
Surname2 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT '',
FirstName VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT '',
Sex ENUM ('unknown','female','male') NOT NULL DEFAULT 'unknown',
Theme CHAR(16) NOT NULL,
IconSet CHAR(16) NOT NULL,
Language CHAR(2) NOT NULL,
Theme CHAR(16) NOT NULL DEFAULT '',
IconSet CHAR(16) NOT NULL DEFAULT '',
Language CHAR(2) NOT NULL DEFAULT '',
FirstDayOfWeek TINYINT NOT NULL DEFAULT 0,
Photo CHAR(43) NOT NULL,
Photo CHAR(43) NOT NULL DEFAULT '',
PhotoVisibility ENUM('unknown','user','course','system','world') NOT NULL DEFAULT 'unknown',
ProfileVisibility ENUM('unknown','user','course','system','world') NOT NULL DEFAULT 'unknown',
CtyCod INT NOT NULL DEFAULT -1,
@ -1220,15 +1220,15 @@ CREATE TABLE IF NOT EXISTS usr_data (
InsCod INT NOT NULL DEFAULT -1,
DptCod INT NOT NULL DEFAULT -1,
CtrCod INT NOT NULL DEFAULT -1,
Office VARCHAR(127) NOT NULL,
OfficePhone CHAR(16) NOT NULL,
LocalAddress VARCHAR(127) NOT NULL,
LocalPhone CHAR(16) NOT NULL,
FamilyAddress VARCHAR(127) NOT NULL,
FamilyPhone CHAR(16) NOT NULL,
OriginPlace VARCHAR(127) NOT NULL,
Office VARCHAR(127) NOT NULL DEFAULT '',
OfficePhone CHAR(16) NOT NULL DEFAULT '',
LocalAddress VARCHAR(127) NOT NULL DEFAULT '',
LocalPhone CHAR(16) NOT NULL DEFAULT '',
FamilyAddress VARCHAR(127) NOT NULL DEFAULT '',
FamilyPhone CHAR(16) NOT NULL DEFAULT '',
OriginPlace VARCHAR(127) NOT NULL DEFAULT '',
Birthday DATE NOT NULL,
Comments TEXT NOT NULL,
Comments TEXT NOT NULL DEFAULT '',
Menu TINYINT NOT NULL DEFAULT 0,
SideCols TINYINT NOT NULL DEFAULT 3,
NotifNtfEvents INT NOT NULL DEFAULT 0,

View File

@ -456,6 +456,7 @@ void Acc_CreateNewUsr (struct UsrData *UsrDat)
extern const char *Pri_VisibilityDB[Pri_NUM_OPTIONS_PRIVACY];
extern const char *Txt_STR_LANG_ID[1+Txt_NUM_LANGUAGES];
extern const char *Usr_StringsSexDB[Usr_NUM_SEXS];
char BirthdayStrDB[Usr_BIRTHDAY_STR_DB_LENGTH+1];
char Query[2048];
char PathRelUsr[PATH_MAX+1];
unsigned NumID;
@ -472,6 +473,7 @@ void Acc_CreateNewUsr (struct UsrData *UsrDat)
/***** Insert new user in database *****/
/* Insert user's data */
Usr_CreateBirthdayStrDB (UsrDat,BirthdayStrDB);
sprintf (Query,"INSERT INTO usr_data (EncryptedUsrCod,Password,Surname1,Surname2,FirstName,Sex,"
"Theme,IconSet,Language,FirstDayOfWeek,PhotoVisibility,ProfileVisibility,"
"CtyCod,"
@ -480,7 +482,7 @@ void Acc_CreateNewUsr (struct UsrData *UsrDat)
" VALUES ('%s','%s','%s','%s','%s','%s',"
"'%s','%s','%s','%u','%s','%s',"
"'%ld',"
"'%s','%s','%s','%s','%s','%04u-%02u-%02u','%s',"
"'%s','%s','%s','%s','%s',%s,'%s',"
"'%u','%u','-1','0')",
UsrDat->EncryptedUsrCod,
UsrDat->Password,
@ -496,7 +498,7 @@ void Acc_CreateNewUsr (struct UsrData *UsrDat)
UsrDat->LocalAddress ,UsrDat->LocalPhone,
UsrDat->FamilyAddress,UsrDat->FamilyPhone,
UsrDat->OriginPlace,
UsrDat->Birthday.Year,UsrDat->Birthday.Month,UsrDat->Birthday.Day,
BirthdayStrDB,
UsrDat->Comments ? UsrDat->Comments :
"",
Mnu_MENU_DEFAULT,

View File

@ -130,20 +130,43 @@
// TODO: FIX BUG: A theacher uploads a document in course documents zone, then he/she unregister from course, the he/she search for his/her documents, a document is shown in results but he/she can not view it
// TODO: FIX BUG: Txt_Save_file_properties does not have sense in briefcase, because nothing to save (license should be editable in briefcase?)
// TODO: In listing of courses, teachers column is before than students column. In edition of courses, students column is before teachers column.
// TODO: List exam announcement as a list, like assignments. When clicking on an announcement, it will be shown alone, as now.
/*****************************************************************************/
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 15.206 (2016-04-30)"
#define Log_PLATFORM_VERSION "SWAD 15.207 (2016-05-01)"
#define CSS_FILE "swad15.204.1.css"
#define JS_FILE "swad15.197.js"
// Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1
/*
Version 15.207: May 01, 2016 Add default values for fields in users' data table. (201424 lines)
Birthday default value now is NULL.
18 changes necessary in database:
ALTER TABLE usr_data CHANGE COLUMN EncryptedUsrCod EncryptedUsrCod CHAR(43) NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN Password Password CHAR(86) COLLATE latin1_bin NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN Surname1 Surname1 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN Surname2 Surname2 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN FirstName FirstName VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN Theme Theme CHAR(16) NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN IconSet IconSet CHAR(16) NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN Language Language CHAR(2) NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN Photo Photo CHAR(43) NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN Office Office VARCHAR(127) NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN OfficePhone OfficePhone CHAR(16) NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN LocalAddress LocalAddress VARCHAR(127) NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN LocalPhone LocalPhone CHAR(16) NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN FamilyAddress FamilyAddress VARCHAR(127) NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN FamilyPhone FamilyPhone CHAR(16) NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN OriginPlace OriginPlace VARCHAR(127) NOT NULL DEFAULT '';
ALTER TABLE usr_data CHANGE COLUMN Birthday Birthday DATE;
UPDATE usr_data SET Birthday=NULL WHERE Birthday='0000-00-00';
Version 15.206: Apr 30, 2016 Remove default DATETIME fields to avoid errors if 0 is not allowed in date in database. (201424 lines)
6 changes necessary in database:
7 changes necessary in database:
ALTER TABLE connected CHANGE COLUMN LastTime LastTime DATETIME NOT NULL;
ALTER TABLE crs_grp_types CHANGE COLUMN OpenTime OpenTime DATETIME NOT NULL;
ALTER TABLE crs_last CHANGE COLUMN LastTime LastTime DATETIME NOT NULL;

View File

@ -2547,18 +2547,17 @@ mysql> DESCRIBE usr_data;
| Field | Type | Null | Key | Default | Extra |
+-------------------+--------------------------------------------------+------+-----+---------+----------------+
| UsrCod | int(11) | NO | PRI | NULL | auto_increment |
| EncryptedUsrCod | char(43) | NO | UNI | NULL | |
| Password | char(86) | NO | | NULL | |
| Surname1 | varchar(32) | NO | | NULL | |
| Surname2 | varchar(32) | NO | | NULL | |
| FirstName | varchar(32) | NO | | NULL | |
| EncryptedUsrCod | char(43) | NO | UNI | | |
| Password | char(86) | NO | | | |
| Surname1 | varchar(32) | NO | | | |
| Surname2 | varchar(32) | NO | | | |
| FirstName | varchar(32) | NO | | | |
| Sex | enum('unknown','female','male') | NO | | unknown | |
| Layout | tinyint(4) | NO | MUL | 0 | |
| Theme | char(16) | NO | MUL | NULL | |
| IconSet | char(16) | NO | MUL | NULL | |
| Language | char(2) | NO | MUL | NULL | |
| Theme | char(16) | NO | MUL | | |
| IconSet | char(16) | NO | MUL | | |
| Language | char(2) | NO | MUL | | |
| FirstDayOfWeek | tinyint(4) | NO | MUL | 0 | |
| Photo | char(43) | NO | | NULL | |
| Photo | char(43) | NO | | | |
| PhotoVisibility | enum('unknown','user','course','system','world') | NO | MUL | unknown | |
| ProfileVisibility | enum('unknown','user','course','system','world') | NO | MUL | unknown | |
| CtyCod | int(11) | NO | MUL | -1 | |
@ -2566,35 +2565,35 @@ mysql> DESCRIBE usr_data;
| InsCod | int(11) | NO | MUL | -1 | |
| DptCod | int(11) | NO | MUL | -1 | |
| CtrCod | int(11) | NO | MUL | -1 | |
| Office | varchar(127) | NO | | NULL | |
| OfficePhone | char(16) | NO | | NULL | |
| LocalAddress | varchar(127) | NO | | NULL | |
| LocalPhone | char(16) | NO | | NULL | |
| FamilyAddress | varchar(127) | NO | | NULL | |
| FamilyPhone | char(16) | NO | | NULL | |
| OriginPlace | varchar(127) | NO | | NULL | |
| Birthday | date | NO | | NULL | |
| Office | varchar(127) | NO | | | |
| OfficePhone | char(16) | NO | | | |
| LocalAddress | varchar(127) | NO | | | |
| LocalPhone | char(16) | NO | | | |
| FamilyAddress | varchar(127) | NO | | | |
| FamilyPhone | char(16) | NO | | | |
| OriginPlace | varchar(127) | NO | | | |
| Birthday | date | YES | | NULL | |
| Comments | text | NO | | NULL | |
| Menu | tinyint(4) | NO | MUL | 0 | |
| SideCols | tinyint(4) | NO | MUL | 3 | |
| NotifNtfEvents | int(11) | NO | | -1 | |
| NotifNtfEvents | int(11) | NO | | 0 | |
| EmailNtfEvents | int(11) | NO | | 0 | |
+-------------------+--------------------------------------------------+------+-----+---------+----------------+
33 rows in set (0.01 sec)
32 rows in set (0.00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_data ("
"UsrCod INT NOT NULL AUTO_INCREMENT,"
"EncryptedUsrCod CHAR(43) NOT NULL,"
"Password CHAR(86) COLLATE latin1_bin NOT NULL,"
"Surname1 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL,"
"Surname2 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL,"
"FirstName VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL,"
"EncryptedUsrCod CHAR(43) NOT NULL DEFAULT '',"
"Password CHAR(86) COLLATE latin1_bin NOT NULL DEFAULT '',"
"Surname1 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT '',"
"Surname2 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT '',"
"FirstName VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT '',"
"Sex ENUM ('unknown','female','male') NOT NULL DEFAULT 'unknown',"
"Theme CHAR(16) NOT NULL,"
"IconSet CHAR(16) NOT NULL,"
"Language CHAR(2) NOT NULL,"
"Theme CHAR(16) NOT NULL DEFAULT '',"
"IconSet CHAR(16) NOT NULL DEFAULT '',"
"Language CHAR(2) NOT NULL DEFAULT '',"
"FirstDayOfWeek TINYINT NOT NULL DEFAULT 0,"
"Photo CHAR(43) NOT NULL,"
"Photo CHAR(43) NOT NULL DEFAULT '',"
"PhotoVisibility ENUM('unknown','user','course','system','world') NOT NULL DEFAULT 'unknown',"
"ProfileVisibility ENUM('unknown','user','course','system','world') NOT NULL DEFAULT 'unknown',"
"CtyCod INT NOT NULL DEFAULT -1,"
@ -2602,14 +2601,14 @@ mysql> DESCRIBE usr_data;
"InsCod INT NOT NULL DEFAULT -1,"
"DptCod INT NOT NULL DEFAULT -1,"
"CtrCod INT NOT NULL DEFAULT -1,"
"Office VARCHAR(127) NOT NULL,"
"OfficePhone CHAR(16) NOT NULL,"
"LocalAddress VARCHAR(127) NOT NULL,"
"LocalPhone CHAR(16) NOT NULL,"
"FamilyAddress VARCHAR(127) NOT NULL,"
"FamilyPhone CHAR(16) NOT NULL,"
"OriginPlace VARCHAR(127) NOT NULL,"
"Birthday DATE NOT NULL,"
"Office VARCHAR(127) NOT NULL DEFAULT '',"
"OfficePhone CHAR(16) NOT NULL DEFAULT '',"
"LocalAddress VARCHAR(127) NOT NULL DEFAULT '',"
"LocalPhone CHAR(16) NOT NULL DEFAULT '',"
"FamilyAddress VARCHAR(127) NOT NULL DEFAULT '',"
"FamilyPhone CHAR(16) NOT NULL DEFAULT '',"
"OriginPlace VARCHAR(127) NOT NULL DEFAULT '',"
"Birthday DATE,"
"Comments TEXT NOT NULL,"
"Menu TINYINT NOT NULL DEFAULT 0,"
"SideCols TINYINT NOT NULL DEFAULT 3,"

View File

@ -443,6 +443,7 @@ void Enr_UpdateUsrData (struct UsrData *UsrDat)
extern const char *Pri_VisibilityDB[Pri_NUM_OPTIONS_PRIVACY];
extern const char *Txt_STR_LANG_ID[1+Txt_NUM_LANGUAGES];
extern const char *Usr_StringsSexDB[Usr_NUM_SEXS];
char BirthdayStrDB[Usr_BIRTHDAY_STR_DB_LENGTH+1];
char Query[2048];
/***** Check if user's code is initialized *****/
@ -453,6 +454,7 @@ void Enr_UpdateUsrData (struct UsrData *UsrDat)
Enr_FilterUsrDat (UsrDat);
/***** Update user's common data *****/
Usr_CreateBirthdayStrDB (UsrDat,BirthdayStrDB);
sprintf (Query,"UPDATE usr_data"
" SET Password='%s',"
"Surname1='%s',Surname2='%s',FirstName='%s',Sex='%s',"
@ -461,7 +463,7 @@ void Enr_UpdateUsrData (struct UsrData *UsrDat)
"CtyCod='%ld',"
"LocalAddress='%s',LocalPhone='%s',"
"FamilyAddress='%s',FamilyPhone='%s',"
"OriginPlace='%s',Birthday='%04u-%02u-%02u',"
"OriginPlace='%s',Birthday=%s,"
"Comments='%s'"
" WHERE UsrCod='%ld'",
UsrDat->Password,
@ -477,7 +479,7 @@ void Enr_UpdateUsrData (struct UsrData *UsrDat)
UsrDat->LocalAddress,UsrDat->LocalPhone,
UsrDat->FamilyAddress,UsrDat->FamilyPhone,
UsrDat->OriginPlace,
UsrDat->Birthday.Year,UsrDat->Birthday.Month,UsrDat->Birthday.Day,
BirthdayStrDB,
UsrDat->Comments ? UsrDat->Comments :
"",
UsrDat->UsrCod);
@ -493,9 +495,9 @@ void Enr_FilterUsrDat (struct UsrData *UsrDat)
/***** Fix birthday *****/
if (UsrDat->Birthday.Year < Gbl.Now.Date.Year-99 ||
UsrDat->Birthday.Year > Gbl.Now.Date.Year-16)
UsrDat->Birthday.Year =
UsrDat->Birthday.Year =
UsrDat->Birthday.Month =
UsrDat->Birthday.Day = 0;
UsrDat->Birthday.Day = 0;
}
/*****************************************************************************/

View File

@ -40364,7 +40364,7 @@ const char *Txt_Tag_X_not_allowed_Click_to_allow_it = // Warning: it is very imp
"Tag %s not allowed. Click to allow it."; // Necessita de tradução
#endif
#if defined LOCALHOST_UBUNTU // localhost (Ubuntu) ******************
#if defined LOCALHOST_UBUNTU // localhost (Ubuntu) *****************
const char *Txt_TAGLINE =
# if L==1
@ -40408,7 +40408,7 @@ const char *Txt_TAGLINE_BR =
"plataforma de<br />apoio ao ensino";
# endif
#elif defined OPENSWAD_ORG // openswad.org ************************
#elif defined OPENSWAD_ORG // openswad.org ***********************
const char *Txt_TAGLINE =
# if L==1
@ -40452,7 +40452,7 @@ const char *Txt_TAGLINE_BR =
"plataforma de<br />apoio ao ensino";
# endif
#elif defined SWAD_UGR_ES // swad.ugr.es *************************
#elif defined SWAD_UGR_ES // swad.ugr.es ************************
const char *Txt_TAGLINE =
# if L==1
@ -40496,7 +40496,51 @@ const char *Txt_TAGLINE_BR =
"plataforma de apoio<br />ao ensino (UGR)";
# endif
#elif defined WWW_CEVUNA_UNA_PY // www.cevuna.una.py/swad **************
#elif defined SWADBERRY_UGR_ES // swadberry.ugr.es *******************
const char *Txt_TAGLINE =
# if L==1
"plataforma de suport a la doc&egrave;ncia (Raspberry Pi)";
# elif L==2
"Plattform zur Unterst&uuml;tzung der Lehre (Raspberry Pi)";
# elif L==3
"platform to support teaching (Raspberry Pi)";
# elif L==4
"plataforma de apoyo a la docencia (Raspberry Pi)";
# elif L==5
"plate-forme pour appuyer l'enseignement (Raspberry Pi)";
# elif L==6
"plataforma de apoyo a la docencia (Raspberry Pi)"; // Okoteve traducción
# elif L==7
"piattaforma per sostenere l'insegnamento (Raspberry Pi)";
# elif L==8
"platforma do wspierania nauczania (Raspberry Pi)";
# elif L==9
"plataforma de apoio ao ensino (Raspberry Pi)";
# endif
const char *Txt_TAGLINE_BR =
# if L==1
"plataforma de suport<br />a la doc&egrave;ncia (Raspberry Pi)";
# elif L==2
"Plattform zur<br />Unterst&uuml;tzung der Lehre (Raspberry Pi)";
# elif L==3
"platform to<br />support teaching (Raspberry Pi)";
# elif L==4
"plataforma de apoyo<br />a la docencia (Raspberry Pi)";
# elif L==5
"plate-forme pour<br />appuyer l'enseignement (Raspberry Pi)";
# elif L==6
"plataforma de apoyo<br />a la docencia (Raspberry Pi)"; // Okoteve traducción
# elif L==7
"piattaforma per<br />sostenere l'insegnamento (Raspberry Pi)";
# elif L==8
"platforma do<br />wspierania nauczania (Raspberry Pi)";
# elif L==9
"plataforma de<br />apoio ao ensino (Raspberry Pi)";
# endif
#elif defined WWW_CEVUNA_UNA_PY // www.cevuna.una.py/swad *************
const char *Txt_TAGLINE =
# if L==1

View File

@ -560,8 +560,9 @@ void Usr_GetUsrDataFromUsrCod (struct UsrData *UsrDat)
strncpy (UsrDat->OriginPlace ,row[24],sizeof (UsrDat->OriginPlace ) - 1);
UsrDat->OriginPlace [sizeof (UsrDat->OriginPlace ) - 1] = '\0';
strcpy (StrBirthday,
row[25] ? row[25] :
"0000-00-00");
row[25] ? row[25] :
"0000-00-00");
Usr_GetUsrCommentsFromString (row[26] ? row[26] :
"",
UsrDat); // Get the comments comunes a todas the courses
@ -1614,7 +1615,25 @@ void Usr_WelcomeUsr (void)
}
}
/******************************************************************************/
/*****************************************************************************/
/************ Write birthday string to insert or update database *************/
/*****************************************************************************/
void Usr_CreateBirthdayStrDB (const struct UsrData *UsrDat,
char BirthdayStrDB[Usr_BIRTHDAY_STR_DB_LENGTH+1])
{
if (UsrDat->Birthday.Year == 0 ||
UsrDat->Birthday.Month == 0 ||
UsrDat->Birthday.Day == 0)
strcpy (BirthdayStrDB,"NULL");
else
sprintf (BirthdayStrDB,"'%04u-%02u-%02u'",
UsrDat->Birthday.Year,
UsrDat->Birthday.Month,
UsrDat->Birthday.Day);
}
/*****************************************************************************/
/*************** Check if my birthday is already congratulated ***************/
/*****************************************************************************/
@ -2504,7 +2523,6 @@ static void Usr_SetUsrRoleAndPrefs (void)
}
}
/***** Check if I belong to current course *****/
if (Gbl.CurrentCrs.Crs.CrsCod > 0)
Gbl.Usrs.Me.IBelongToCurrentCrs = Usr_CheckIfIBelongToCrs (Gbl.CurrentCrs.Crs.CrsCod);

View File

@ -61,6 +61,8 @@
#define Usr_MAX_BYTES_NAME 32
#define Usr_MAX_BYTES_NAME_SPEC_CHAR (Usr_MAX_BYTES_NAME*Str_MAX_LENGTH_SPEC_CHAR_HTML)
#define Usr_BIRTHDAY_STR_DB_LENGTH (1+4+1+2+1+2+1) // "'%04u-%02u-%02u'"
#define Usr_MAX_LENGTH_PHONE 16
#define Usr_MAX_BYTES_PHONE 16
@ -251,6 +253,10 @@ void Usr_Logout (void);
void Usr_PutLinkToLogin (void);
void Usr_WriteFormLogin (void);
void Usr_WelcomeUsr (void);
void Usr_CreateBirthdayStrDB (const struct UsrData *UsrDat,
char BirthdayStrDB[Usr_BIRTHDAY_STR_DB_LENGTH+1]);
void Usr_PutFormLogIn (void);
void Usr_WriteLoggedUsrHead (void);
void Usr_PutFormLogOut (void);

View File

@ -553,8 +553,13 @@ static int Svc_GetSomeUsrDataFromUsrCod (struct UsrData *UsrDat,long CrsCod)
UsrDat->Photo[sizeof (UsrDat->Photo)-1] = '\0';
/* Get user's brithday */
strncpy (UsrDat->Birthday.YYYYMMDD,row[4],4+2+2);
UsrDat->Birthday.YYYYMMDD[4+2+2] = '\0';
if (row[4])
{
strncpy (UsrDat->Birthday.YYYYMMDD,row[4],4+2+2);
UsrDat->Birthday.YYYYMMDD[4+2+2] = '\0';
}
else
strcpy (UsrDat->Birthday.YYYYMMDD,"00000000");
/* Free structure that stores the query result */
DB_FreeMySQLResult (&mysql_res);