Solved

Adding password validation to my registration page in ASP

Posted on 2004-08-13
8
184 Views
Last Modified: 2008-03-04
Hi,

I want to be able to add a 'confirm password' field on my registration to double check a user has entered the correct password twice before completing the registration when they hit submit.

Below is my code for the registration page, can somebody show me how to do this with reference and example to my code:

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/user_auth.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i


MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Redirect if username exists
MM_flag="MM_insert"
If (CStr(Request(MM_flag)) <> "") Then
  MM_dupKeyRedirect="registration_failed.asp"
  MM_rsKeyConnection=MM_user_auth_STRING
  MM_dupKeyUsernameValue = CStr(Request.Form("username"))
  MM_dupKeySQL="SELECT username FROM tbl_users WHERE username='" & MM_dupKeyUsernameValue & "'"
  MM_adodbRecordset="ADODB.Recordset"
  set 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 Not MM_rsKey.EOF Or Not MM_rsKey.BOF Then
    ' the username was found - can not add the requested username
    MM_qsChar = "?"
    If (InStr(1,MM_dupKeyRedirect,"?") >= 1) Then MM_qsChar = "&"
    MM_dupKeyRedirect = MM_dupKeyRedirect & MM_qsChar & "requsername=" & MM_dupKeyUsernameValue
    Response.Redirect(MM_dupKeyRedirect)
  End If
  MM_rsKey.Close
End If
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "frm_register") Then

  MM_editConnection = MM_user_auth_STRING
  MM_editTable = "tbl_users"
  MM_editRedirectUrl = "login.asp"
  MM_fieldsStr  = "firstName|value|lastName|value|username|value|pwd|value|pwd1|value|address1|value"
  MM_columnsStr = "firstName|',none,''|lastName|',none,''|username|',none,''|pwd|',none,''|pwd1|',none,''|address1|',none,''"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
 
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
  Next

  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
      MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
  End If

End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
  Next
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

  If (Not MM_abortEdit) Then
    ' execute the insert
    Set 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 <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If

End If
%>
<%
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_user_auth_STRING
Recordset1.Source = "SELECT * FROM tbl_users"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

