webForumDet fria alternativet

asp - mysql

5 svar · 268 visningar · startad av sahle

sahleMedlem sedan jan. 200336 inlägg
#1

Jag har ett script som jag har använt till sammans med access databas, men nu vill jag använda det tillsammans med mysql.

Det finns en sida som heter "settings" och där det står så här:
'##########SÖKVÄGEN TILL DATABASEN###############

db = Server.MapPath("db/kalender.mdb")

Jag undrar hur man ska skriva här när man använer mysql databas?

För de andra sidorna söker väl efter denna infon.

ska man skriva något sånt här eller?

<%
ConnString ="Driver={MySQL};SERVER=localhost;DATABASE=xxx;UID=xxx;PASSWORD=xxx"

Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = server.CreateObject("ADODB.recordset")
Conn.Open ConnString 
sql = "select * from table
RS.Open sql, Conn, 1, 2
% >
K@llenMedlem sedan mars 20032 667 inlägg
#2

Så här?

Dim objConn
Function GetDBConn()
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Mysql};Server=xxxx;Database=xxxx;UID=xxxx;PWD=xxxx"
Set GetDBConn = objConn
End Function

Anropas med:

Set objDB = GetDBConn()
sql ="select * from tabellen"
set objRS = objDB.Execute(sql)
sahleMedlem sedan jan. 200336 inlägg
#3

Jag för står inte riktigt vad det är man ska byta ut...

Här är sidan "settings" här tror jag att det ska vara rätt:

<%

'###SIDAN DU INKLUDERAR KALENDERN I####

sajten = "index.asp"

'#################################

'###ADMIN.ASP###

'##########SÖKVÄGEN TILL DATABASEN###############

Dim objConn
Function GetDBConn()
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver=MySQL ODBC 3.51 Driver;SERVER=localhost;DATABASE=xxx;UID=xxx;PASSWORD=xxx"
Set GetDBConn = objConn
End Function

'##########ADMINNAMN OCH LÖSENORD###############

Admin1 = "admin"
Admin2 = "losen"

'###########SLUT PÅ SETTINGS#####################
%>

Men hur ska man ändra i den här koden?

här är lite kod ur sidan "admin":

<%Response.Buffer = True

Session.Lcid = 1053%>

<!--#Include file="settings.asp"-->

<html>
<head>
<title>Kalenderadmin</title>
<link rel="STYLESHEET" type="text/css" href="stil.css">
<script src="js/js.js"></script>
</head>

<body onLoad="<%=mess%>">

<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db

If Request.Querystring("do")="" Then%>

<table align="center" width="100%" border="0">
   <tr>
      <td colspan="2"><b>Logga in!</b></td>
   </tr>
   <form name="loggain" method="post" action="admin.asp?do=login">
   <tr>
      <td width="10%">Anvnamn:</td><td width="90%"><input type="text" name="admin1" size="15" value="<%=Request.Cookies("anvnamn") %>">
      </td>
   </tr>
   <tr>
      <td>Lösenord:</td><td><input type="password" name="admin2" size="15">
      </td>
   </tr>
   <tr>
      <td>Typ av inloggning:</td>
      <td>
        <select name="val" style="width:95">
           <option value="Admin">Admin
           <option value="Users">Användare
        </select>
      </td>
   </tr>
   <tr>
      <td colspan="2"><hr></td>
   </tr>
   <tr>
      <td>&nbsp;</td><td><input type="submit" value="Logga in"></td>
   </tr>
   <%If Session("mess") <> "" Then%>
   <tr>
      <td colspan="2"><hr></td>
   </tr>
   <tr>
      <td colspan="2" align="center" class="normal">
        <%Response.Write Session("mess")
         Session("mess") = ""%>
      </td>
   </tr>
   <%End If%>
   </form>
</table>

<%End If

