| 2 |
* |
* |
| 3 |
* $Revision$ |
* $Revision$ |
| 4 |
* $Log$ |
* $Log$ |
| 5 |
|
* Revision 1.12 2004/11/26 09:45:28 youi |
| 6 |
|
* getAccountを定義. |
| 7 |
|
* |
| 8 |
* Revision 1.11 2004/11/26 08:16:26 aga |
* Revision 1.11 2004/11/26 08:16:26 aga |
| 9 |
* ・getSession, loginUser, createSession, freeResult(const session_t*) 修正. |
* ・getSession, loginUser, createSession, freeResult(const session_t*) 修正. |
| 10 |
* |
* |
| 192 |
* @return |
* @return |
| 193 |
* |
* |
| 194 |
*/ |
*/ |
| 195 |
result_t getAccount( sessionid_t sid, userid_t uid, const account_t** ) |
result_t getAccount( sessionid_t sid, userid_t uid, const account_t** acc ) |
| 196 |
{ |
{ |
| 197 |
return RES_ERROR; |
if( !isValidSessionID( sid ) ) return RES_NO_SUCH_SESSION; |
| 198 |
|
|
| 199 |
|
string sql; |
| 200 |
|
MYSQL_RES* result; |
| 201 |
|
MYSQL_ROW row; |
| 202 |
|
account_t* dst = new account_t[ 1 ]; |
| 203 |
|
|
| 204 |
|
sql = "SELECT uid, name, uname, email, url, user_avatar, user_regdate, user_icq, user_from, user_sig, user_viewemail, actkey, user_aim, user_yim, user_msnm, pass, posts, attachsig, rank, level, theme, timezone_offset, last_login, umode, uorder, notify_method, notify_mode, user_occ, bio, user_intrest, user_mailok FROM " + dbprefix + "_users WHERE uid = " + string( unsignedIntToString( uid ) ); |
| 205 |
|
if( mysql_query( mysql, sql.c_str( ) ) ){ |
| 206 |
|
fprintf( stderr, "%d %s\n", mysql_errno(mysql), mysql_error(mysql) ); |
| 207 |
|
return RES_DB_QUERY_ERROR; |
| 208 |
|
} |
| 209 |
|
result = mysql_store_result( mysql ) ; |
| 210 |
|
row = mysql_fetch_row(result); |
| 211 |
|
if( row ){ |
| 212 |
|
dst -> setUID( atoi( row[ 0 ] ) ); |
| 213 |
|
dst -> setName( row[ 1 ] ); |
| 214 |
|
dst -> setUname( row[ 2 ] ); |
| 215 |
|
dst -> setEmail( row[ 3 ] ); |
| 216 |
|
dst -> setURL( row[ 4 ] ); |
| 217 |
|
dst -> setUserAvatar( row[ 5 ] ); |
| 218 |
|
dst -> setUserRegdate( atoi( row[ 6 ] ) ); |
| 219 |
|
dst -> setUserIcq( row[ 7 ] ); |
| 220 |
|
dst -> setUserFrom( row[ 8 ] ); |
| 221 |
|
dst -> setUserSig( row[ 9 ] ); |
| 222 |
|
dst -> setUserViewemail( atoi( row[ 10 ] ) ); |
| 223 |
|
dst -> setActkey( row[ 11 ] ); |
| 224 |
|
dst -> setUserAim( row[ 12 ] ); |
| 225 |
|
dst -> setUserYim( row[ 13 ] ); |
| 226 |
|
dst -> setUserMsnm( row[ 14 ] ); |
| 227 |
|
dst -> setPass( row[ 15 ] ); |
| 228 |
|
dst -> setPosts( atoi( row[ 16 ] ) ); |
| 229 |
|
dst -> setAttachsig( atoi( row[ 17 ] ) ); |
| 230 |
|
dst -> setRank( atoi( row[ 18 ] ) ); |
| 231 |
|
dst -> setLevel( atoi( row[ 19 ] ) ); |
| 232 |
|
dst -> setTheme( row[ 20 ] ); |
| 233 |
|
dst -> setTimezoneOffset( atof( row[ 21 ] ) ); |
| 234 |
|
dst -> setLastLogin( atoi( row[ 22 ] ) ); |
| 235 |
|
dst -> setUmode( row[ 23 ] ); |
| 236 |
|
dst -> setUorder( atoi( row[ 24 ] ) ); |
| 237 |
|
dst -> setNotifyMethod( atoi( row[ 25 ] ) ); |
| 238 |
|
dst -> setNotifyMode( atoi( row[ 26 ] ) ); |
| 239 |
|
dst -> setUserOcc( row[ 27 ] ); |
| 240 |
|
dst -> setBio( row[ 28 ] ); |
| 241 |
|
dst -> setUserIntrest( row[ 29 ] ); |
| 242 |
|
dst -> setUserMailok( atoi( row[ 30 ] ) ); |
| 243 |
|
}else{ |
| 244 |
|
mysql_free_result( result ); |
| 245 |
|
delete[] dst; |
| 246 |
|
return RES_NO_SUCH_USER; |
| 247 |
|
} |
| 248 |
|
mysql_free_result( result ); |
| 249 |
|
|
| 250 |
|
sql = "SELECT activate, address, institute, tel, organization, country, zipcode, fax, base_url, notice_mail, notice_mail_since FROM " + dbprefix + "_vpaccount_users WHERE uid = " + string( unsignedIntToString( uid ) ); |
| 251 |
|
if( mysql_query( mysql, sql.c_str( ) ) ){ |
| 252 |
|
fprintf( stderr, "%d %s\n", mysql_errno(mysql), mysql_error(mysql) ); |
| 253 |
|
return RES_DB_QUERY_ERROR; |
| 254 |
|
} |
| 255 |
|
result = mysql_store_result( mysql ) ; |
| 256 |
|
row = mysql_fetch_row(result); |
| 257 |
|
if( row ){ |
| 258 |
|
dst -> setActivate( atoi( row[ 0 ] ) ); |
| 259 |
|
dst -> setAddress( row[ 1 ] ); |
| 260 |
|
dst -> setInstitute( row[ 2 ] ); |
| 261 |
|
dst -> setTel( row[ 3 ] ); |
| 262 |
|
dst -> setOrganization( row[ 4 ] ); |
| 263 |
|
dst -> setCountry( row[ 5 ] ); |
| 264 |
|
dst -> setZipcode( row[ 6 ] ); |
| 265 |
|
dst -> setFax( row[ 7 ] ); |
| 266 |
|
dst -> setBaseURL( row[ 8 ] ); |
| 267 |
|
dst -> setNoticeMail( atoi( row[ 9 ] ) ); |
| 268 |
|
dst -> setNoticeMailSince( atoi( row[ 10 ] ) ); |
| 269 |
|
}else{ |
| 270 |
|
mysql_free_result( result ); |
| 271 |
|
delete[] dst; |
| 272 |
|
return RES_NO_SUCH_USER; |
| 273 |
|
} |
| 274 |
|
mysql_free_result( result ); |
| 275 |
|
|
| 276 |
|
*acc = dst; |
| 277 |
|
return RES_OK; |
| 278 |
} |
} |
| 279 |
|
|
| 280 |
/** |
/** |
| 921 |
} |
} |
| 922 |
} |
} |
| 923 |
|
|
| 924 |
void freeResult( account_t* ptr ){ delete[] ptr; } |
void freeResult( const account_t* ptr ){ delete[] ( account_t* )ptr; } |
| 925 |
|
void freeResult( const group_t* ptr ){ delete[] ( group_t* )ptr; } |
| 926 |
void freeResult( group_t* ptr ){ delete[] ptr; } |
void freeResult( const session_t* ptr ){ delete[] ( session_t* )ptr; } |
| 927 |
|
void freeResult( const int* ptr ){ delete[] ( int* )ptr; } |
|
void freeResult( const session_t* ptr ){ delete[] ptr; } |
|
|
|
|
|
void freeResult( int* ptr ){ delete[] ptr; } |
|
| 928 |
|
|
| 929 |
static string errstr; |
static string errstr; |
| 930 |
const char* getLastErrorString() |
const char* getLastErrorString() |