Develop and Download Open Source Software

Browse CVS Repository

Diff of /xoonips/AL/commonal.cc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.5 by aga, Fri Nov 26 01:08:25 2004 UTC revision 1.6 by aga, Fri Nov 26 04:35:55 2004 UTC
# Line 2  Line 2 
2   *   *
3   * $Revision$   * $Revision$
4   * $Log$   * $Log$
5     * Revision 1.6  2004/11/26 04:35:55  aga
6     * ・loginUser(), logoutUser()を作成.
7     *
8   * Revision 1.5  2004/11/26 01:08:25  aga   * Revision 1.5  2004/11/26 01:08:25  aga
9   * ・addSlashes()作成.   * ・addSlashes()作成.
10   *   *
# Line 22  Line 25 
25   */   */
26    
27  #include <stdio.h>  #include <stdio.h>
28    #include <stdlib.h>
29  #include <string.h>  #include <string.h>
30  #include <mysql.h>  #include <mysql.h>
31  #include <string>  #include <string>
# Line 416  result_t getUid( const char* uname, user Line 420  result_t getUid( const char* uname, user
420   *   *
421   * ログイン認証とセッション作成   * ログイン認証とセッション作成
422   *   *
423   * @param   * @param uname ログイン名
424   * @return   * @param passwd パスワード
425     * @param session sessionid_tを受け取るためのポインタ。
426     * @return RES_OK ログイン成功。sessionにsessionid_tを書き込んだ。
427     * @return RES_LOGIN_FAILURE unameまたはpasswdが異常
428     * @return RES_DB_QUERY_ERROR DB問い合わせ中のエラー
429   *   *
430   */   */
431  result_t loginUser(const char* uname, const char* passwd, sessionid_t* sessions )  result_t loginUser(const char* uname, const char* passwd, sessionid_t* session )
432  {  {
433      return RES_ERROR;      result_t ret;
434        string sql;
435        
436        // uname, passwd -> uid
437        string escUname = addSlashes( uname );
438        string escPasswd = addSlashes( passwd );
439        sql = "SELECT uid FROM " + dbprefix + "_users WHERE uname='" + escUname + "' and paswd=md5('" + escPasswd + "')";
440        if( 0 == mysql_query( mysql, sql.c_str( ) ) ){
441            MYSQL_RES* result = mysql_store_result( mysql );
442            if( result ){
443                MYSQL_ROW row = mysql_fetch_row(result);
444                if( row ){
445                    // uid -> create session
446                    sql = "INSERT INTO " + dbprefix + "_vpaccount_session (uid,remote_host) values (" + row[0] + ",0)";
447                    if ( 0 == mysql_query( mysql, sql.c_str() ) ){
448                        *session = (int)mysql_insert_id(mysql);
449                        ret = RES_OK;
450                    }
451                    else {
452                        ret = RES_DB_QUERY_ERROR;
453                    }
454                }else{
455                    ret = RES_LOGIN_FAILUE;
456                }
457                mysql_free_result( result );
458            }else {
459                ret = RES_DB_QUERY_ERROR;
460            }
461        }else{
462            ret = RES_DB_QUERY_ERROR;
463        }
464        
465        return ret;
466  }  }
467    
468  /**  /**
469   *   *
470   * ログアウトとセッション終了   * ログアウトとセッション終了
471   *   *
472   * @param   * @param sid session id
473   * @return   * @return なし
474   *   *
475   */   */
476  void logoutUser( sessionid_t sid ){}  void logoutUser( sessionid_t sid ){
477        result_t ret;
478        string sql;
479        sprintf( sidstr,
480        sql = "DELETE FROM " + dbprefix + "_vpaccount_session WHERE sid=" + intToString((int)sid);
481        if ( 0 == mysql_query( mysql, sql.c_str() ) ){
482            if ( mysql_affected_rows(mysql) == 1 ){
483                // ログアウトした
484            }
485            else {
486                // sidが無効
487            }
488        }
489        else {
490            // DB問い合わせ中のエラー
491        }
492    }
493    
494  /**  /**
495   *   *

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26