943,195 Members | Top Members by Rank

Ad:
  • ASP Discussion Thread
  • Unsolved
  • Views: 39
  • ASP RSS
Jul 27th, 2010
0

User authentication and Duplicate record key

Expand Post »
Below is a snippet of the actual code that dreamweaver generates to authenticate "username" is unique prior to it being added to the database - The code works fine - My problem is that I want to also make sure that the email field is also unique (email is the primary key to the database table I am using) I would like to catch the duplicate email field for that record prior to it being added to the database thus creating a REAL DUP KEY comdition for the database - Is there an easy way to incorproate the check for email along with the check for username - Should I duplicate this code and and replace the username with email - Not sure what to do - Would appreciate the help - Thanks -

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/ConnRegistration.asp" -->
<%
// *** Edit Operations: declare variables

// set the form action variable
var MM_editAction = Request.ServerVariables("SCRIPT_NAME");
if (Request.QueryString) {
MM_editAction += "?" + Server.HTMLEncode(Request.QueryString);
}

// boolean to abort record edit
var MM_abortEdit = false;

// query string to execute
var MM_editQuery = "";
%>
<%
// *** Redirect if username exists
var MM_flag="MM_insert";
if (String(Request(MM_flag)) != "undefined") {
var MM_dupKeyRedirect="GuestRegistrationError.asp";
var MM_rsKeyConnection=MM_ConnRegistration_STRING;
var MM_dupKeyUsernameValue = String(Request.Form("Username"));
var MM_dupKeySQL = "SELECT RegUserName FROM Registration WHERE RegUserName='" + MM_dupKeyUsernameValue.replace(/'/g, "''") + "'"
var MM_adodbRecordset = "ADODB.Recordset";
var MM_rsKey = Server.CreateObject(MM_adodbRecordset);
MM_rsKey.ActiveConnection = MM_rsKeyConnection;
MM_rsKey.Source = MM_dupKeySQL;
MM_rsKey.CursorType=0;
MM_rsKey.CursorLocation=2;
MM_rsKey.LockType=3;
MM_rsKey.Open();
if (!MM_rsKey.EOF || !MM_rsKey.BOF) {
// the username was found - can not add the requested username
var MM_qsChar = "?";
if (MM_dupKeyRedirect.indexOf("?") >= 0) MM_qsChar = "&";
MM_dupKeyRedirect = MM_dupKeyRedirect + MM_qsChar + "requsername=" + MM_dupKeyUsernameValue;
Response.Redirect(MM_dupKeyRedirect);
}
MM_rsKey.Close();
}
%>
<%
// *** Insert Record: set variables

if (String(Request("MM_insert")) == "GuestRegistrationForm") {

var MM_editConnection = MM_ConnRegistration_STRING;
var MM_editTable = "Registration";
var MM_editRedirectUrl = "GuestRegistrationConfirmation.asp";
var MM_fieldsStr = "FirstName|value|LastName|value|City|value|State|value|Email|value|Username|value|Password|value|Status|value";
var MM_columnsStr = "RegFirstName|',none,''|RegLastName|',none,''|RegCity|',none,''|RegState|',none,''|RegEmail|',none,''|RegUserName|',none,''|RegPassword|',none,''|RegStatus|',none,''";

// create the MM_fields and MM_columns arrays
var MM_fields = MM_fieldsStr.split("|");
var MM_columns = MM_columnsStr.split("|");

// set the form values
for (var i=0; i+1 < MM_fields.length; i+=2) {
MM_fields[i+1] = String(Request.Form(MM_fields[i]));
}

// append the query string to the redirect URL
if (MM_editRedirectUrl && Request.QueryString && Request.QueryString.Count > 0) {
MM_editRedirectUrl += ((MM_editRedirectUrl.indexOf('?') == -1)?"?":"&") + Request.QueryString;
}
}
%>
<%
// *** Insert Record: construct a sql insert statement and execute it

if (String(Request("MM_insert")) != "undefined") {

// create the sql insert statement
var MM_tableValues = "", MM_dbValues = "";
for (var i=0; i+1 < MM_fields.length; i+=2) {
var formVal = MM_fields[i+1];
var MM_typesArray = MM_columns[i+1].split(",");
var delim = (MM_typesArray[0] != "none") ? MM_typesArray[0] : "";
var altVal = (MM_typesArray[1] != "none") ? MM_typesArray[1] : "";
var emptyVal = (MM_typesArray[2] != "none") ? MM_typesArray[2] : "";
if (formVal == "" || formVal == "undefined") {
formVal = emptyVal;
} else {
if (altVal != "") {
formVal = altVal;
} else if (delim == "'") { // escape quotes
formVal = "'" + formVal.replace(/'/g,"''") + "'";
} else {
formVal = delim + formVal + delim;
}
}
MM_tableValues += ((i != 0) ? "," : "") + MM_columns[i];
MM_dbValues += ((i != 0) ? "," : "") + formVal;
}
MM_editQuery = "insert into " + MM_editTable + " (" + MM_tableValues + ") values (" + MM_dbValues + ")";

if (!MM_abortEdit) {
// execute the insert
var MM_editCmd = Server.CreateObject('ADODB.Command');
MM_editCmd.ActiveConnection = MM_editConnection;
MM_editCmd.CommandText = MM_editQuery;
MM_editCmd.Execute();
MM_editCmd.ActiveConnection.Close();

if (MM_editRedirectUrl) {
Response.Redirect(MM_editRedirectUrl);
}
}

}
%>
<%
var rsGuestRegistration = Server.CreateObject("ADODB.Recordset");
rsGuestRegistration.ActiveConnection = MM_ConnRegistration_STRING;
rsGuestRegistration.Source = "SELECT RegFirstName, RegLastName, RegCity, RegState, RegEmail, RegUserName, RegPassword, RegStatus FROM Registration";
rsGuestRegistration.CursorType = 0;
rsGuestRegistration.CursorLocation = 2;
rsGuestRegistration.LockType = 1;
rsGuestRegistration.Open();
var rsGuestRegistration_numRows = 0;
%>
Reputation Points: 10
Solved Threads: 0
Newbie Poster
Felipo is offline Offline
15 posts
since Jun 2008

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in ASP Forum Timeline: trim function
Next Thread in ASP Forum Timeline: ASP connect to SQL server 2005





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC