基于mysql的bbs設(shè)計(三)
Jun 08, 2016 pm 05:33 PM對于底層數(shù)據(jù)庫,調(diào)用mysql的C API函數(shù)來進行數(shù)據(jù)庫的修改,內(nèi)部保存
一定的狀態(tài)變量(例如用戶名,還是留給上一層完成?),對上一層,則提供
用戶管理的接口。
Class UserManage {
private:
char myuserid[20]; // 用戶的id,未登陸前為空
time logintime; // 用戶登陸時間,并用于計算停留時間
char loginhost[20]; //上站地點。
public:
int NewUser( char *userid, char *passwd );
新建一個用戶,判斷是否已經(jīng)有,其他資料暫時為空,
firstlogintime,權(quán)限等設(shè)缺省值。
int UserLogin( char *userid, char *passwd );
用戶登陸,驗證密碼,
int ChangePasswd( char *oldpasswd, char *newpasswd );
修改密碼,要求原密碼一致。
int ChangePriData( char *newname, char *newemail,
char *newaddr );
改變基本數(shù)據(jù),泥稱,email,住址。。。。
int ModifyNumData( int addlogin, int addpost );
修改文章數(shù),上站次數(shù),等數(shù)據(jù)。。。。注意調(diào)用對象。
int UserLogout();
用戶退出,修改lastlogin,staytime,loginhost等
// 普通查詢命令
int QueryCommonData( const char * userid, int& loginnum,
char * username, int& postnum,
time& lastlogin, char *lasthost );
查詢網(wǎng)友基本信息。
// 特權(quán)指令,函數(shù)在完成功能前,先判斷權(quán)限。
int QueryPriData( const char * userid, char *email,
char *addr );
查詢基本信息,普通人只能查自己,有特權(quán)才能查其他人。
int ModifyUserLevel( BOOL isAdd, unsigned long level );
修改用戶的權(quán)限,
int ModifyUserId( char *oldid, char *newid );
char *newemail, char *newaddr );
修改用戶的基本數(shù)據(jù)。
int ModifyUserNumdata( char *userid, int addlogin, int addpost );
修改用戶的文章數(shù)等數(shù)據(jù)。
int ModifyUserPasswd( char *userid, char *newpasswd );
修改用戶的密碼。
}
以上各個函數(shù)難度不大,都是執(zhí)行相應(yīng)的sql語句,訪問mysql數(shù)據(jù)庫,
是否將一般指令歸到特權(quán)指令中去呢?權(quán)限的檢查,是放在這一層還是上一層?
這更多的是看考慮的著重點,是看程序的清晰性還是代碼的簡練,可能還是
看代碼吧,畢竟要考慮訪問量,另外,上層服務(wù)層是否也應(yīng)該考慮權(quán)限檢查
問題呢?

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Detailed explanation of the method of converting int type to byte in PHP In PHP, we often need to convert the integer type (int) to the byte (Byte) type, such as when dealing with network data transmission, file processing, or encryption algorithms. This article will introduce in detail how to convert the int type to the byte type and provide specific code examples. 1. The relationship between int type and byte In the computer field, the basic data type int represents an integer, while byte (Byte) is a computer storage unit, usually 8-bit binary data

The value range of int32 is from -2 to the 31st power to 2 to the 31st power minus 1, that is, -2147483648 to 2147483647. int32 is a signed integer type, which means it can represent positive numbers, negative numbers, and zero. It uses 1 bit to represent the sign bit, and the remaining 31 bits are used to represent the numerical value. Since one bit is used to represent the sign bit, the effective number of int32 bits is 31.

In C++, variables of type int can only hold positive or negative integer values; they cannot hold decimal values. There are float and double values ??available for this purpose. The double data type was created to store decimals up to seven digits after the decimal point. Conversion of an integer to a double data type can be done automatically by the compiler (called an "implicit" conversion), or it can be explicitly requested by the programmer from the compiler (called an "explicit" conversion). In the following sections, we'll cover various conversion methods. Implicit conversions The compiler performs implicit type conversions automatically. To achieve this, two variables are required - one of floating point type and the other of integer type. When we simply assign a floating point value or variable to an integer variable, the compiler takes care of all the other things

Conversion method: 1. Use the Itoa() function, the syntax "strconv.Itoa(num)"; 2. Use the FormatInt() function to convert int type data into the specified base and return it in the form of a string, the syntax "strconv .FormatInt(num,10)".

In Java, int is a 32-bit signed data type, and its variables require 32-bit memory; the valid range of the int data type is -2147483648 to 2147483647, and all integers in this range are called integer literals. An integer literal can be assigned to an int variable, such as "int num1 = 21;".

The number of bytes occupied by the int type may vary in different programming languages ??and different hardware platforms. Detailed introduction: 1. In C language, the int type usually occupies 2 bytes or 4 bytes. In 32-bit systems, the int type occupies 4 bytes, while in 16-bit systems, the int type occupies 2 bytes. In a 64-bit system, the int type may occupy 8 bytes; 2. In Java, the int type usually occupies 4 bytes, while in Python, the int type has no byte limit and can be automatically adjusted, etc.

When writing PHP programs, you often need to use the int type to store integer data. However, different programming languages ??may occupy different numbers of bytes when storing data. Therefore, some PHP programmers may ask: How many bytes does the int type in PHP occupy?

int occupies 4 bytes, which means that an int variable can store an integer value ranging from -2,147,483,648 to 2,147,483,647. In some cases, it may also be 2 bytes or 8 bytes. Int is a commonly used Data types are used to represent integers. The appropriate data type needs to be selected according to the specific situation to ensure the correctness and performance of the program.
