Поскольку это ASP, вы должны разделить то, что вы хотите запустить на сервере, и то, что вы хотите запустить на клиенте. Это не ясно в вашем примере. Гипотетически я бы предположил, что ваша база данных находится за брандмауэром и доступна только для сервера.
- Все, что нужно запустить на сервере, должно быть в <% ...%> блоках
- т.е. Ваша подпрограмма insertdata (), вероятно, принадлежит серверу (в настоящее время она запускается с клиента)
- Ссылка на сервер и сеанс должна выполняться на сервере, то есть в блоках <% ...%>
Некоторые другие заметки:
- Поскольку insertdata () не возвращает значение, используйте Sub вместо Function
- теги body и form расположены неправильно
- на самом деле вам не нужен тег формы
Я собираюсь догадаться, что поставляемый скрипт asp является ответом сервера на форму, которую вы нам не показали? Это не очень понятно, но, возможно, вам стоит прочитать ASP Form Collection от w3Schools.
Ваш Function insertdata()
неверен. Вы смешиваете понятия клиента и сервера. Например, Session.Contents
должен оцениваться на стороне сервера и должен находиться внутри блока <% ...%>, в то время как сама функция insertdata () принадлежит на стороне клиента, поскольку, как вы указываете, она необходима для реакции на пользователя событие. Я переработал одну строку ваших вставочных данных, чтобы проиллюстрировать то, что я делаю:
Sub insertdata
...
strSQL = "INSERT INTO Authen_User VALUES ("
strSQL = strSQL & "'<%=Session.Contents("userKey")%>'"
strSQL = strSQL & ",'<%=Session.Contents("name")%>'"
strSQL = strSQL & ",'<%=Session.Contents("Type")%>')"
...
End Sub
Когда ASP увидит ваш <% ...%>, он заменит их на сервере правильными значениями, так что к тому времени, когда клиент увидит его, при появлении веб-страницы на клиенте появятся замещающие значения:
Sub insertdata
...
strSQL = "INSERT INTO Authen_User VALUES ("
strSQL = strSQL & "'userKey12345678'"
strSQL = strSQL & ",'John Smith'"
strSQL = strSQL & ",'Mr')"
...
End Sub
т.е. если пользователь делает Просмотр страницы источника в своем браузере, он никогда не увидит <% ...%> в источнике, кроме замененных значений. Поэтому, когда он нажимает на ссылку, он поступает правильно.