Just nu i M3-nätverket
Gå till innehåll

Hur fixar jag problemet?


hejahv

Rekommendera Poster

Har skrivit följande:

 

[log]<!-- #include virtual="/Discussion/../Sole Distributors Supportcenter/SSI/adovbs.inc" --> <%

Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\Sole Distributors Supportcenter\data\users.mdb"

 

Request.QueryString("add")

%>

<% If Request.QueryString("add") = "form" Then %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Untitled Document</title>

<link href="file:///C|/Inetpub/wwwroot/Sole Distributors Supportcenter/style.css" rel="stylesheet" type="text/css" />

<link href="../styles/style.css" rel="stylesheet" type="text/css" />

</head>

 

<body>

<p><img src="file:///C|/Inetpub/wwwroot/Sole Distributors Supportcenter/images/discussion.gif" width="550" height="23" />

<br />

</p>

<% Show = "SELECT Username FROM users WHERE Username = '" & Request.QueryString("user") & "' "

RecSet.Open Show, Connect, adOpenStatic, adLockOptimistic %>

<form id="form1" name="form1" method="post" action="newsubject.asp?add=subject">

<table width="480" border="0">

<tr>

<td width="145"><strong>

<label>Subject:</label>

</strong></td>

<td width="418"><input name="subject" type="text" class="small" id="subject" size="70" /></td>

</tr>

<tr>

<td valign="top"><strong>

<label>Message:</label>

</strong></td>

<td><textarea name="message" cols="50" rows="15" id="message"></textarea>

</td>

</tr>

</table>

 

<label></label>

<label>

 

<% Dim Datum

Datum = Now

%>

<input type="hidden" size="30" name="datum" value="<% =Datum %>" style="font-family: tahoma, verdana, arial; font-size: 8pt"><p>

<input type="hidden" name="user" value="<% =Request.QueryString("user") %>" style="font-family: tahoma, verdana, arial; font-size: 8pt"><p>

<input name="submit" type="submit" class="small" id="submit" value="Send" />

</label>

<br />

<br />

<label></label>

</form>

<p>

<% ElseIf Request.QueryString("add") = "subject" Then %>

<link href="../styles/style.css" rel="stylesheet" type="text/css" /><%

 

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "SELECT * FROM discussion"

 

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

 

RecSet.AddNew

 

RecSet("Subject") = Request.Form("subject")

RecSet("Message") = Request.Form("message")

RecSet("Written by") = Request.Form("user")

RecSet("Date") = Request.Form("datum")

 

 

RecSet.Update

RecSet.Close

Connect.Close

End If

%>

 

<img src="../images/discussion.gif" width="550" height="23" /></p>

<p>Your message has succesfully been posted!<br />

<br />

<br />

<a href="discussion.asp">Back</a></p>

</body>

</html>

[/log]

 

Får ett fel på rad22.

 

Beror på att jag ska hämta en viss kolumn från en annan tabell som sedan ska skrivas in i nuvarande tabell. Hur gör man detta på ett riktigt sätt och vad har jag gjort fel?

 

Tacksam för snabbt svar!

//

 

Länk till kommentar
Dela på andra webbplatser

Feltyp:

ADODB.Recordset (0x800A0E79)

Åtgärden är inte tillåten när objektet är öppet.

/Sole Distributors Supportcenter/Discussion/newsubject.asp, line 21

 

Beror kanske på att den inkluderade filen som ser ut så här:

[log]<% '====================================================================================================================== %>

<% ' Kontrollera användarnamn, lösenord och behörighet %>

<% '====================================================================================================================== %>

<link href="style.css" rel="stylesheet" type="text/css">

<% Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\Sole Distributors Supportcenter\data\users.mdb"

 

Set RecSet = Server.CreateObject("ADODB.Recordset") %>

 

<% Visa = "SELECT * FROM users"

RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic

 

X = FALSE

 

Do Until X = TRUE OR RecSet.EOF

 

If RecSet("Username") = Session("Username") Then

