Как я могу отобразить сумму скидки? - PullRequest
0 голосов
/ 14 февраля 2012

Обратите внимание на две строки подключения: одну для доступа к базе данных и другую для базы данных SQL Server.

Подключение к базе данных Access работало безупречно, пока мы недавно не сменили хостинговые компании и не перешли на godaddy.com

Они предоставили нам строку подключения к базе данных SQL Server.

С тех пор мы не можем успешно подключиться к SQL Server. Мы продолжали получать 500 (внутренняя ошибка).

Я пытался связаться с ними, и они продолжали говорить нам, что ни у кого больше нет той же проблемы, в которую мне очень трудно поверить.

Не могли бы вы посмотреть, сможете ли вы найти что-нибудь, чего мне не хватает?

Большое спасибо всем вам.

''# Access DB Connection String

<%
  Dim objConn, objRS
  ''# Set objConn = Server.CreateObject("ADODB.Connection")
  ''# objConn.Open "DSN=ship"

 Set objConn=Server.CreateObject("ADODB.Connection")
 objConn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
 "DATA SOURCE=" & server.mappath("admin\scart.mdb")

  Set objRS = objConn.Execute("SELECT * FROM logins WHERE Username = '" & Request.Form("txtUsername") & "' AND password = '" & Request.Form("TxtPassword") & "' ")
  If Not objRS.EOF Then
    If objRS(1) = Request.Form("txtPassword") Then
      Session.Contents("access_level") = objRS(2)
      Session.Contents("ID") = objRS(3) ''#ID column
      Session("username") = objRS("USERNAME")
      Session("password") = objRS("password")
      Response.Redirect "setup.asp"
    Else
      Response.Write "Sorry, but the password that you entered is incorrect.&nbsp;<a href='setup.asp'>Try again</a>"
    End If
  Else
    Response.Write "Sorry, but the username that you entered does not exist.&nbsp;<a href='setup.asp'>Try again</a>"
  End If
  objRS.Close
  Set objRS = Nothing
  objConn.Close
  Set objConn = Nothing
%>


<%
''# SQL Server connection string
Dim objConn, objRS
Dim qry, connectstr
Dim db_name, db_username, db_userpassword
Dim db_server

db_server = "MyServer name"
db_name = "nyDBName"
db_username = "MyUsername"
db_userpassword = "MyPassword"

connectstr = "Driver={SQL Server};SERVER=" & db_server & ";DATABASE=" & db_name & ";UID=" & db_username & ";PWD=" & db_userpassword

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open connectstr


  SQL = "SELECT * FROM logins WHERE Username = '" & Request.Form("txtUsername") & "' AND password = '" & Request.Form("TxtPassword") & "' "
  response.write sql
  response.end
  Set objRS = objConn.Execute(SQL)

  If Not objRS.EOF Then
    If objRS(1) = Request.Form("txtPassword") Then
      Session.Contents("access_level") = objRS(2)
      Session.Contents("ID") = objRS(3) ''# ID column
      Session("username") = objRS("USERNAME")
      Session("password") = objRS("password")
      Response.Redirect "setup.asp"
    Else
      Response.Write "Sorry, but the password that you entered is incorrect.&nbsp;<a href='setup.asp'>Try again</a>"
    End If
  Else
    Response.Write "Sorry, but the username that you entered does not exist.&nbsp;<a href='setup.asp'>Try again</a>"
  End If
  objRS.Close
  Set objRS = Nothing
  objConn.Close
  Set objConn = Nothing
%>

1 Ответ

0 голосов
/ 15 февраля 2012

Из вашего вопроса не очень понятно, хотите ли вы подключиться к access / mdb или к sqlserver.

Но в любом случае одна из двух статей ниже охватит вас.

http://support.godaddy.com/help/article/259

http://support.godaddy.com/help/256/connecting-to-a-microsoft-sql-server-database-using-aspado

Однако, поскольку во фрагменте кода, которым вы поделились с нами, пользовательский ввод (Request.Form ("txtUsername") напрямуюесли поместить в оператор SQL без какой-либо очистки , ваша база данных может подвергнуться длительному SQL-инъекции.

С этой точки зрения я могу сказать, что выповезло, что вы не смогли подключиться.

Прежде всего, очистите свой пользовательский ввод. Очистка - это большой sujbject. Но попробуйте это как немедленное решение.

dim txtUsername,txtPassword
txtUsername = Request.Form("txtUsername") 
txtPassword = Request.Form("txtPassword")

'sanitize
txtPassword = replace(txtPassword,"'","''",1,-1,1)
txtUsername = replace(txtUsername,"'","''",1,-1,1) 

Set objRS = objConn.Execute("SELECT * FROM logins WHERE Username = '" & txtUsername & "' AND password = '" & TxtPassword & "' ")

После исправления кодакак и выше, тогда и только тогда вам следует позаботиться об исправлении исходной проблемы с подключением. Итак, ознакомьтесь с SQL-инъекцией, и пока вы это делаете, также прочитайте XSS (межсайтовый скриптинг)

и сделайтеКонечно, каждый кодировщик в вашей компании прочитает это и поймет, что это за две вещи. Вы будете рады, что сделали это. Или вы, ребята, рано или поздно окажетесь в плачевном состоянии.

Удачи ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...