Recordset1_numRows = 0
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://PROTECTED">
<html xmlns="http://PROTECTED">
<head>
<title>Our Company - Register</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="css/newland.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
<style type="text/css">
<!--
.style1 {font-size: 14}
.style2 {color: #FF0000}
-->
</style>
</head>

<body>
<a href="#top"><img src="images/spacer.gif" alt="Skip to main page content." width="1" height="1" border="0" align="left" /></a>
<table width="762" border="0" cellpadding="3" cellspacing="0">
 <tr>
   <td width="749" class="author style1 style1"><h3 align="center">THis is a registration page working</span> </h3></td>
  <td width="1">&nbsp;</td>
 </tr>
 <tr>
   <td><div align="center"><a href="index.asp">Home</a> | <a href="login.asp">Login</a> | <a href="logout.asp">Log out</a> | <a href="help.asp">Help</a> | <a href="contactus.asp">Contact us</a> </div></td>
  <td>&nbsp;</td>
 </tr>
 <tr>
  <td colspan="2">      
      <h1><br />
        <a name="top" id="top"></a>Site Registration</h1>
    <p>Please take a few moments to register for the site.</p>
    <form ACTION="<%=MM_editAction%>" METHOD="POST" name="frm_register" id="frm_register">
      <table width="95%"  border="0" cellpadding="3" cellspacing="0" bgcolor="#eeeeee">
        <tr>
          <td>First Name</td>
          <td><input name="firstName" type="text" id="firstName" /></td>
        </tr>
        <tr>
          <td>Last Name</td>
          <td><input name="lastName" type="text" id="lastName" /></td>
        </tr>
        <tr>
          <td>Email Address</td>
          <td><input name="username" type="text" id="username" size="37" /></td>
        </tr>
        <tr>
          <td>Password</td>
          <td><input name="pwd" type="password" id="pwd" /></td>
        </tr>
        <tr>
          <td>Confirm Password </td>
          <td><input name="pwd1" type="password" id="pwd1" /></td>
        </tr>
        <tr>
          <td>Branch Location            </td>
          <td><input name="address1" type="text" id="address1" size="55" /></td>
        </tr>
        <tr>
          <td><input name="userGroup" type="hidden" id="userGroup" value="visitor" /></td>
          <td><input name="Submit" type="submit" id="Submit" onclick="MM_validateForm('firstName','','R','lastName','','R','username','','RisEmail','pwd','','R','address1','','R','city','','R','zip_postal','','R','country','','R');return document.MM_returnValue" value="Submit" /></td>
        </tr>
      </table>
     
           
   
            <input type="hidden" name="MM_insert" value="frm_register">
</form>    </td>
 </tr>
</table>

<br />
<br />


</body>
</html>
<%
Recordset1.Close()
Set Recordset1 = Nothing
%>
0
Comment
Question by:APLIT
  • 2
  • 2
  • 2
  • +1
8 Comments
 
LVL 11

Accepted Solution

by:
sciber_dude earned 63 total points
Comment Utility
Change this line ....

    <form ACTION="<%=MM_editAction%>" METHOD="POST" name="frm_register" id="frm_register">

to


    <form ACTION="<%=MM_editAction%>" METHOD="POST" name="frm_register" id="frm_register" onsubmit="Validatepwd()">


And add this function to the Javascript in the <HEAD></head>

function Validatepwd() {
  if document.frm_register.pwd.value == document.frm_register.pwd1.value
   {  return true; }
  else {
     alert("The passwords do not match! Please input them again");
     document.frm_register.pwd.value = "";
     document.frm_register.pwd1.value = "";
     document.frm_register.pwd.focus();
     return false;
  }
}
0
 

Author Comment

by:APLIT
Comment Utility
Hi thanks for this, I have entered the code as you mentioned but I purposely enter two different passwords and it assumes that it only needs field 'pwd' and completes the registration, my new code is as follows:

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/user_auth.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i


MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Redirect if username exists
MM_flag="MM_insert"
If (CStr(Request(MM_flag)) <> "") Then
  MM_dupKeyRedirect="registration_failed.asp"
  MM_rsKeyConnection=MM_user_auth_STRING
  MM_dupKeyUsernameValue = CStr(Request.Form("username"))
  MM_dupKeySQL="SELECT username FROM tbl_users WHERE username='" & MM_dupKeyUsernameValue & "'"
  MM_adodbRecordset="ADODB.Recordset"
  set 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 Not MM_rsKey.EOF Or Not MM_rsKey.BOF Then
    ' the username was found - can not add the requested username
    MM_qsChar = "?"
    If (InStr(1,MM_dupKeyRedirect,"?") >= 1) Then MM_qsChar = "&"
    MM_dupKeyRedirect = MM_dupKeyRedirect & MM_qsChar & "requsername=" & MM_dupKeyUsernameValue
    Response.Redirect(MM_dupKeyRedirect)
  End If
  MM_rsKey.Close
End If
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "frm_register") Then

  MM_editConnection = MM_user_auth_STRING
  MM_editTable = "tbl_users"
  MM_editRedirectUrl = "login.asp"
  MM_fieldsStr  = "firstName|value|lastName|value|username|value|pwd|value|pwd1|value|address1|value"
  MM_columnsStr = "firstName|',none,''|lastName|',none,''|username|',none,''|pwd|',none,''|pwd1|',none,''|address1|',none,''"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
 
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
  Next

  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
      MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
  End If

End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
  Next
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

  If (Not MM_abortEdit) Then
    ' execute the insert
    Set 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 <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If

End If
%>
<%
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_user_auth_STRING
Recordset1.Source = "SELECT * FROM tbl_users"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

