<% ' Initialize error handling Call InitializeErrorHandling("addsubnetbackend.asp") ' Get form inputs Dim vlan, ipstart, cidr, description, subnettypeid, cidrarray, ipend 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 fields If vlan = "" Or ipstart = "" Or cidr = "" Or subnettypeid = "" Then Call HandleValidationError("addsubnet.asp", "REQUIRED_FIELD") End If ' Validate VLAN is numeric If Not IsNumeric(vlan) Then Call HandleValidationError("addsubnet.asp", "INVALID_INPUT") End If ' Validate IP address If Not ValidateIPAddress(ipstart) Then Call HandleValidationError("addsubnet.asp", "INVALID_IP") End If ' Validate subnet type ID If Not ValidateID(subnettypeid) Then Call HandleValidationError("addsubnet.asp", "INVALID_ID") End If ' Parse CIDR value (expected format: "cidr,ipend") If InStr(cidr, ",") = 0 Then Call HandleValidationError("addsubnet.asp", "INVALID_INPUT") End If cidrarray = Split(cidr, ",") If UBound(cidrarray) < 1 Then Call HandleValidationError("addsubnet.asp", "INVALID_INPUT") End If ipend = Trim(cidrarray(1)) cidr = Trim(cidrarray(0)) ' Validate CIDR is numeric If Not IsNumeric(cidr) Or CInt(cidr) < 0 Or CInt(cidr) > 32 Then Call HandleValidationError("addsubnet.asp", "INVALID_INPUT") End If ' Validate ipend is numeric If Not IsNumeric(ipend) Then Call HandleValidationError("addsubnet.asp", "INVALID_INPUT") End If ' Validate description length If Len(description) > 500 Then Call HandleValidationError("addsubnet.asp", "INVALID_INPUT") End If ' Verify subnet type exists If Not RecordExists(objConn, "subnettypes", "subnettypeid", subnettypeid) Then Call HandleValidationError("addsubnet.asp", "NOT_FOUND") End If ' Insert using parameterized query ' Note: INET_ATON requires the IP address parameter, ipend is added to the result strSQL = "INSERT INTO subnets (vlan, description, cidr, ipstart, ipend, subnettypeid, isactive) " & _ "VALUES (?, ?, ?, INET_ATON(?), (INET_ATON(?) + ?), ?, 1)" Dim recordsAffected recordsAffected = ExecuteParameterizedInsert(objConn, strSQL, Array(vlan, description, cidr, ipstart, ipstart, ipend, subnettypeid)) ' Cleanup resources Call CleanupResources() If recordsAffected > 0 Then Response.Redirect("./displaysubnets.asp") Else Response.Write("Error: Failed to add subnet.") End If %>