Develop and Download Open Source Software

Browse CVS Repository

Annotation of /xoonips/AL/commonal.cc

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


Revision 1.8 - (hide annotations) (download) (as text)
Fri Nov 26 06:36:55 2004 UTC (19 years, 4 months ago) by aga
Branch: MAIN
Changes since 1.7: +96 -16 lines
File MIME type: text/x-c++src
・createSession, getSession を作成.

1 youi 1.1 /*
2     *
3 aga 1.8 * $Revision: 1.7 $
4 youi 1.2 * $Log: commonal.cc,v $
5 aga 1.8 * Revision 1.7 2004/11/26 04:51:47 youi
6     * dbprefix??絎?臂?????.
7     * insertAccount??絎?臂?????.
8     * isValidSessionID??絎?臂?????.
9     *
10 youi 1.7 * Revision 1.6 2004/11/26 04:35:55 aga
11     * ??oginUser(), logoutUser()??篏???.
12     *
13 aga 1.6 * Revision 1.5 2004/11/26 01:08:25 aga
14     * ??ddSlashes()篏???.
15     *
16 aga 1.5 * Revision 1.4 2004/11/25 12:14:29 youi
17     * getUid????????絎?臂?????.
18     *
19 youi 1.4 * Revision 1.3 2004/11/25 11:13:59 youi
20     * getLastErrorString/setLastErrorString??絎?臂?
21     *
22 youi 1.3 * Revision 1.2 2004/11/25 08:55:19 youi
23     * 綣??違??????篆??.
24     * freeResult??菴遵??.
25     *
26 youi 1.2 * Revision 1.1 2004/11/25 05:14:58 youi
27     * initial version
28     *
29 youi 1.1 *
30     */
31     #include <stdio.h>
32 aga 1.6 #include <stdlib.h>
33 youi 1.1 #include <string.h>
34     #include <mysql.h>
35 youi 1.3 #include <string>
36 youi 1.7 using namespace std;
37 youi 1.1
38     #include "common.h"
39     #include "account.h"
40     #include "group.h"
41     #include "session.h"
42     #include "criteria.h"
43     #include "commonal.h"
44    
45 youi 1.7
46 youi 1.1 static MYSQL* mysql = NULL; //!< MySQL????潟????/span>
47 youi 1.7 static string dbprefix; //!< XOOPS???若?帥???若?鴻???若??????REFIX
48 aga 1.5
49     /**
50     *
51     * php??ddslashes????????
52     *
53     * @param addslashes???鴻????絖?????NULL??絎?筝?????
54     * @return addslashes????????絖???
55     */
56     string addSlashes( const char *str )
57     {
58     int len = strlen(str);
59     char *buf = new char[len*2+1];
60     int bufLen = mysql_real_escape_string( mysql, buf, str, len );
61     string s( buf, bufLen );
62     return s;
63     }
64    
65 youi 1.1
66     /**
67     *
68     * ???若?帥???若?鴻????????
69     *
70     * @param host ???若?帥???若?鴻?????鴻????
71     * @param user ???若?帥???若?鴻???≪???祉?鴻???????若?九??
72     * @param password 筝?荐????若?吟?????鴻???若??
73     * @param dbname ???若?帥???若?鴻??????
74     * @param prefix XOOPS???若?帥???若?鴻???若??????REFIX
75     * @return result_t
76     * @refer result_t
77     */
78     result_t initializeDB( const char* host, const char* user, const char* password, const char* dbname, const char* prefix )
79     {
80     // ?≪??・膓?筝???????筝???????/span>
81     if ( mysql != NULL )
82     mysql_close( mysql );
83    
84 youi 1.7 dbprefix = prefix;
85    
86 youi 1.1 // ????????・膓?
87     mysql = mysql_init(NULL);
88     if ( mysql == NULL ){
89     return RES_DB_INITIALIZE_ERROR;
90     }
91     char *unix_socket = NULL; // ?
92     uint flag = 0; // ?
93     if ( NULL == mysql_real_connect( mysql, host, user, password, dbname, 3306, unix_socket, flag ) ){
94     return RES_DB_CONNECT_ERROR;
95     }
96    
97 youi 1.2 return RES_OK;
98 youi 1.1 }
99    
100    
101     /**
102     *
103     * Platform???若?倶?粋??倶????緇?
104     *
105     * @param
106     * @return
107     *
108     */
109 youi 1.2 bool isActivated( sessionid_t sid, userid_t uid )
110 youi 1.1 {
111     return false;
112     }
113    
114     /**
115     *
116     * Platform???若?倶?粋??倶??紊???/span>
117     *
118     * @param
119     * @return
120     *
121     */
122 youi 1.2 result_t activate( sessionid_t sid, userid_t uid, bool activate )
123 youi 1.1 {
124     return RES_ERROR;
125     }
126    
127     /**
128     *
129     * ?≪?????潟????/span>
130     *
131     * @param
132     * @return
133     *
134     */
135 youi 1.2 int getAccountCount( sessionid_t sid )
136 youi 1.1 {
137     return 0;
138     }
139    
140     /**
141     *
142     * ?≪?????潟??????/span>
143     *
144     * @param
145     * @return
146     *
147     */
148 youi 1.2 result_t deleteAccount( sessionid_t sid, userid_t uid )
149 youi 1.1 {
150     return RES_ERROR;
151     }
152    
153     /**
154     *
155     * ?≪?????潟?????怨??
156     *
157     * @param
158     * @return
159     *
160     */
161 youi 1.2 result_t getAccount( sessionid_t sid, userid_t uid, const account_t** )
162 youi 1.1 {
163     return RES_ERROR;
164     }
165    
166     /**
167     *
168     * ?≪?????潟?????怨??
169     *
170     * @param
171     * @return
172     *
173     */
174 youi 1.2 result_t getAccounts( sessionid_t sid, const userid_t* uids, int uidsLen, const criteria_t* cri, const account_t** accounts, int* accountsLen )
175 youi 1.1 {
176     return RES_ERROR;
177     }
178    
179     /**
180     *
181     * ?≪?????潟???脂??/span>
182     *
183 youi 1.7 * @param sid ?祉???激?с??/span>
184 youi 1.1 * @param
185     * @return
186     *
187     */
188 youi 1.2 result_t insertAccount( sessionid_t sid, const account_t* account )
189 youi 1.1 {
190 youi 1.7 // if( !isValidSessionID( sid ) ) return RES_NO_SUCH_SESSION;
191     string sql;
192     string tmp;
193     char buf[ 12 ];
194    
195     //xoops?????若?吟???若???????吾??莨若??
196     sql = "INSERT INTO " + dbprefix + "_users (uname, name, 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) VALUES (";
197     sql += "'" + string( addSlashes( account -> getUname( ) ) ) + "', ";
198     sql += "'" + string( addSlashes( account -> getName( ) ) ) + "', ";
199     sql += "'" + string( addSlashes( account -> getEmail( ) ) ) + "', ";
200     sql += "'" + string( addSlashes( account -> getURL( ) ) ) + "', ";
201     sql += "'" + string( addSlashes( account -> getUserAvatar( ) ) ) + "', ";
202     snprintf( buf, 12, "%d", time( NULL ) );
203     sql += string( buf ) + ", ";
204     sql += "'" + string( addSlashes( account -> getUserIcq( ) ) ) + "', ";
205     sql += "'" + string( addSlashes( account -> getUserFrom( ) ) ) + "', ";
206     sql += "'" + string( addSlashes( account -> getUserSig( ) ) ) + "', ";
207     snprintf( buf, 12, "%d", account -> getUserViewemail( ) );
208     sql += string( buf ) + ", ";
209     sql += "'" + string( addSlashes( account -> getActkey( ) ) ) + "', ";
210     sql += "'" + string( addSlashes( account -> getUserAim( ) ) ) + "', ";
211     sql += "'" + string( addSlashes( account -> getUserYim( ) ) ) + "', ";
212     sql += "'" + string( addSlashes( account -> getUserMsnm( ) ) ) + "', ";
213     sql += "'" + string( addSlashes( account -> getPass( ) ) ) + "', ";
214     snprintf( buf, 12, "%d", account -> getPosts( ) );
215     sql += string( buf ) + ", ";
216     snprintf( buf, 12, "%d", account -> getAttachsig( ) );
217     sql += string( buf ) + ", ";
218     snprintf( buf, 12, "%d", account -> getRank( ) );
219     sql += string( buf ) + ", ";
220     snprintf( buf, 12, "%d", account -> getLevel( ) );
221     sql += string( buf ) + ", ";
222     sql += "'" + string( addSlashes( account -> getTheme( ) ) ) + "', ";
223     snprintf( buf, 12, "%lf", account -> getTimezoneOffset( ) );
224     sql += string( buf ) + ", ";
225     sql += "0, "; //last login
226     sql += "'" + string( addSlashes( account -> getUmode( ) ) ) + "', ";
227     snprintf( buf, 12, "%d", account -> getUorder( ) );
228     sql += string( buf ) + ", ";
229     snprintf( buf, 12, "%d", account -> getNotifyMethod( ) );
230     sql += string( buf ) + ", ";
231     snprintf( buf, 12, "%d", account -> getNotifyMode( ) );
232     sql += string( buf ) + ", ";
233     sql += "'" + string( addSlashes( account -> getUserOcc( ) ) ) + "', ";
234     sql += "'" + string( addSlashes( account -> getBio( ) ) ) + "', ";
235     sql += "'" + string( addSlashes( account -> getUserIntrest( ) ) ) + "', ";
236     snprintf( buf, 12, "%d", account -> getUserMailok( ) );
237     sql += string( buf ) + ")";
238     fprintf( stderr, "%s\n", sql.c_str( ) );
239     if( mysql_query( mysql, sql.c_str( ) ) ){
240     return RES_DB_QUERY_ERROR;
241     }
242    
243     //???若??D????緇?????
244     userid_t uid;
245     if( getUid( account -> getUname( ), &uid ) != RES_OK ){
246     return RES_ERROR;
247     }
248    
249     //vpaccount?????若?吟???若??????????????宴???吾??莨若??
250     sql = "INSERT INTO " + dbprefix + "_vpaccount_users (uid, activate, address, institute, tel, organization, country, zipcode, fax, base_url, notice_mail, datetime) VALUES (";
251     snprintf( buf, 12, "%d", uid );
252     sql += string( buf ) + ", ";
253     if( account -> getActivate() ){
254     sql += "1, ";
255     }else{
256     sql += "0, ";
257     }
258     sql += "'" + string( addSlashes( account -> getAddress() ) ) + "', ";
259     sql += "'" + string( addSlashes( account -> getInstitute() ) ) + "', ";
260     sql += "'" + string( addSlashes( account -> getTel() ) ) + "', ";
261     sql += "'" + string( addSlashes( account -> getOrganization() ) ) + "', ";
262     sql += "'" + string( addSlashes( account -> getCountry() ) ) + "', ";
263     sql += "'" + string( addSlashes( account -> getZipcode() ) ) + "', ";
264     sql += "'" + string( addSlashes( account -> getFax() ) ) + "', ";
265     sql += "'" + string( addSlashes( account -> getBaseURL() ) ) + "', ";
266     snprintf( buf, 12, "%d", account -> getNoticeMail( ) );
267     sql += string( buf ) + ", ";
268     snprintf( buf, 12, "%d", account -> getNoticeMailSince( ) );
269     sql += string( buf ) + ")";
270     fprintf( stderr, "%s\n", sql.c_str( ) );
271     if( mysql_query( mysql, sql.c_str( ) ) ){
272     //xoops_users??nsert???????潟?若???????ゃ????
273     sql = "DELETE FROM " + dbprefix + "_users where uid=";
274     snprintf( buf, 12, "%d", uid );
275     sql += string( buf );
276     return RES_DB_QUERY_ERROR;
277     }
278    
279     return RES_OK;
280 youi 1.1 }
281    
282     /**
283     *
284     * ?≪?????潟??紊???/span>
285     *
286     * @param
287     * @return
288     *
289     */
290 youi 1.2 result_t updateAccount( sessionid_t sid, const account_t* account )
291 youi 1.1 {
292     return RES_ERROR;
293     }
294    
295     /**
296     *
297     * ???若??D筝?荀?/span>
298     *
299     * @param
300     * @return
301     *
302     */
303 youi 1.2 result_t dumpUids( sessionid_t sid, const criteria_t* cri, userid_t** uids, int* uidsLen )
304 youi 1.1 {
305     return RES_ERROR;
306     }
307    
308     /**
309     *
310     * ?違???若????/span>
311     *
312     * @param
313     * @return
314     *
315     */
316 youi 1.2 int getGroupCount( sessionid_t sid )
317 youi 1.1 {
318     return 0;
319     }
320    
321     /**
322     *
323     * ??絮??違???若??筝?荀у??
324     *
325     * @param
326     * @return
327     *
328     */
329 youi 1.2 result_t getGroupsByUid( sessionid_t sid, userid_t uid, const criteria_t* cri, groupid_t** gids, int* gidsLen )
330 youi 1.1 {
331     return RES_ERROR;
332     }
333    
334     /**
335     *
336     * ?違???若??膊∞??罔????????
337     *
338     * @param
339     * @return
340     *
341     */
342 youi 1.2 bool isGroupAdmin( sessionid_t sid, groupid_t gid, userid_t uid )
343 youi 1.1 {
344     return RES_ERROR;
345     }
346    
347     /**
348     *
349     * ?違???若??ID筝?荀?/span>
350     *
351     * @param
352     * @return
353     *
354     */
355 youi 1.2 result_t dumpGids( sessionid_t sid, const criteria_t* cri, groupid_t** gids, int* gidsLen )
356 youi 1.1 {
357     return RES_ERROR;
358     }
359    
360     /**
361     *
362     * ?違???若??膊∞????ID??緇?
363     *
364     * @param
365     * @return
366     *
367     */
368 youi 1.2 result_t dumpGroupAdmins( sessionid_t sid, groupid_t gid, const criteria_t* cri, userid_t** uids, int* uidsLen )
369 youi 1.1 {
370     return RES_ERROR;
371     }
372    
373     /**
374     *
375     * ?違???若????絮????若?九????/span>
376     *
377     * @param
378     * @return
379     *
380     */
381 youi 1.2 result_t deleteMember( sessionid_t sid, groupid_t gid, userid_t uid )
382 youi 1.1 {
383     return RES_ERROR;
384     }
385    
386     /**
387     *
388     * ?違???若????絮????若?区申??
389     *
390     * @param
391     * @return
392     *
393     */
394 youi 1.2 result_t insertMember( sessionid_t sid, groupid_t gid, userid_t uid )
395 youi 1.1 {
396     return RES_ERROR;
397     }
398    
399     /**
400     *
401     * ?違???若????絮????若?九??
402     *
403     * @param
404     * @return
405     *
406     */
407 youi 1.2 result_t getMembers( sessionid_t sid, groupid_t gid, const criteria_t* cri, userid_t** uids, int* uidsLen )
408 youi 1.1 {
409     return RES_ERROR;
410     }
411    
412     /**
413     *
414     * ?違???若????????/span>
415     *
416     * @param
417     * @return
418     *
419     */
420 youi 1.2 result_t deleteGroup( sessionid_t sid, groupid_t gid )
421 youi 1.1 {
422     return RES_ERROR;
423     }
424    
425     /**
426     *
427     * ?違???若?????脂??/span>
428     *
429     * @param
430     * @return
431     *
432     */
433 youi 1.2 result_t insertGroup( sessionid_t sid, const group_t* group )
434 youi 1.1 {
435     return RES_ERROR;
436     }
437    
438     /**
439     *
440     * ?違???若???????/span>
441     *
442     * @param
443     * @return
444     *
445     */
446 youi 1.2 result_t updateGroup( sessionid_t sid, const group_t* group )
447 youi 1.1 {
448     return RES_ERROR;
449     }
450    
451     /**
452     *
453     * ?違???若?????怨??
454     *
455     * @param
456     * @return
457     *
458     */
459 youi 1.2 result_t getGroup( sessionid_t sid, groupid_t gid, const group_t** group )
460 youi 1.1 {
461     return RES_ERROR;
462     }
463    
464     /**
465     *
466     * ?違???若?????怨??
467     *
468     * @param
469     * @return
470     *
471     */
472 youi 1.2 result_t getGroups( sessionid_t sid, groupid_t* gids, int gidsLen, const criteria_t* cri, const group_t** groups, int* groupsLen )
473 youi 1.1 {
474     return RES_ERROR;
475     }
476    
477     /**
478     *
479     * ?≪?????若?炊┤???????
480     *
481     * @param
482     * @return
483     *
484     */
485 youi 1.2 bool isModerator( sessionid_t sid, userid_t uid )
486 youi 1.1 {
487     return RES_ERROR;
488     }
489    
490     /**
491     *
492     * ???若??D??緇?
493     *
494 youi 1.7 * @param uname ID????緇??????????若?吟?弱??
495     * @param uid ID??篁e?ャ??????紊??違?????ゃ?潟??/span>
496     * @return RES_ERROR | RES_OK
497     * @refer result_t
498 youi 1.1 *
499     */
500 youi 1.2 result_t getUid( const char* uname, userid_t* uid )
501 youi 1.1 {
502 youi 1.4 string sql;
503    
504 youi 1.7 if( uname == NULL ) return RES_ERROR;
505    
506     string uname2 = addSlashes( uname );
507     sql = "SELECT uid FROM " + dbprefix + "_users WHERE uname='" + uname2 + "'";
508 youi 1.4 if( mysql_query( mysql, sql.c_str( ) ) ){
509     return RES_DB_QUERY_ERROR;
510     }
511     MYSQL_RES* result = mysql_use_result( mysql ) ;
512     MYSQL_ROW row = mysql_fetch_row(result);
513     if( row ){
514     *uid = atoi( row[0] );
515     mysql_free_result( result );
516     return RES_OK;
517     }else{
518     mysql_free_result( result );
519     return RES_NO_SUCH_USER;
520     }
521 youi 1.1 }
522    
523     /**
524     *
525 aga 1.8 * ?祉???激?с?潟??篏?????xoops_vpaccount_session???吾??莨若???? sessionid_t??session???????
526     *
527     * @param uid xoops_users??id
528     * @param remoteHost remote ip (host order)
529     * @param session sessionid_t???????????????????ゃ?潟?帥??
530     * @return RES_OK ????
531     * @return RES_DB_QUERY_ERROR DB????????筝?????????/span>
532     */
533     static result_t addSession( userid_t uid, unsigned long remoteHost, sessionid_t* session )
534     {
535     result_t ret;
536     string sql = "INSERT INTO " + dbprefix + "_vpaccount_session (uid,remote_host) values (" +
537     unsignedIntToString(uid) + "," + unsignedIntToString((unsigned int)remoteHost) + ")";
538     if ( 0 == mysql_query( mysql, sql.c_str() ) ){
539     *session = (int)mysql_insert_id(mysql);
540     ret = RES_OK;
541     }
542     else {
543     ret = RES_DB_QUERY_ERROR;
544     }
545     return ret;
546     }
547    
548    
549     /**
550     *
551 youi 1.1 * ???違?ゃ?活?荐若???祉???激?с?割???
552     *
553 aga 1.6 * @param uname ???違?ゃ?喝??
554     * @param passwd ???鴻???若??
555     * @param session sessionid_t???????????????????ゃ?潟?帥??
556     * @return RES_OK ???違?ゃ?恰??????session??essionid_t???吾??莨若??????
557     * @return RES_LOGIN_FAILURE uname?障????asswd???医幻
558     * @return RES_DB_QUERY_ERROR DB????????筝?????????/span>
559 youi 1.1 *
560     */
561 aga 1.6 result_t loginUser(const char* uname, const char* passwd, sessionid_t* session )
562 youi 1.1 {
563 aga 1.6 result_t ret;
564     string sql;
565    
566     // uname, passwd -> uid
567     string escUname = addSlashes( uname );
568     string escPasswd = addSlashes( passwd );
569     sql = "SELECT uid FROM " + dbprefix + "_users WHERE uname='" + escUname + "' and paswd=md5('" + escPasswd + "')";
570     if( 0 == mysql_query( mysql, sql.c_str( ) ) ){
571     MYSQL_RES* result = mysql_store_result( mysql );
572     if( result ){
573     MYSQL_ROW row = mysql_fetch_row(result);
574     if( row ){
575 aga 1.8 userid_t uid = atoi(row[0]);
576     ret = addSession( uid, 0, session );
577 aga 1.6 }else{
578     ret = RES_LOGIN_FAILUE;
579     }
580     mysql_free_result( result );
581     }else {
582     ret = RES_DB_QUERY_ERROR;
583     }
584     }else{
585     ret = RES_DB_QUERY_ERROR;
586     }
587    
588     return ret;
589 youi 1.1 }
590    
591     /**
592     *
593     * ???違?≪???????祉???激?с?括?篋?
594     *
595 aga 1.6 * @param sid session id
596     * @return ????
597 youi 1.1 *
598     */
599 aga 1.6 void logoutUser( sessionid_t sid ){
600     result_t ret;
601     string sql;
602     sql = "DELETE FROM " + dbprefix + "_vpaccount_session WHERE sid=" + intToString((int)sid);
603     if ( 0 == mysql_query( mysql, sql.c_str() ) ){
604     if ( mysql_affected_rows(mysql) == 1 ){
605     // ???違?≪????????
606     }
607     else {
608     // sid???≦??/span>
609     }
610     }
611     else {
612     // DB????????筝?????????/span>
613     }
614     }
615 youi 1.1
616     /**
617     *
618     * ?祉???激?с?潟?????.<br>
619     * XOOPS??ession???若????????蚊??????sess_id?????essionid??膈???????
620     * ?逸?session_t??篏?????????
621 youi 1.2 * ???若?帥???若?鴻???祉???激?с?潟????違?????宴??荐??蚊????
622 youi 1.1 *
623 aga 1.8 * @param sessionid xoops??ession_id
624     * @param uid xoops_users??id
625     * @param remoteHost remote ip (host order)
626     * @param session sessionid_t???????????????????ゃ?潟?帥??
627     * @return RES_OK
628     * @return RES_ERROR
629     * @return RES_DB_QUERY_ERROR
630 youi 1.1 *
631     */
632 aga 1.8 result_t createSession( const char* sessionid, userid_t uid, unsigned long remoteHost, sessionid_t* session )
633 youi 1.1 {
634 aga 1.8 result_t ret;
635     string sql;
636    
637     string escSessionid = addSlashes(sessionid);
638     sql = "SELECT sess_id from " + dbprefix + "_session where sess_id='" + escSessionid + "'";
639     if( 0 == mysql_query( mysql, sql.c_str( ) ) ){
640     MYSQL_RES* result = mysql_store_result( mysql );
641     if( result ){
642     MYSQL_ROW row = mysql_fetch_row(result);
643     if( row ){
644     ret = addSession( uid, remoteHost, session );
645     }else{
646     ret = RES_ERROR;
647     }
648     mysql_free_result( result );
649     }else {
650     ret = RES_DB_QUERY_ERROR;
651     }
652     }else{
653     ret = RES_DB_QUERY_ERROR;
654     }
655    
656    
657 youi 1.1 return RES_ERROR;
658     }
659    
660     /**
661     *
662     * ?祉???激?с?潟???膣違??session_t?у??????.<br>
663     *
664 aga 1.8 * @param sess_id
665     * @param session
666 youi 1.1 * @return
667     *
668     */
669 aga 1.8 result_t getSession( sessionid_t sess_id, const session_t** ppsession )
670 youi 1.1 {
671 aga 1.8 result_t ret;
672     string sql;
673    
674     sql = "SELECT sid, uid, unix_timestamp(timestamp), remote_host from " + dbprefix +
675     "_vpaccount_session where sid=" + unsignedIntToString((unsigned int)sess_id);
676     if( 0 == mysql_query( mysql, sql.c_str( ) ) ){
677     MYSQL_RES* result = mysql_store_result( mysql );
678     if( result ){
679     MYSQL_ROW row = mysql_fetch_row(result);
680     if( row ){
681     session_t *p = new session();
682     p->setSessionID(sess_id);
683     p->setUserID(atoi(row[1]));
684     p->setDate(atoi(row[2]));
685     p->setRemoteHost(atoi(row[3]));
686     *ppsession = p;
687     ret = RES_OK;
688     }else{
689     ret = RES_NO_SUCH_SESSION;
690     }
691     mysql_free_result( result );
692     }else {
693     ret = RES_DB_QUERY_ERROR;
694     }
695     }else{
696     ret = RES_DB_QUERY_ERROR;
697     }
698    
699 youi 1.1 return RES_ERROR;
700     }
701 youi 1.2
702 youi 1.7 /**
703     *
704     * ?祉???激?с?潟???綵??с?????с????????.
705     *
706     * @param sid ???с??????????session
707     * @return true 罩e?
708     * @return false 筝?罩?/span>
709     *
710     */
711     bool isValidSessionID( sessionid_t sid )
712     {
713     string sql;
714     string sidstr;
715     char buf[ 12 ];
716     snprintf( buf, 12, "%d", sid );
717    
718     sql = "SELECT * FROM " + dbprefix + "_vpaccount_session WHERE session_id=" + string( buf );
719     if( mysql_query( mysql, sql.c_str( ) ) ){
720     return false;
721     }
722     MYSQL_RES* result = mysql_use_result( mysql ) ;
723     MYSQL_ROW row = mysql_fetch_row(result);
724     if( row ){
725     return true;
726     }else{
727     return false;
728     }
729     }
730    
731 youi 1.2 void freeResult( account_t* ptr ){ delete[] ptr; }
732    
733     void freeResult( group_t* ptr ){ delete[] ptr; }
734    
735     void freeResult( session_t* ptr ){ delete[] ptr; }
736    
737     void freeResult( int* ptr ){ delete[] ptr; }
738    
739 youi 1.3 static string errstr;
740     const char* getLastErrorString()
741     {
742     return errstr.c_str( );
743     }
744    
745     void setLastErrorString( const char* str )
746     {
747     errstr = str;
748     }

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