Recordset1_numRows = 0
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://PROTECTED">
<html xmlns="http://PROTECTED">
<head>
<title>Advanced Processing - Register</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="css/newland.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function Validatepwd() {
  if document.frm_register.pwd.value == document.frm_register.pwd1.value
   {  return true; }
  else {
     alert("The passwords do not match! Please input them again");
     document.frm_register.pwd.value = "";
     document.frm_register.pwd1.value = "";
     document.frm_register.pwd.focus();
     return false;
  }
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
<style type="text/css">
<!--
.style1 {font-size: 14}
.style2 {color: #FF0000}
-->
</style>
</head>

<body>
<a href="#top"><img src="images/spacer.gif" alt="Skip to main page content." width="1" height="1" border="0" align="left" /></a>
<table width="762" border="0" cellpadding="3" cellspacing="0">
 <tr>
   <td width="749" class="author style1 style1"><h3 align="center">This is a test working with <span class="style2">Name</span> </h3></td>
  <td width="1">&nbsp;</td>
 </tr>
 <tr>
   <td><div align="center"><a href="index.asp">Home</a> | <a href="login.asp">Login</a> | <a href="logout.asp">Log out</a> | <a href="help.asp">Help</a> | <a href="contactus.asp">Contact us</a> </div></td>
  <td>&nbsp;</td>
 </tr>
 <tr>
  <td colspan="2">      
      <h1><br />
        <a name="top" id="top"></a>Site Registration</h1>
    <p>Please take a few moments to register for the site.</p>
    <form ACTION="<%=MM_editAction%>" METHOD="POST" name="frm_register" id="frm_register" onsubmit="Validatepwd()">
      <table width="95%"  border="0" cellpadding="3" cellspacing="0" bgcolor="#eeeeee">
        <tr>
          <td>First Name</td>
          <td><input name="firstName" type="text" id="firstName" /></td>
        </tr>
        <tr>
          <td>Last Name</td>
          <td><input name="lastName" type="text" id="lastName" /></td>
        </tr>
        <tr>
          <td>Email Address</td>
          <td><input name="username" type="text" id="username" size="37" /></td>
        </tr>
        <tr>
          <td>Password</td>
          <td><input name="pwd" type="password" id="pwd" /></td>
        </tr>
        <tr>
          <td>Confirm Password </td>
          <td><input name="pwd1" type="password" id="pwd1" /></td>
        </tr>
        <tr>
          <td>Branch Location            </td>
          <td><input name="address1" type="text" id="address1" size="55" /></td>
        </tr>
        <tr>
          <td><input name="userGroup" type="hidden" id="userGroup" value="visitor" /></td>
          <td><input name="Submit" type="submit" id="Submit" onclick="MM_validateForm('firstName','','R','lastName','','R','username','','RisEmail','pwd','','R','address1','','R','city','','R','zip_postal','','R','country','','R');return document.MM_returnValue" value="Submit" /></td>
        </tr>
      </table>
     
           
   
            <input type="hidden" name="MM_insert" value="frm_register">
</form>    </td>
 </tr>
</table>

<br />
<br />


</body>
</html>
<%
Recordset1.Close()
Set Recordset1 = Nothing
%>
0
 
LVL 1

Assisted Solution

by:FieldIT
FieldIT earned 62 total points
Comment Utility
Just need this for your form tag...change onsubmit...

onsubmit =  "return Validatepwd()"

The return brings you back to the page
0
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 

Author Comment

by:APLIT
Comment Utility
So I do not need to add this to the button code, rather the page (form) code, sorry to be blunt but what is the exact syntax  and position of where this code needs to be....

Thanks
0
 
LVL 1

Expert Comment

by:FieldIT
Comment Utility
Sorry, just add it to the form tag.  It doesn't need to be in the button tag becuase it is a submit button and it's event handler is tied to the form tag.

<p>Please take a few moments to register for the site.</p>
    <form ACTION="<%=MM_editAction%>" METHOD="POST" name="frm_register" id="frm_register" onsubmit="return Validatepwd()">

Just replace your form tag with this one and it should do the trick.

Good luck and happy coding!
0
 
LVL 11

Expert Comment

by:sciber_dude
Comment Utility
@ APLIT  -

If you have received the answer, why not close this question?

:) SD
0
 
LVL 6

Expert Comment

by:masirof
Comment Utility
No comment has been added to this question in more than 21 days, so it is now classified as abandoned..
I will leave the following recommendation for this question in the Cleanup topic area:
Split: sciber_dude & FieldIT

Any objections should be posted here in the next 4 days. After that time, the question will be closed.

masirof
EE Cleanup Volunteer
0

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

I recently decide that I needed a way to make my pages scream on the net.   While searching around how I can accomplish this I stumbled across a great article that stated "minimize the server requests." I got to thinking, hey, I use more than one…
I would like to start this tip/trick by saying Thank You, to all who said that this could not be done, as it forced me to make sure that it could be accomplished. :) To start, I want to make sure everyone understands the importance of utilizing p…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

763 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now