09/10/2018, 23:44

Cách thức xử lí form

Tôi lập box này để các coder chúng ta thảo luận các cách thức xử lí dữ liệu cho form một cách hiệu quả và tối ưu nhất, chẳng hạn như cách thức xử lí để chống hack, gặp một loại dữ liệu nào đó thì xử lí như thế nào là hiệu quả nhất, cách thức, qui trình xử lí bài bản...

Mời các vị huynh đài có kinh nghiệm tham gia box này nhá. Mong mọi người tham gia sôi nổi, nhất là cái qui trình ấy
dangviethai viết 01:47 ngày 10/10/2018
Code:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="strConn.asp" -->
<%
Dim MM_editAction
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
Dim MM_abortEdit
MM_abortEdit = false
%>
<%
If (CStr(Request("MM_insert")) = "form1") Then
  If (Not MM_abortEdit) Then
    ' execute the insert
    Dim MM_editCmd

    Set MM_editCmd = Server.CreateObject ("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_strConn_STRING
    MM_editCmd.CommandText = "INSERT INTO dbo.tblGioiThieu (TieuDe, Image, VanTat, nContentVN) VALUES (?, ?, ?, ?)" 
    MM_editCmd.Prepared = true
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 202, 1, 50, Request.Form("TieuDe")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param2", 201, 1, 150, Request.Form("txtIMG")) ' adLongVarChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param3", 202, 1, 350, Request.Form("txtVanTat")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param4", 203, 1, 1073741823, Request.Form("textarea")) ' adLongVarWChar
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

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

mình dùng Parameter . theo mình nghĩ Parameter hoàn toàn đáp ứng được nhu cầu này ngoài ra có thể dùng Store Proceduce
đây là code asp , php ko khác ji mấy
AimerDiscrèteme viết 01:52 ngày 10/10/2018
Nếu về ASP, trong những form nhạy cảm như password và user name, bạn phải kiểm tra từng chữ cái, kết hợp với truyền tham số cho sp xử lý. Như vậy mới an tâm.
temp2 viết 01:49 ngày 10/10/2018
@dangviethai: ko rành ASP cho lắm, bạn có thể mô tả vắn tắt code trên làm gì ko?
@AimerDiscrèteme: cho dù dùng ngôn ngữ nào đi chăng nữa, ta cũng nên kiểm tra mấy cái này, chứ đâu phải là ASP thôi đâu

Còn với mấy cái ô nhập liệu, chúng ta nên thêm quote cho tất cả à?
dangviethai viết 01:57 ngày 10/10/2018
đoạn code trên mình Insert vào bảng có tên Giới thiệu với các trường TieuDe , hình ảnh , nội dung vắn tắt và nội dung đầy đủ

Code:
INSERT INTO dbo.tblGioiThieu (TieuDe, Image, VanTat, nContentVN) VALUES (?, ?, ?, ?)
values của nó có ký tự "?" là để mình truyền Parameter cho nó giống như ASP.NEt ý

Code:
MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 202, 1, 50, Request.Form("TieuDe")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param2", 201, 1, 150, Request.Form("txtIMG")) ' adLongVarChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param3", 202, 1, 350, Request.Form("txtVanTat")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param4", 203, 1, 1073741823, Request.Form("textarea")) ' adLongVarWChar
Bài liên quan
0