webForumDet fria alternativet

Rättning

ASP

12 svar · 267 visningar · startad av webbmannen

Medlem sedan dec. 1999826 inlägg
Frågan#1

Behöver någons rödpenna :)

Är jag på rätt väg med nedanstående kod om jag vill ha besökarens uppgifter inskrivna i min databas?


<html>
<head><title>Indexsidan</title></head>

<body>

<%

Dim datum, ip,  browser

datum = Date
ip = Request.ServerVariables("REMOTE_ADDR")
browser = Request.ServerVariables("HTTP_USER_AGENT")

%>

<form>
<tr>
<td><input type="hidden" name="datum" value="<%=datum%>"></td>
<td><input type="hidden" name="ip" value="<%=ip%>"></td>
<td><input type="hidden" name="browser" value="<%=browser%>"></td>
</tr>
</form>

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\statestikdb.mdb" 

Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM statestik"

RecSet.Open Addera, Connect

RecSet.AddNew

RecSet("Datum") = Request.Form("datum")
RecSet("IP-nummer") = Request.Form("ip")
RecSet("Browser") = Request.Form("browser")

RecSet.Update
RecSet.Close
Connect.Close
%>

</body>

</html>

När jag kör sidan på PWS så får jag felmeddelandet:

ADODB.Recordset fel '800a0cb3'

Åtgärden som programmet begärt stöds inte av leverantören.

/index.asp, rad 37

/webb

Medlem sedan mars 2000263 inlägg
#2

varför har du med:
<form>
<tr>
<td><input type="hidden" name="datum" value="<%=datum%>"></td>
<td><input type="hidden" name="ip" value="<%=ip%>"></td>
<td><input type="hidden" name="browser" value="<%=browser%>"></td>
</tr>
</form>

det fyller ju ingen funktion?

------------------
/bohlin

Medlem sedan mars 20001 266 inlägg
#3

Kom bara och tänka på en sak snabbt, borde det inte vara två parenteser efter date?
alltså

datum = Date()

Skall nog vara så.

Andreas

Medlem sedan dec. 19996 721 inlägg
#4

Gör om med en SQL-INSERT i stället för addnew. Det är ett otyg! ;)

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

Medlem sedan dec. 19998 577 inlägg
#5

... och färdigt skulle detta kunna se ut såhär:

<html>
<head><title>Indexsidan</title></head>

<body>

<%

Dim datum, ip, browser

datum = Date
ip = Request.ServerVariables("REMOTE_ADDR")
browser = Request.ServerVariables("HTTP_USER_AGENT")

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\statestikdb.mdb" 

SQL = "Insert INTO statestik "
SQL = SQL & "(datum, IP-nummer, browser) "
SQL = SQL & "VALUES('" & Request.Form("datum") & "', '" & Request.Form("ip") & "', '" & Request.Form("browser")& "')"
Connect.execute(SQL)
%>

</body>

</html>

Andreas, Date() behöver inte ha paranteser...

Annars så ser det bra ut... :)

------------------
Vides motto: Ju fler saker man tycker är roligt, desto roligare har man
www.webeye.nu

Medlem sedan dec. 19996 721 inlägg
#6

Förutom att statistik är felstavat.... ;) :e

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

Medlem sedan dec. 1999826 inlägg
#7

Vide,

Nu har jag ett annat felmeddelande :(

[Microsoft][Drivrutin för ODBC Microsoft Access 97] Syntaxfel i INSERT INTO-uttryck.

Om inget är felskrivet i din kod så har jag alltså ett fel på något annat ställe - har du någon kvalificerad gissning isåfall?

emission,
Dylika felstavningar görs för att se om man kan locka fram dig ;)

/webb

Medlem sedan dec. 19998 577 inlägg
#8

Testa att skriva ut SQL satsen för du exekverar den:

Response.write SQL

------------------
Vides motto: Ju fler saker man tycker är roligt, desto roligare har man
www.webeye.nu

Medlem sedan dec. 1999826 inlägg
#9

Jag har testat att byta ut
Connect.execute(SQL)
mot
Response.write SQL
svaret blev:
Insert INTO statestik (Datum, IP-nummer, Browser) VALUES('', '', '')

Det är kanske på sin plats att berätta att jag endast kan testa sidan en gång, sedan åker jag på att starta om datorn. Det kanske beror på att jag sitter och leker på en gammal P100 iof ;)

/webb

Medlem sedan maj 2000107 inlägg
#10

Zaphod rycker ut igen ;)

Vide har nog missat lite där i koden.
Han frågar efter några variabler som ska skickas med ett form (request.form). Men några sådana skickas ju inte, eftersom det är indexsidan vi håller på med. Eller hur?

Det var ju "liksom" det som denna koden var till för.

Dim datum, ip, browser

datum = Date
ip = Request.ServerVariables("REMOTE_ADDR")
browser = Request.ServerVariables("HTTP_USER_AGENT")

Det här är min lösning:

<html>
<head><title>Indexsidan</title></head>
<body>
<%
Dim cn,SQL

SQL = "Insert INTO statistik (Datum, IP-nummer, Browser) VALUES('"&now()&"', '"&Request.ServerVariables("REMOTE_ADDR")
&"', '"&Request.ServerVariables("HTTP_USER_AGENT")&"')"

Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\statestikdb.mdb" 
cn.Execute(SQL)
%>

</body>
</html>

Kolla stavningen på statistik också. Vet inte ifall felstavningen var medveten från ditt håll ;)

------------------
/Magnus aka Zaphod
www.designmodule.com.bi

Medlem sedan dec. 1999826 inlägg
#11

Zaphod,

Det blir tyvärr samma svar när jag använder din kod dvs.

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'

[Microsoft][Drivrutin för ODBC Microsoft Access 97] Syntaxfel i INSERT INTO-uttryck.

/statestik/index.asp, rad 10

Vilken mara det här blev då :( Tack för den tid ni lägger ner :)

/webb

Medlem sedan maj 2000107 inlägg
#12

Det var konstigt. Har du sett till att SQL variabeln var på en och samma rad?

Det verkar som ett radbyte har smygit sig in i koden där (den här rutan man skriver i är ju så jävla liten)

Allt i SQL variabeln ska vara på en och samma linje iallfall.

------------------
/Magnus aka Zaphod
www.designmodule.com.bi

Medlem sedan dec. 1999826 inlägg
#13

Nja, det fanns ett mellanslag men det uppmärksammade jag och fixade till.

/webb

512 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
383 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)