| 2 |
* |
* |
| 3 |
* $Revision$ |
* $Revision$ |
| 4 |
* $Log$ |
* $Log$ |
| 5 |
|
* Revision 1.24 2004/12/06 01:45:50 aga |
| 6 |
|
* ・コメントつけ. |
| 7 |
|
* ・開放忘れ修正. |
| 8 |
|
* |
| 9 |
* Revision 1.23 2004/12/04 09:21:10 aga |
* Revision 1.23 2004/12/04 09:21:10 aga |
| 10 |
* ・vp_config → vpaccount_config. |
* ・vp_config → vpaccount_config. |
| 11 |
* |
* |
| 1437 |
* @param uname ログイン名 |
* @param uname ログイン名 |
| 1438 |
* @param passwd パスワード |
* @param passwd パスワード |
| 1439 |
* @param session sessionid_tを受け取るためのポインタ。 |
* @param session sessionid_tを受け取るためのポインタ。 |
| 1440 |
* @return RES_OK ログイン成功。sessionにsessionid_tを書き込んだ。 |
* @return RES_OK ログイン成功。sessionにsessionid_tを書き込んだ。<br> |
| 1441 |
* @return RES_LOGIN_FAILURE unameまたはpasswdが異常 |
* @return RES_LOGIN_FAILURE unameまたはpasswdが異常<br> |
| 1442 |
* @return RES_DB_QUERY_ERROR DB問い合わせ中のエラー |
* @return RES_DB_QUERY_ERROR DB問い合わせ中のエラー |
| 1443 |
* |
* |
| 1444 |
*/ |
*/ |
| 1484 |
*/ |
*/ |
| 1485 |
void logoutUser( sessionid_t sid ) |
void logoutUser( sessionid_t sid ) |
| 1486 |
{ |
{ |
| 1487 |
|
if( mysql == NULL ) return; // RES_DB_NOT_INITIALIZED; |
| 1488 |
|
|
| 1489 |
result_t ret; |
result_t ret; |
| 1490 |
string sql; |
string sql; |
| 1491 |
|
|
| 1506 |
/** |
/** |
| 1507 |
* |
* |
| 1508 |
* セッションの作成.<br> |
* セッションの作成.<br> |
| 1509 |
* XOOPSのsessionテーブルに記録されたsess_idと引数sessionidが等しけれ |
* XOOPSのsessionテーブルに記録されたsess_idと引数sess_idが等しけれ |
| 1510 |
* ば,session_tを作成する。 |
* ば,session_tを作成する。 |
| 1511 |
* データベースにセッションと引数の情報を記録する |
* データベースにセッションと引数の情報を記録する |
| 1512 |
* |
* |
| 1513 |
* @param sessionid xoopsのsession_id |
* @param sessionid xoopsのsession_id |
| 1514 |
* @param uid xoops_usersのuid |
* @param uid xoops_usersのuid |
| 1515 |
* @param session sessionid_tを受け取るためのポインタ。 |
* @param session sessionid_tを受け取るためのポインタ。 |
| 1516 |
* @return RES_OK |
* @return RES_OK 成功。<br> |
| 1517 |
* @return RES_ERROR |
* @return RES_ERROR |
| 1518 |
* @return RES_DB_QUERY_ERROR |
* @return RES_DB_QUERY_ERROR |
| 1519 |
* |
* |
| 1520 |
*/ |
*/ |
| 1521 |
result_t createSession( const char* sessionid, userid_t uid, sessionid_t* session ) |
result_t createSession( const char* sess_id, userid_t uid, sessionid_t* session ) |
| 1522 |
{ |
{ |
| 1523 |
if( mysql == NULL ) return RES_DB_NOT_INITIALIZED; |
if( mysql == NULL ) return RES_DB_NOT_INITIALIZED; |
| 1524 |
|
|
| 1525 |
result_t ret; |
result_t ret; |
| 1526 |
string sql; |
string sql; |
| 1527 |
|
|
| 1528 |
string escSessionid = addSlashes(sessionid); |
string escSess_id = addSlashes(sess_id); |
| 1529 |
sql = "SELECT sess_id from " + dbprefix + "_session where sess_id='" + escSessionid + "'"; |
sql = "SELECT sess_id from " + dbprefix + "_session where sess_id='" + escSess_id + "'"; |
| 1530 |
if( 0 == mysql_query( mysql, sql.c_str( ) ) ){ |
if( 0 == mysql_query( mysql, sql.c_str( ) ) ){ |
| 1531 |
MYSQL_RES* result = mysql_store_result( mysql ); |
MYSQL_RES* result = mysql_store_result( mysql ); |
| 1532 |
if( result ){ |
if( result ){ |
| 1551 |
* |
* |
| 1552 |
* セッションの詳細をsession_tで取得する.<br> |
* セッションの詳細をsession_tで取得する.<br> |
| 1553 |
* |
* |
| 1554 |
* @param sess_id |
* @param sid セッションID |
| 1555 |
* @param session |
* @param ppsession sessionid_t*を受け取るためのポインタ。 |
| 1556 |
* @return |
* @return RES_OK 成功。freeResult(*ppsession)が必要。<br> |
| 1557 |
|
* @return RES_NO_SUCH_SESSION<br> |
| 1558 |
|
* @return RES_DB_QUERY_ERROR<br> |
| 1559 |
|
* @return RES_DB_NOT_INITIALIZED |
| 1560 |
* |
* |
| 1561 |
*/ |
*/ |
| 1562 |
result_t getSession( sessionid_t sess_id, const session_t** ppsession ) |
result_t getSession( sessionid_t sid, const session_t** ppsession ) |
| 1563 |
{ |
{ |
| 1564 |
if( mysql == NULL ) return RES_DB_NOT_INITIALIZED; |
if( mysql == NULL ) return RES_DB_NOT_INITIALIZED; |
| 1565 |
|
|
| 1567 |
string sql; |
string sql; |
| 1568 |
|
|
| 1569 |
sql = "SELECT sid, uid, unix_timestamp(timestamp) from " + dbprefix + |
sql = "SELECT sid, uid, unix_timestamp(timestamp) from " + dbprefix + |
| 1570 |
"_vpaccount_session where sid=" + unsignedIntToString((unsigned int)sess_id); |
"_vpaccount_session where sid=" + unsignedIntToString((unsigned int)sid); |
| 1571 |
if( 0 == mysql_query( mysql, sql.c_str( ) ) ){ |
if( 0 == mysql_query( mysql, sql.c_str( ) ) ){ |
| 1572 |
MYSQL_RES* result = mysql_store_result( mysql ); |
MYSQL_RES* result = mysql_store_result( mysql ); |
| 1573 |
if( result ){ |
if( result ){ |
| 1574 |
MYSQL_ROW row = mysql_fetch_row(result); |
MYSQL_ROW row = mysql_fetch_row(result); |
| 1575 |
if( row ){ |
if( row ){ |
| 1576 |
session_t *p = new session[1]; |
session_t *p = new session[1]; |
| 1577 |
p->setSessionID(sess_id); |
p->setSessionID(sid); |
| 1578 |
p->setUserID(atoi(row[1])); |
p->setUserID(atoi(row[1])); |
| 1579 |
p->setDate(atoi(row[2])); |
p->setDate(atoi(row[2])); |
| 1580 |
*ppsession = p; |
*ppsession = p; |
| 1617 |
} |
} |
| 1618 |
MYSQL_RES* result = mysql_store_result( mysql ) ; |
MYSQL_RES* result = mysql_store_result( mysql ) ; |
| 1619 |
MYSQL_ROW row = mysql_fetch_row(result); |
MYSQL_ROW row = mysql_fetch_row(result); |
| 1620 |
|
mysql_free_result( result ); |
| 1621 |
if( row ){ |
if( row ){ |
| 1622 |
return true; |
return true; |
| 1623 |
}else{ |
}else{ |
| 1624 |
return false; |
return false; |
| 1625 |
} |
} |
|
mysql_free_result( result ); |
|
| 1626 |
} |
} |
| 1627 |
|
|
| 1628 |
void freeResult( const account_t* ptr ){ delete[] ( account_t* )ptr; } |
void freeResult( const account_t* ptr ){ delete[] ( account_t* )ptr; } |