Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Store login information in DB

Posted on 2007-03-26
6
Medium Priority
?
187 Views
Last Modified: 2013-12-16
Hi, is there a way that i can capture the username,  time, date, and Client IP of someone logging on to a secure page on my site - with no end-user input? Currently, i am using:  
<cfset clientIP = cgi.REMOTE_ADDR>
<cfoutput>Client IP Address:  #CGI.REMOTE_ADDR#</cfoutput>
...using this code i can display the information to the user, but what i really want to do is capture every login in the database, automatically...So, the end-user logs in, sees what i have up there, and logs out.  without any input from the end- user, i would like to get an "idea" of who logged on, when, etc. and the information would be stored automatically. I have added a table in MS Access, relative to my other tables, to store the info.
Any ideas?
0
Comment
Question by:koozilla
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
6 Comments
 
LVL 39

Expert Comment

by:gdemaria
ID: 18797303

Sure, after you validate the login, simply insert a record into the database with the username (or ID) as well as now() for the current date/time and cgi.remote_addr for the IP address.  

insert into logins ( loginDate, userName, IPaddress)
values (#now()#, '#username#', '#cgi.remote_addr#')
0
 

Author Comment

by:koozilla
ID: 18797710
Sounds great, but i have to admit that i am a little "too green"... how exactly should i add that information?
currently, i have an "index.cfm" page that is the login, then it goes to the "presentation.cfm" page.
I am guessing that the code you gave me would go on the "presentation.cfm" page... probably above the HTML tag....
am i on the right track here?  i am getting a syntax error... but that might be b/c the #Now()# date is different than what the DB is looking for...

<cfquery name="qData" datasource="MyDatasource">
SELECT *
FROM tblDataX
WHERE UserName='#Session.MM_Username#'
</cfquery>
<cfquery datasource="MyDatasource">
INSERT INTO tblDataX (loginDate, userName, IPaddress)>
values (#now()#, '#username#', '#cgi.remote_addr#')
</cfquery>
0
 
LVL 39

Expert Comment

by:gdemaria
ID: 18799921

 No problem, when a user is logging in, you likely have a query to validate their username and password against the form field.   If the user has entered the correct username and password, you then probably continue on to create the session variable.  At that same time (a successful login) I would place the insert statement.   You don't want to place the insert on a page where the user just visits because it will login his page visits not his login, so only place the insert when you process the login.

 The query you show is from tblDataX, is that the real name?  I ask because you are fetching from that table and then inserting into the same table in the next query.  Not sure why.    If tblDataX is the table that holds the user's login information, you DO NOT want to insert their activity into that table, you want to add it into another table.. something like this...


<cfquery name="qData" datasource="MyDatasource">
 SELECT *
 FROM   Users
 WHERE UserName='#form.MM_Username#'
</cfquery>
<cfif qData.recordCount eq 0>
   ... error, user does not exist
<cfelseif qData.passwrd neq form.passwrd>
   ... invalid login
<cfelse>
   ... success, now create the user's session ...
  <cfset session.mm_username = form.username>

   ... success, now record a successful login ...
  <cfquery datasource="MyDatasource">
    INSERT INTO UserLogins (loginDate, userName, IPaddress)>
    values (#now()#, '#username#', '#cgi.remote_addr#')
  </cfquery>
</cfif>




0
The top UI technologies you need to be aware of

An important part of the job as a front-end developer is to stay up to date and in contact with new tools, trends and workflows. That’s why you cannot miss this upcoming webinar to explore the latest trends in UI technologies!

 

Author Comment

by:koozilla
ID: 18801761
YOU ROCK!!! thank you!!
one more question...  the information is going into an Access DB.. the "Date" is showing up but not the "Time" (hh:mm:ss:).  Any ideas?
0
 
LVL 39

Accepted Solution

by:
gdemaria earned 2000 total points
ID: 18801894

 I don't really know access that well, but perhaps this change to the coldfusion would work.

 Take out #now()# and replace with

 #createODBCdateTime(now())#
0
 
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 18805192
koozilla:,

The Now() function should return the date and time.

If not, then you may have to set the "Format" property of the Date field in the Access table to something like this:
    yyyy-mm-dd hh:nn:ss AM/PM
... to display the date and time.

Hope this helps

Jeff Coachman
0

Featured Post

Simplify Your Workload with One Tool

How do you combat today’s intelligent hacker while managing multiple domains and platforms? By simplifying your workload with one tool. With Lunarpages hosting through Plesk Onyx, you can:

Automate SSL generation and installation with two clicks
Experience total server control

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
If you need a simple but flexible process for maintaining an audit trail of who created, edited, or deleted data from a table, or multiple tables, and you can do all of your work from within a form, this simple Audit Log will work for you.
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.

715 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question