If Request.Querystring("do")="login" Then

  If Request.Form("val") = "Admin" Then

    If Request.Form("admin1") = Admin1 AND Request.Form("admin2") = Admin2 Then
       admin="ok"
    Else
       Session("mess") = "Fel lösenord."
       Response.Redirect "admin.asp" 	
    End If

  ElseIf Request.Form("val") = "Users" Then

    Set RecSet=Conn.Execute("Select * From Users where anvnamn='" & Request.Form("admin1") & "'")

    Response.Cookies("anvnamn") = Request.Form("anvnamn")
    Response.Cookies("anvnamn").Expires = date + 365

    If Not RecSet.EOF Then
       If Request.Form("admin2") = RecSet("losen") Then
         If RecSet("admin") = True Then
            admin="ok"
         Else 
            login="ok" 
         End If
       Else
          Session("mess") = "Du skrev fel lösenord!"
          Response.Redirect "admin.asp"	
       End If
    Else
          Session("mess") = "Anvnamnet finns inte!"
          Response.Redirect "admin.asp"	
    End If
  End If

    If admin="ok" Then
       Session("admin") = "ok"
       Session.TimeOut = 40
       Response.Redirect "admin.asp?do=inne"
    End If
    If login="ok" Then
        Session("login") = "ok"
        Session.TimeOut = 40
        Response.Redirect "admin.asp?do=laggtill"
    End If

End If

If Request.Querystring("do")="inne" AND Session("admin") = "ok"  Then
Set RS = Server.CreateObject("ADODB.Recordset")%>

<table width="100%" border="0" cellspacing="0" cellpadding="1">
        <%Const perSida = 12
        Sidan = Request.QueryString("sida")
        If Sidan = "" then 
           sida = 1 
        Else 
           sida = Sidan 
        End If 

        With RS
          .CursorLocation = 3
          .CacheSize = perSida
        End With

        SQL = "Select * From Mess Order By datum DESC"
        RS.Open SQL, Conn

        If RS.EOF Then%>
K@llenMedlem sedan mars 20032 667 inlägg
#4

Din kod verkar lite halvfärdig, jag ändrade och kommenterade så långt det gick förstå vad du ville göra. Men din inloggning går att göra bättre :)

Ett av många tidigare exempel finns här:
http://www.webforum.nu/showthread.php?s=&postid=78202#post78202

<%Response.Buffer = True

Session.Lcid = 1053%>

<!--#Include file="settings.asp"-->

<html>
<head>
<title>Kalenderadmin</title>
<link rel="STYLESHEET" type="text/css" href="stil.css">
<script src="js/js.js"></script>
</head>

<body onLoad="<%=mess%>">

<%

'### anropa och öppna databasförbindelse ###
Set objDB = GetDBConn()

If Request.Querystring("do")="" Then%>

<table align="center" width="100%" border="0">
   <tr>
      <td colspan="2"><b>Logga in!</b></td>
   </tr>
   <form name="loggain" method="post" action="admin.asp?do=login">
   <tr>
      <td width="10%">Anvnamn:</td><td width="90%"><input type="text" name="admin1" size="15" value="<%=Request.Cookies("anvnamn") %>">
      </td>
   </tr>
   <tr>
      <td>Lösenord:</td><td><input type="password" name="admin2" size="15">
      </td>
   </tr>
   <tr>
      <td>Typ av inloggning:</td>
      <td>
        <select name="val" style="width:95">
           <option value="Admin">Admin
           <option value="Users">Användare
        </select>
      </td>
   </tr>
   <tr>
      <td colspan="2"><hr></td>
   </tr>
   <tr>
      <td> </td><td><input type="submit" value="Logga in"></td>
   </tr>
   <%If Session("mess") <> "" Then%>
   <tr>
      <td colspan="2"><hr></td>
   </tr>
   <tr>
      <td colspan="2" align="center" class="normal">
        <%Response.Write Session("mess")
         Session("mess") = ""%>
      </td>
   </tr>
   <%End If%>
   </form>
</table>

<%End If

