<[ // WINC - User // (c) 1997-98 SmartDesk, Inc., All Rights Reserved CLASS ChatUser PUBLIC: local session, basedir, id, userid, password, name, alias, email, pglen, refreshRate local picture, utype, lastused METHOD new( session, basedir ) ::session = session ::basedir = basedir ::utype = "" ::picture = "" return( 1 ) end METHOD load( id, newflag ) local data ::id = id if ( type( newflag ) != "N" ) newflag = 0 end if ( ! fileExists( ::file ) ) if ( ! newflag ) return( 0 ) end data = ::session.var( "userid" ) + "|" + ::session.var( "pass" ) + "||||25|20|||" + date( "YYYY-MM-DD " ) + time( ) + "|" else data = fileReadASCII( ::file ) end ::userid = strextract( data, "|", 1 ) ::password = strextract( data, "|", 2 ) ::name = strextract( data, "|", 3 ) ::alias = strextract( data, "|", 4 ) ::email = strextract( data, "|", 5 ) ::pglen = 0 + strextract( data, "|", 6 ) ::refreshRate = 0 + strextract( data, "|", 7 ) ::picture = strextract( data, "|", 8 ) ::utype = 0 + strextract( data, "|", 9 ) ::lastused = strextract( data, "|", 10 ) return( 1 ) END METHOD save( ) local hfile, str hfile = fcreate( ::file, 0 ) if ( hfile < 1 ) return( 0 ) end ::lastused = date( "YYYY-MM-DD " ) + time( ) str = ::userid + "|" + ::password + "|" + ::name + "|" + ::alias + "|" + ::email + "|" + ::pglen + "|" + ::refreshRate + "|" str += ::picture + "|" + ::utype + "|" + ::lastused fwriteline( hfile, str ) fclose( hfile ) return( 1 ) END ACCESS file return( ::basedir + "\\users\\" + ::id + ".dat" ) END METHOD profile( channel, alias ) local str str = "U S E R     P R E F E R E N C E S
\r\n" str += "
\r\n" str += " \r\n" str += " \r\n" str += " \r\n" str += " \r\n" str += " \r\n" str += " \r\n" str += " \r\n" str += " \r\n" // str += " " str += " \r\n" str += " \r\n" str += " \r\n" // str += " " // str += " " str += "
User-Id:
Password:
 
Full Name:
Chat Alias:
Email Address:
Picture:
 
Display Page Length:
Refresh Rate:
 
Last Used: " + ::lastused + "
\r\n" str += "
\r\n" str += " \r\n" str += " \r\n" str += " \r\n" str += " \r\n" str += " \r\n" str += "
\r\n" str += "This information will automatically be maintained
for up to thirty days of inactivity.
\r\n" return( str ) END METHOD doupdate( var, defval ) local v v = ::session.var( var ) return( strempty( v ) ? defval : v ) END METHOD UpdateId( ) local str, x, i, y str = upper( ::userid + ::password ) i=1 x=1 for ( i=2; i<=len(str); i++ ) y = asc( str[i] ) if ( y > 0 ) x *= y end end str = dec2hex( x ) if ( len( str ) > 8 ) str = right( str, 8 ) end ::id = str return( ::id ) END METHOD SessionUpdate( ) local str ::userid = ::doupdate( "userid", ::userid ) ::password = ::doupdate( "pass", ::password ) ::name = ::doupdate( "name", ::name ) ::alias = ::doupdate( "alias", ::alias ) ::email = ::doupdate( "email", ::email ) ::picture = ::doupdate( "picture", ::picture ) ::pglen = 0 + ::doupdate( "pglen", ::pglen ) ::refreshRate = 0 + ::doupdate( "refreshRate", ::refreshRate ) ::id = ::updateId( ) str = ::validate( ) if ( ! strempty( str ) ) return( str ) end ::pglen = ::pglen < 5 ? 5 : ::pglen ::refreshRate = ::refreshRate < 5 ? 5 : ::refreshRate ::save( ) return( "" ) END METHOD validate( ) local str str = "" if ( strempty( ::userid ) ) str += "Must specify a User-id
" end if ( strempty( ::password ) ) str += "Must specify a Password
" end if ( strempty( ::name ) ) str += "Must specify a Name
" end if ( strempty( ::alias ) ) str += "Must specify an Alias
" end if ( strempty( ::email ) ) str += "Must specify an Email Address
" end if ( ! strempty( str ) ) return( "

" + str + "

Press the BACK button to return to the form..." ) end return( "" ) END END _apGenerate( ) session = new( "session", param( 1 ), param( 2 ) ) user = new( "ChatUser", session, webServerHome( session.websrvr ) + "\\chat" ) channel = 0 + session.var( "channel" ) if ( channel < 1 ) channel = 1 end alias = session.var( "alias" ) id = session.var( "id" ) if ( strempty( id ) || strempty( alias ) ) session._redir( "One Moment Please...", "sdchat.htm?channel=" + channel ) return( 0 ) end qstr = "?id=" + id + "&channel=" + channel + "&alias=" + alias ]> WINC Users
U S E R     L I S T
Return to the chat


<[ basedir = webServerHome( session.websrvr ) + "\\chat" filename = basedir + "\\chan" + channel + ".dat" data = sessionDataGet( session.websrvr, -1, "CHATBUF." + filename ) cnt = chrcount( chr( 2 ), data ) j=0 users[1] = "" for ( i=1; i<=cnt; i++ ) line = strextract( data, chr( 2 ), i ) id = strextract( line, chr( 1 ), 5 ) for ( k=1; k<=j; k++ ) if ( users[k] == id ) break end end if ( k > j ) j++ users[j] = id if ( user.load( id, 0 ) ) ! "" + user.name + " is logged in as " + user.alias + "
" end end end ]>