X = TRUE

Exit Do

End If

 

RecSet.MoveNext

 

Loop

 

If X = TRUE Then

 

Y = FALSE

Do Until Y = TRUE OR RecSet.EOF

 

If RecSet("Password") = Session("Password") Then

Y = TRUE

Exit Do

End If

 

RecSet.MoveNext

 

Loop

 

End If

 

If X = FALSE Then

Response.Write "You have written a wrong username!"

 

ElseIf Y = FALSE Then

Response.Write "You have witten a wrong password!"

 

End If

 

If X = TRUE AND Y = TRUE Then %>[/log]

 

Men hur skriver jag det så att det blir rätt??

 

//

 

Länk till kommentar
Dela på andra webbplatser

Hmmm.... lite märklig kod där, men testa med:

[log]

<!DOCTYPE html [color="#0000ff"]Public[/color] [GRÅ]"-//W3C//DTD XHTML 1.0 Transitional//EN"[/GRÅ] [GRÅ]"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"[/GRÅ]>
<html xmlns=[GRÅ]"http://www.w3.org/1999/xhtml"[/GRÅ]>
<head>
<meta http-equiv=[GRÅ]"Content-Type"[/GRÅ] content=[GRÅ]"text/html; charset=iso-8859-1"[/GRÅ] />
<title>Untitled Document</title>
<link href=[GRÅ]"style.css"[/GRÅ] rel=[GRÅ]"stylesheet"[/GRÅ] type=[GRÅ]"text/css"[/GRÅ] />
<link href=[GRÅ]"../styles/style.css"[/GRÅ] rel=[GRÅ]"stylesheet"[/GRÅ] type=[GRÅ]"text/css"[/GRÅ] />
</head>
<body>
<p><img src=[GRÅ]"images/discussion.gif"[/GRÅ] width=[GRÅ]"550"[/GRÅ] height=[GRÅ]"23"[/GRÅ] /><br /></p>
[MÄRK]<%[/MÄRK] 
[color="#0000ff"]Function[/color] sqlTxt(str)
   str=[color="#0000ff"]Replace[/color]([color="#0000ff"]Trim[/color](str), [GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])
[color="#0000ff"]End[/color] [color="#0000ff"]Function[/color]

