<%
' 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
%>