<% ' Initialize error handling Call InitializeErrorHandling("updatesubnet.asp") ' Get form inputs Dim subnetid, vlan, ipstart, cidr, description, subnettypeid, cidrarray, ipend subnetid = Trim(Request.Querystring("subnetid")) vlan = Trim(Request.Form("vlan")) ipstart = Trim(Request.Form("ipstart")) cidr = Trim(Request.Form("cidr")) description = Trim(Request.Form("description")) subnettypeid = Trim(Request.Form("subnettypeid")) ' Validate required ID fields If Not ValidateID(subnetid) Then Call HandleValidationError("displaysubnets.asp", "INVALID_ID") End If ' Verify the subnet exists If Not RecordExists(objConn, "subnets", "subnetid", subnetid) Then Call HandleValidationError("displaysubnets.asp", "NOT_FOUND") End If ' Validate required fields If vlan = "" Or ipstart = "" Or cidr = "" Or subnettypeid = "" Then Call HandleValidationError("displaysubnet.asp?subnetid=" & subnetid, "REQUIRED_FIELD") End If ' Validate VLAN is numeric If Not IsNumeric(vlan) Then Call HandleValidationError("displaysubnet.asp?subnetid=" & subnetid, "INVALID_INPUT") End If ' Validate IP address If Not ValidateIPAddress(ipstart) Then Call HandleValidationError("displaysubnet.asp?subnetid=" & subnetid, "INVALID_IP") End If ' Validate subnet type ID If Not ValidateID(subnettypeid) Then Call HandleValidationError("displaysubnet.asp?subnetid=" & subnetid, "INVALID_ID") End If ' Parse CIDR value (expected format: "cidr,ipend") If InStr(cidr, ",") = 0 Then Call HandleValidationError("displaysubnet.asp?subnetid=" & subnetid, "INVALID_INPUT") End If cidrarray = Split(cidr, ",") If UBound(cidrarray) < 1 Then Call HandleValidationError("displaysubnet.asp?subnetid=" & subnetid, "INVALID_INPUT") End If ipend = Trim(cidrarray(1)) cidr = Trim(cidrarray(0)) ' Validate CIDR is numeric (0-32) If Not IsNumeric(cidr) Or CInt(cidr) < 0 Or CInt(cidr) > 32 Then Call HandleValidationError("displaysubnet.asp?subnetid=" & subnetid, "INVALID_INPUT") End If ' Validate ipend is numeric If Not IsNumeric(ipend) Then Call HandleValidationError("displaysubnet.asp?subnetid=" & subnetid, "INVALID_INPUT") End If ' Validate description length If Len(description) > 500 Then Call HandleValidationError("displaysubnet.asp?subnetid=" & subnetid, "INVALID_INPUT") End If ' Verify subnet type exists If Not RecordExists(objConn, "subnettypes", "subnettypeid", subnettypeid) Then Call HandleValidationError("displaysubnet.asp?subnetid=" & subnetid, "NOT_FOUND") End If ' Update using parameterized query strSQL = "UPDATE subnets SET vlan = ?, ipstart = INET_ATON(?), ipend = (INET_ATON(?) + ?), cidr = ?, subnettypeid = ?, description = ? WHERE subnetid = ?" Dim recordsAffected recordsAffected = ExecuteParameterizedUpdate(objConn, strSQL, Array(vlan, ipstart, ipstart, ipend, cidr, subnettypeid, description, subnetid)) ' Cleanup resources Call CleanupResources() If recordsAffected > 0 Then Response.Redirect("./displaysubnet.asp?subnetid=" & subnetid) Else Response.Write("Error: No records were updated.") End If %>