If Request.Querystring("do")="login" Then

  If Request.Form("val") = "Admin" Then

    If Request.Form("admin1") = Admin1 AND Request.Form("admin2") = Admin2 Then
       admin="ok"
    Else
       Session("mess") = "Fel lösenord."
       Response.Redirect "admin.asp" 	
    End If

  ElseIf Request.Form("val") = "Users" Then
    
    sql ="Select * From Users where anvnamn='" & Request.Form("admin1") & "'"
    set RecSet = objDB.execute(sql)

    Response.Cookies("anvnamn") = Request.Form("anvnamn")
    Response.Cookies("anvnamn").Expires = date + 365

    If Not RecSet.EOF Then
       If Request.Form("admin2") = RecSet("losen") Then
         If RecSet("admin") = True Then
            admin="ok"
         Else 
            login="ok" 
         End If
       Else
          Session("mess") = "Du skrev fel lösenord!"
          Response.Redirect "admin.asp"	
       End If
    Else
          Session("mess") = "Anvnamnet finns inte!"
          Response.Redirect "admin.asp"	
    End If
  End If

    If admin="ok" Then
       Session("admin") = "ok"
       Session.TimeOut = 40
       Response.Redirect "admin.asp?do=inne"
    End If
    If login="ok" Then
        Session("login") = "ok"
        Session.TimeOut = 40
        Response.Redirect "admin.asp?do=laggtill"
    End If

End If

'#########################################################
'### Vad ska detta nedan leda till? Fram till hit har jag ändrat ########
'#########################################################

If Request.Querystring("do")="inne" AND Session("admin") = "ok"  Then %>

<table width="100%" border="0" cellspacing="0" cellpadding="1">
        <%Const perSida = 12
        Sidan = Request.QueryString("sida")
        If Sidan = "" then 
           sida = 1 
        Else 
           sida = Sidan 
        End If 

        With RS
          .CursorLocation = 3
          .CacheSize = perSida
        End With

        SQL = "Select * From Mess Order By datum DESC"
        RS.Open SQL, Conn

        If RS.EOF Then%>
sahleMedlem sedan jan. 200336 inlägg
#5

Tack för tipsen.

Jag har försökt att ändra i koden, men jag får nya felmeddelande.

på sidan "admin" så får jag detta felmeddelade:
Feltyp:
Körningsfel i Microsoft VBScript (0x800A01BE)
Namngivna argument stöds inte av objektet.: 'CacheSize'
/kalender/admin.asp, line 130

Här är kod runt linje 130

If Request.Querystring("do")="inne" AND Session("admin") = "ok"  Then
'### anropa och öppna databasförbindelse ###
Set objDB = GetDBConn()%>

<table width="100%" border="0" cellspacing="0" cellpadding="1">
        <%Const perSida = 12
        Sidan = Request.QueryString("sida")
        If Sidan = "" then 
           sida = 1 
        Else 
           sida = Sidan 
        End If 

        With objDB
          .CursorLocation = 3
          .CacheSize = perSida
        End With

        SQL = "Select * From Mess Order By datum DESC"
        set RecSet = objDB.execute(sql)

        If RS.EOF Then%>

Ska det vara så svårt att få ett script som är gjort för access att fungera med mysql?

Jag bifogar scriptet som det var ifrån början.

Är det någon som skulle vilja hjälpa mig att ändra så att jag kan
använda det mot databas "mysql".

K@llenMedlem sedan mars 20032 667 inlägg
#6

på sidan "admin" så får jag detta felmeddelade:
Feltyp:
Körningsfel i Microsoft VBScript (0x800A01BE)
Namngivna argument stöds inte av objektet.: 'CacheSize'
/kalender/admin.asp, line 130

Iom att du inte anger någon cursertyp kan du inte använda ADO på samma sätt som tidigare. Ett tips är att titta på det pagingskriptet som PatrikB har i skriptarkivet. Det är enkelt att modifiera till mysql och kräver ingen öppning med speciella cursertyper.

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)