strUser=sqlTxt([b]Request[/b].QueryString([GRÅ]"user"[/GRÅ])

[color="#0000ff"]If[/color] [b]Request[/b].QueryString([GRÅ]"add"[/GRÅ]) = [GRÅ]"form"[/GRÅ] [color="#0000ff"]Then[/color]
[MÄRK]%>[/MÄRK]
<form method=[GRÅ]"post"[/GRÅ] action=[GRÅ]"newsubject.asp?add=subject"[/GRÅ]>
<table width=[GRÅ]"480"[/GRÅ] border=[GRÅ]"0"[/GRÅ]>
<tr>
   <td width=[GRÅ]"145"[/GRÅ]><strong><label>Subject:</label></strong></td>
   <td width=[GRÅ]"418"[/GRÅ]><input name=[GRÅ]"subject"[/GRÅ] type=[GRÅ]"text"[/GRÅ] [color="#0000ff"]Class[/color]=[GRÅ]"small"[/GRÅ] id=[GRÅ]"subject"[/GRÅ] size=[GRÅ]"70"[/GRÅ] /></td>
</tr>
<tr>
   <td valign=[GRÅ]"top"[/GRÅ]><strong><label>Message:</label></strong></td>
   <td><textarea name=[GRÅ]"message"[/GRÅ] cols=[GRÅ]"50"[/GRÅ] rows=[GRÅ]"15"[/GRÅ] id=[GRÅ]"message"[/GRÅ]></textarea>
</td>
</tr>
</table>
<label>   
   <input type=[GRÅ]"hidden"[/GRÅ] name=[GRÅ]"user"[/GRÅ] value=[GRÅ]"<% =strUser %>"[/GRÅ] style=[GRÅ]"font-family: tahoma, verdana, arial; font-size: 8pt"[/GRÅ]><p>
   <input name=[GRÅ]"submit"[/GRÅ] type=[GRÅ]"submit"[/GRÅ] [color="#0000ff"]Class[/color]=[GRÅ]"small"[/GRÅ] id=[GRÅ]"submit"[/GRÅ] value=[GRÅ]"Send"[/GRÅ] />
</label><br /><br />
</form>
<p>
[MÄRK]<%[/MÄRK] 
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[color="#0000ff"]If[/color]  [b]Request[/b].QueryString([GRÅ]"add"[/GRÅ]) = [GRÅ]"subject"[/GRÅ] [color="#0000ff"]Then[/color] 
   strSubj = sqlTxt([b]Request[/b].Form([GRÅ]"subject"[/GRÅ]))
   strMess = sqlTxt([b]Request[/b].Form([GRÅ]"message"[/GRÅ]))
   strBy = sqlTxt([b]Request[/b].Form([GRÅ]"user"[/GRÅ]))
   strDate = [color="#0000ff"]Now[/color]()

   [color="#0000ff"]Set[/color] conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
   connStr = [GRÅ]"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\inetpub\wwwroot\Sole Distributors Supportcenter\data\users.mdb"[/GRÅ]
   conn.open connStr
   conn.[color="#0000ff"]Execute[/color]([GRÅ]"INSERT INTO discussion (Subject, Message, [Written by], [Date] ) VALUES('"[/GRÅ]&strSubj&[GRÅ]"', '"[/GRÅ]&strMess&[GRÅ]"','"[/GRÅ]&strBy&[GRÅ]"','"[/GRÅ]&strDate&[GRÅ]"',)"[/GRÅ])
   conn.close
   [color="#0000ff"]Set[/color] conn=[color="#0000ff"]Nothing[/color]

   [b]Response[/b].Write([GRÅ]"<p>Your message has succesfully been posted!<br /><br /><br /><a href="[/GRÅ][GRÅ]"discussion.asp"[/GRÅ][GRÅ]">Back</a></p>"[/GRÅ])
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[MÄRK]%>[/MÄRK]
</body>
</html>

[/log]

 

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Länk till kommentar
Dela på andra webbplatser

Får då detta felmeddelandet:

 

Feltyp:

Kompileringsfel i Microsoft VBScript (0x800A03EE)

')' förväntas.

/Sole Distributors Supportcenter/Discussion/newsubject.asp, line 16, column 42

strUser=sqlTxt(Request.QueryString("user")

-----------------------------------------^

 

Länk till kommentar
Dela på andra webbplatser

Slarvfel... Det saknas en slutparantes )

Raden skall alltså vara:

strUser=sqlTxt([b]Request[/b].QueryString([GRÅ]"user"[/GRÅ]))

 

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Länk till kommentar
Dela på andra webbplatser

Nytt felmeddelande:

 

Feltyp:

Microsoft JET Database Engine (0x80040E14)

Syntaxfel i INSERT INTO-uttryck.

/Sole Distributors Supportcenter/Discussion/newsubject.asp, line 52

 

 

//

 

Länk till kommentar
Dela på andra webbplatser

Fler slarvfel av mig.

Raden skall vara:

conn.[color="#0000ff"]Execute[/color]([GRÅ]"INSERT INTO discussion (Subject, Message, [Written by], [Date] ) VALUES('"[/GRÅ]&strSubj&[GRÅ]"', '"[/GRÅ]&strMess&[GRÅ]"','"[/GRÅ]&strBy&[GRÅ]"','"[/GRÅ]&strDate&[GRÅ]"')"[/GRÅ])

Förutsatt att kolumnen Date är textformat. Om det är datumformat skall raden vara:

conn.[color="#0000ff"]Execute[/color]([GRÅ]"INSERT INTO discussion (Subject, Message, [Written by], [Date] ) VALUES('"[/GRÅ]&strSubj&[GRÅ]"', '"[/GRÅ]&strMess&[GRÅ]"','"[/GRÅ]&strBy&[GRÅ]"',#"[/GRÅ]&strDate&[GRÅ]"#)"[/GRÅ])

 

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

[inlägget ändrat 2005-12-07 10:34:45 av Cluster]

Länk till kommentar
Dela på andra webbplatser

Nu funkar det, men ingen av den informationen som just lades in kan visas på discussion.asp...

[log]<!-- #include virtual="/Discussion/../Sole Distributors Supportcenter/SSI/adovbs.inc" --><!--#include virtual="/Discussion/../Sole Distributors Supportcenter/SSI/check-b-1.inc" --><%

Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\Sole Distributors Supportcenter\data\users.mdb"

 

Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT TOP 20 * FROM discussion ORDER BY ID DESC"

RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Sole Distributors Supportcenter</title>

<link href="file:///C|/Inetpub/wwwroot/Sole Distributors Supportcenter/style.css" rel="stylesheet" type="text/css" />

<link href="../styles/style.css" rel="stylesheet" type="text/css" />

</head>

 

<body>

<p><img src="file:///C|/Inetpub/wwwroot/Sole Distributors Supportcenter/images/discussion.gif" width="550" height="23" />

<br /></p>

 

<table width="602" border="0">

<tr>

<td width="226"><strong>Subject</strong></td>

<td width="111"><strong>Written by </strong></td>

<td width="124"><strong>Date</strong></td>

<td width="70"><strong>Answers</strong></td>

</tr><% Do While Not RecSet.EOF %>

 

 

<tr>

<td><a href="viewsubject.asp?subjectID=<% =RecSet("ID") %>">» <% =RecSet ("Subject") %></a></td>

<td>&nbsp;</td>

<td><% =RecSet ("Date") %></td>

<td>&nbsp;</td>

</tr><%

 

 

RecSet.MoveNext

Loop

%>

</table>

 

<p><br />

<a href="newsubject.asp?add=form">New subject</a></p>

 

<!--#include virtual="/Discussion/../Sole Distributors Supportcenter/SSI/check-b-2.inc" -->[/log]

 

Informationen läggs heller inte in i databasen...

 

//

 

Länk till kommentar
Dela på andra webbplatser

Testa att skriva ut SQL-satsen innan databastillägget.

[log]

<!DOCTYPE html [color="#0000ff"]Public[/color] [GRÅ]"-//W3C//DTD XHTML 1.0 Transitional//EN"[/GRÅ] [GRÅ]"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"[/GRÅ]>
<html xmlns=[GRÅ]"http://www.w3.org/1999/xhtml"[/GRÅ]>
<head>
<meta http-equiv=[GRÅ]"Content-Type"[/GRÅ] content=[GRÅ]"text/html; charset=iso-8859-1"[/GRÅ] />
<title>Untitled Document</title>
<link href=[GRÅ]"style.css"[/GRÅ] rel=[GRÅ]"stylesheet"[/GRÅ] type=[GRÅ]"text/css"[/GRÅ] />
<link href=[GRÅ]"../styles/style.css"[/GRÅ] rel=[GRÅ]"stylesheet"[/GRÅ] type=[GRÅ]"text/css"[/GRÅ] />
</head>
<body>
<p><img src=[GRÅ]"images/discussion.gif"[/GRÅ] width=[GRÅ]"550"[/GRÅ] height=[GRÅ]"23"[/GRÅ] /><br /></p>
[MÄRK]<%[/MÄRK]
[color="#0000ff"]Function[/color] sqlTxt(str)
   str=[color="#0000ff"]Replace[/color]([color="#0000ff"]Trim[/color](str), [GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])
[color="#0000ff"]End[/color] [color="#0000ff"]Function[/color]

strUser=sqlTxt([b]Request[/b]([GRÅ]"user"[/GRÅ]))

[color="#0000ff"]If[/color] [b]Request[/b]([GRÅ]"add"[/GRÅ]) = [GRÅ]"form"[/GRÅ] [color="#0000ff"]Then[/color]
[MÄRK]%>[/MÄRK]
<form method=[GRÅ]"post"[/GRÅ] action=[GRÅ]"?add=subject"[/GRÅ]>
<table width=[GRÅ]"480"[/GRÅ] border=[GRÅ]"0"[/GRÅ]>
<tr>
   <td width=[GRÅ]"145"[/GRÅ]><strong><label>Subject:</label></strong></td>
   <td width=[GRÅ]"418"[/GRÅ]><input name=[GRÅ]"subject"[/GRÅ] type=[GRÅ]"text"[/GRÅ] [color="#0000ff"]Class[/color]=[GRÅ]"small"[/GRÅ] size=[GRÅ]"70"[/GRÅ] /></td>
</tr>
<tr>
   <td valign=[GRÅ]"top"[/GRÅ]><strong><label>Message:</label></strong></td>
   <td><textarea name=[GRÅ]"message"[/GRÅ] cols=[GRÅ]"50"[/GRÅ] rows=[GRÅ]"15"[/GRÅ]></textarea>
</td>
</tr>
</table>
<label>
   <input type=[GRÅ]"hidden"[/GRÅ] name=[GRÅ]"user"[/GRÅ] value=[GRÅ]"<% =strUser %>"[/GRÅ]><p>
   <input type=[GRÅ]"submit"[/GRÅ] [color="#0000ff"]Class[/color]=[GRÅ]"small"[/GRÅ] value=[GRÅ]"Send"[/GRÅ] />
</label><br /><br />
</form>
<p>
[MÄRK]<%[/MÄRK]
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[color="#0000ff"]If[/color] [b]Request[/b]([GRÅ]"add"[/GRÅ]) = [GRÅ]"subject"[/GRÅ] [color="#0000ff"]Then[/color]
   strSubj = sqlTxt([b]Request[/b].Form([GRÅ]"subject"[/GRÅ]))
   strMess = sqlTxt([b]Request[/b].Form([GRÅ]"message"[/GRÅ]))
   strBy = sqlTxt([b]Request[/b].Form([GRÅ]"user"[/GRÅ]))
   strDate = [color="#0000ff"]Now[/color]()

   [color="#0000ff"]Set[/color] conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
   connStr = [GRÅ]"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\inetpub\wwwroot\Sole Distributors Supportcenter\data\users.mdb"[/GRÅ]
   conn.open connStr
   strSQL=[GRÅ]"INSERT INTO discussion (Subject, Message, [Written by], [Date] ) VALUES('"[/GRÅ]&strSubj&[GRÅ]"', '"[/GRÅ]&strMess&[GRÅ]"','"[/GRÅ]&strBy&[GRÅ]"',#"[/GRÅ]&strDate&[GRÅ]"#)"[/GRÅ]
   [b]Response[/b].Write(strSQL) [color="#006400"]'Skriver ut SQL-satsen, kan tas bort efter testning[/color]
   conn.[color="#0000ff"]Execute[/color](strSQL)
   conn.close
   [color="#0000ff"]Set[/color] conn=[color="#0000ff"]Nothing[/color]

   [b]Response[/b].Write([GRÅ]"<p>Your message has succesfully been posted!<br /><br /><br /><a href="[/GRÅ][GRÅ]"discussion.asp"[/GRÅ][GRÅ]">Back</a></p>"[/GRÅ])
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[MÄRK]%>[/MÄRK]
</body>
</html>

[/log]

 

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Länk till kommentar
Dela på andra webbplatser

Menar du denna??

 

INSERT INTO discussion (Subject, Message, [Written by], [Date] ) VALUES('', '','',#2005-12-07 13:44:02#)

 

Länk till kommentar
Dela på andra webbplatser

Men det var då sälva *#%! vad jag slarvade med koden... ;)

 

[color="#0000ff"]Function[/color] sqlTxt(str)
   str=[color="#0000ff"]Replace[/color]([color="#0000ff"]Trim[/color](str), [GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])
[color="#0000ff"]End[/color] [color="#0000ff"]Function[/color]

ska vara:

[color="#0000ff"]Function[/color] sqlTxt(str)
   str=[color="#0000ff"]Replace[/color]([color="#0000ff"]Trim[/color](str), [GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])
   sqlTxt=str
[color="#0000ff"]End[/color] [color="#0000ff"]Function[/color]

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Länk till kommentar
Dela på andra webbplatser

förutom att Written by: fortfarande inte fylls i

Fast det beror ju på att din (och därigenom min) lösning bygger på att sidan anropas med Querystringen "user" som skall ange vem det är som skriver...

Altså typ: newsubject.asp?user=Lisa

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Länk till kommentar
Dela på andra webbplatser

Ja det beror ju helt på... Hur tar du reda på vem det är som skriver inlägget?

 

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Länk till kommentar
Dela på andra webbplatser

Genom att den ska kolla upp sessionen "user" och "password" som läses av när man loggar in. Sen ska den kunna hitta rätt namn genom att gå in i den raden under kolumnen "Contact person".

 

Så här ser den inkluderade filen ut som kollar om användaren är inloggad eller inte:

[log]

<% '====================================================================================================================== %>

<% ' Kontrollera användarnamn, lösenord och behörighet %>

<% '====================================================================================================================== %>

<link href="style.css" rel="stylesheet" type="text/css">

<% Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\Sole Distributors Supportcenter\data\users.mdb"

 

Set RecSet = Server.CreateObject("ADODB.Recordset") %>

 

<% Visa = "SELECT * FROM users"

RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic

 

X = FALSE

 

Do Until X = TRUE OR RecSet.EOF

 

If RecSet("Username") = Session("Username") Then

X = TRUE

Exit Do

End If

 

RecSet.MoveNext

 

Loop

 

If X = TRUE Then

 

Y = FALSE

Do Until Y = TRUE OR RecSet.EOF

 

If RecSet("Password") = Session("Password") Then

Y = TRUE

Exit Do

End If

 

RecSet.MoveNext

 

Loop

 

End If

 

If X = FALSE Then

Response.Write "You have written a wrong username!"

 

ElseIf Y = FALSE Then

Response.Write "You have witten a wrong password!"

 

End If

 

If X = TRUE AND Y = TRUE Then %>[/log]

 

Ska man använda den kanske??

 

//

 

Länk till kommentar
Dela på andra webbplatser

Att inkludera en databasläsning på alla sidor tycker jag känns onödigt.

Har du kollat användarens angivna användarnamn och lösen mot databasen en gång så räcker det (i normalfallet) att därefter kolla så att Session("Username") har ett värde.

 

Och i SQL-satsen blir det ju då Session("Username") som skall användas för att ange vem det är som skrivit.

 

[log]

<!DOCTYPE html [color="#0000ff"]Public[/color] [GRÅ]"-//W3C//DTD XHTML 1.0 Transitional//EN"[/GRÅ] [GRÅ]"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"[/GRÅ]>
<html xmlns=[GRÅ]"http://www.w3.org/1999/xhtml"[/GRÅ]>
<head>
<meta http-equiv=[GRÅ]"Content-Type"[/GRÅ] content=[GRÅ]"text/html; charset=iso-8859-1"[/GRÅ] />
<title>Untitled Document</title>
<link href=[GRÅ]"style.css"[/GRÅ] rel=[GRÅ]"stylesheet"[/GRÅ] type=[GRÅ]"text/css"[/GRÅ] />
<link href=[GRÅ]"../styles/style.css"[/GRÅ] rel=[GRÅ]"stylesheet"[/GRÅ] type=[GRÅ]"text/css"[/GRÅ] />
</head>
<body>
<p><img src=[GRÅ]"images/discussion.gif"[/GRÅ] width=[GRÅ]"550"[/GRÅ] height=[GRÅ]"23"[/GRÅ] /><br /></p>
[MÄRK]<%[/MÄRK]
[color="#0000ff"]Function[/color] sqlTxt(str)
   sqlTxt=[color="#0000ff"]Replace[/color]([color="#0000ff"]Trim[/color](str), [GRÅ]"'"[/GRÅ], [GRÅ]""[/GRÅ])
[color="#0000ff"]End[/color] [color="#0000ff"]Function[/color]

strUser=sqlTxt([b]Request[/b]([GRÅ]"user"[/GRÅ]))

[color="#0000ff"]If[/color] [b]Request[/b]([GRÅ]"add"[/GRÅ]) = [GRÅ]"form"[/GRÅ] [color="#0000ff"]Then[/color]
[MÄRK]%>[/MÄRK]
<form method=[GRÅ]"post"[/GRÅ] action=[GRÅ]"?add=subject"[/GRÅ]>
<table width=[GRÅ]"480"[/GRÅ] border=[GRÅ]"0"[/GRÅ]>
<tr>
   <td width=[GRÅ]"145"[/GRÅ]><strong><label>Subject:</label></st
rong></td>
   <td width=[GRÅ]"418"[/GRÅ]><input name=[GRÅ]"subject"[/GRÅ] type=[GRÅ]"text"[/GRÅ] [color="#0000ff"]Class[/color]=[GRÅ]"small"[/GRÅ] size=[GRÅ]"70"[/GRÅ] /></td>
</tr>
<tr>
   <td valign=[GRÅ]"top"[/GRÅ]><strong><label>Message:</label></st
rong></td>
   <td><textarea name=[GRÅ]"message"[/GRÅ] cols=[GRÅ]"50"[/GRÅ] rows=[GRÅ]"15"[/GRÅ]></textarea>
</td>
</tr>
</table>
<label>
   <p><input type=[GRÅ]"submit"[/GRÅ] [color="#0000ff"]Class[/color]=[GRÅ]"small"[/GRÅ] value=[GRÅ]"Send"[/GRÅ] /></p><br /><br />
</label>
</form>
<p>
[MÄRK]<%[/MÄRK]
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[color="#0000ff"]If[/color] [b]Request[/b]([GRÅ]"add"[/GRÅ]) = [GRÅ]"subject"[/GRÅ] [color="#0000ff"]Then[/color]
   strSubj = sqlTxt([b]Request[/b].Form([GRÅ]"subject"[/GRÅ]))
   strMess = sqlTxt([b]Request[/b].Form([GRÅ]"message"[/GRÅ]))
   strDate = [color="#0000ff"]Now[/color]()

   [color="#0000ff"]Set[/color] conn = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Connection"[/GRÅ])
   connStr = [GRÅ]"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\inetpub\wwwroot\Sole Distributors Supportcenter\data\users.mdb"[/GRÅ]
   conn.open connStr
   strSQL=[GRÅ]"INSERT INTO discussion (Subject, Message, [Written by], [Date] ) VALUES('"[/GRÅ]&strSubj&[GRÅ]"', '"[/GRÅ]&strMess&[GRÅ]"','"[/GRÅ]&[b]Session[/b]([GRÅ]"Username"[/GRÅ])&[GRÅ]"',#"[/GRÅ]&strDate&[GRÅ]"#)"[/GRÅ]
   [b]Response[/b].Write(strSQL) [color="#006400"]'Skriver ut SQL-satsen, kan tas bort efter testning[/color]
   conn.[color="#0000ff"]Execute[/color](strSQL)
   conn.close
   [color="#0000ff"]Set[/color] conn=[color="#0000ff"]Nothing[/color]

   [b]Response[/b].Write([GRÅ]"<p>Your message has succesfully been posted!<br /><br /><br /><a href="[/GRÅ][GRÅ]"discussion.asp"[/GRÅ][GRÅ]">Back</a></p>"[/GRÅ])
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[MÄRK]%>[/MÄRK]
</body>
</html>

[/log]

 

Jag brukar iof nästan uteslutande använda mig av primärnyckeln (en id-kolumn av räknartyp) för att hålla koll på användare.

Dvs i tex. en diskussionsdatabas så lägger jag in id't på författaren istället för dennes användarnamn.

 

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

[inlägget ändrat 2005-12-08 08:26:05 av Cluster]

Länk till kommentar
Dela på andra webbplatser

Funkar!

 

Hur gör jag om jag vill visa kolumnen "Contact person" istället som finns i samma tabell som Username??

 

Om jag inte inkluderar filen kan man väl komma åt sidan även om man inte är inloggad...eller??

 

//

 

Länk till kommentar
Dela på andra webbplatser

Funkar!
Naturligtvis ;)

 

Om jag inte inkluderar filen kan man väl komma åt sidan även om man inte är inloggad...eller??
Jag brukar sätta upp så att varje sida kollar om man har verifierat anv.namn och lösen. Detta görs genom att först av allt kolla om en sessionsvariabel har något värde.

Tex:

[MÄRK]<%[/MÄRK] [color="#0000ff"]If[/color] [b]Session[/b]([GRÅ]"intUserId"[/GRÅ])=[GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color] [b]Response[/b].Redirect([GRÅ]"login.asp"[/GRÅ]) [color="#0000ff"]End[/color] [color="#0000ff"]If[/color] [MÄRK]%>[/MÄRK]

login.asp är den sida där man matar in sitt användarnamn och lösenoch där detta kollas mot databasen. Om man har angett korrekta uppgifter så tilldelas sessionsvariabeln intUserId användarens unika id. Lite på samma sätt som du gör i din inkluderade fil alltså fast bara en gång.

 

Hur gör jag om jag vill visa kolumnen "Contact person" istället som finns i samma tabell som Username??
Tja, det beror ju på var och hur du vill visa detta. Eftersom du alltid har användarens unika id tillgängligt kan du (i princip) var somm helst och när som helst hämta information om denna användare.

 

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

[inlägget ändrat 2005-12-08 08:53:58 av Cluster]

Länk till kommentar
Dela på andra webbplatser

Jag brukar sätta upp så att varje sida kollar om man har verifierat anv.namn och lösen. Detta görs genom att först av allt kolla om en sessionsvariabel har något värde.

Tex:

<% If Session("intUserId")="" Then Response.Redirect("login.asp") End If %>

 

Ok, räcker det med att bara skriva den koden längst upp på sidan eller? Min kolumn för ID heter just "ID". Ska jag skriva intID istället då??

 

Tja, det beror ju på var och hur du vill visa detta. Eftersom du alltid har användarens unika id tillgängligt kan du (i princip) var somm helst och när som helst hämta information om denna användare.

 

Vill att den ska läggas in i denna sats istället för "Username"

[log]

Set conn = Server.CreateObject("ADODB.Connection")

connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\inetpub\wwwroot\Sole Distributors Supportcenter\data\users.mdb"

conn.open connStr

strSQL="INSERT INTO discussion (Subject, Message, [Written by], [Date] ) VALUES('"&strSubj&"', '"&strMess&"','"&Session("Username")&"',#"&strDate&"#)"

conn.Execute(strSQL)

conn.close

Set conn=Nothing

[/log]

 

Länk till kommentar
Dela på andra webbplatser

Ok, räcker det med att bara skriva den koden längst upp på sidan eller? Min kolumn för ID heter just "ID". Ska jag skriva intID istället då??
Nej.

DU måste ju ha en funktion för inloggning som ser till att tilldela den sessionsvariabel, som används för kontroll, med ett värde. Dvs. en inloggnings sida. Där avgör du vilken/vilka uppgifter om användaren som skall användas, efter det att användaren har verifierat sig.

 

Vill att den ska läggas in i denna sats istället för "Username"
Antingen så gör du då innan detta en inläsning från rätt kolumn för att hämta den info du vill ha. Sedan kan du lägga till den i discussion -tabellen.

 

 

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...