Hej jag har ett problem.. håller på med ett script där användaren måste logga in sig för att kunna läggat till, ta bort och ändra information i databasen.
Så långt jag har kommit nu så får jag bara Internt Server Fel 500 hela tiden..
Ni ska få se koderna..
<%
Session("username") = Request.Form("username")
Session("password") = Request.Form("password")
If Session("username") = "<% = RecSet('Username') %>" AND Session("password") = "<% = RecSet('Password') %>" THEN
Response.Write "You are logged in and are now allowed to edit the database."
Else
Response.Write "Login Failed, please check your username and password and try again"
Response.Write "<a href='admin_login.asp'>Try again</a>
End If
%>
Så här ser databas anslutningen + Sql uttrycket ut för scriptet och den ligger i en fil som heter db_adminlogin.asp
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open = "bypath"
Addera = "SELECT * FROM users"
Set RecSet = Server.CreateObject("ADODB.Recordset")
' This opens the Sql querys with the help of Recordset
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>
Är ganska ny på det här med ASP, så jag skulle vara tacksam för alla svar jag skulle kunna få.
[Redigerat av cHeMiCaL-X den 14 okt 2001]
icaaqMedlem sedan okt. 20004 910 inlägg Ta bort snälla felmedelanden under verktyg....så ser du det riktiga felet ;)
------------------
[Har aldrig redigerats av någon den 11 okt 2001]
I IIS under Custom Messages?
@ndersMedlem sedan juni 200026 914 inlägg Nix, i Internet Explorer.
Verktyg -> Internetalternativ -> Avancerat -> Visa egna http-felmeddelanden / Show friendly error messages.
Mvh,
------------------
All your base are belong to me.
Då står det så här:
Microsoft VBScript compilation error '800a0409'
Unterminated string constant
/bypath/admin_login2.asp, line 36
If Session("username") = "<% = RecSet('Username')
-------------------------------------------------^
@ndersMedlem sedan juni 200026 914 inlägg Jag kände på mig det.
Du kan inte ha asp-block i asp-block på det sättet.
Prova detta:
If Session("username") = RecSet("Username") AND Session("password") = RecSet("Password") THEN
Men, om det där är en inloggningskontroll, så bör du istället göra den jämförelsen direkt i SQL-frågan.
De båda kodstyckena du visar, hänger de ihop? Det ser ut så...
Mvh,
------------------
All your base are belong to me.
nu verkar det som jag har skrivit SQL uttrycket fel, Får mitt egna felmeddelande när jag ska logga in..
[Redigerat av cHeMiCaL-X den 14 okt 2001]
@ndersMedlem sedan juni 200026 914 inlägg Fast den andra kodsnutten du visade, den kan inte fungera. Du skall inte ha något = efter Connect.open, nämligen.
Connect.Open "bypath"
Mvh,
------------------
All your base are belong to me.
har tagit bort = på Connect.Open
@ndersMedlem sedan juni 200026 914 inlägg Ok, hur ser koden för hela den sidan ut?
------------------
All your base are belong to me.
lite jobbig att klistra in det här igen men här kommer den...
<!-- #include file="adovbs.inc" -->
<!-- #include file="db_adminlogin.inc" -->
<html>
<head>
<meta name="VI60_DTCScriptingPlatform" content="Klient (IE 4.0 DHTML)">
<title>The_Bypath Ftp-Server Ring</title> <LINK REL=STYLESHEET HREF="bypath.css" TYPE="text/css"></head>
<body bgproperties="fixed" background="images/bg_color.gif">
<center>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-left-width:0; border-right-width:0" bordercolor="#111111" width="63%" id="AutoNumber1" height="182">
<tr>
<td width="100%" bgcolor="#FFFFFF" style="border-left-color: #111111; border-left-width: 1; border-right-color: #111111; border-right-width: 1" height="55">
<p align="center">
<img border="0" src="images/bypath-logo.gif"></td>
</tr>
<tr>
<td width="100%" style="border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: solid; border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1" height="19">
<p align="center"><b><font size="1" face="Verdana">
<a href="show.asp?Show=apps">Apps</a></font></b>
| <b><font size="1" face="Verdana">
<a href="show.asp?Show=console">Console</a></font></b> | <b>
<font size="1" face="Verdana">
<a href="show.asp?Show=games">Games</a></font></b> | <b>
<font size="1" face="Verdana">
<a href="show.asp?Show=movies">Movies</a></font></b> | <b>
<font size="1" face="Verdana">
<a href="show.asp?Show=music">Music</a></font></b> | <b>
<font face="Verdana" size="1"><a href="search.asp">Search - Not working.</a></font></b></td>
</tr>
<tr>
<td width="100%" bgcolor="#FFFFFF" style="border-left-color: #111111; border-left-width: 1; border-right-color: #111111; border-right-width: 1" height="68">
<%
Session("username") = Request.Form("username")
Session("password") = Request.Form("password")
If Session("username") = RecSet("Username") AND Session("password") = RecSet("Password") THEN
Response.Write "You are logged in and are now allowed to edit the database."
Else
Response.Write "Login Failed, please check your username and password and try again <br>"
Response.Write "<a href='admin_login.asp'>Try again</a>"
End If
%>
</td>
</tr>
<td width="100%" style="border-left: medium none #111111; border-right: medium none #111111; border-top-style: solid; border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1" height="12">
<p align="center"></td>
</tr>
<tr>
<td width="100%" bgcolor="#FFFFFF" style="border-left-color: #111111; border-left-width: 1; border-right-color: #111111; border-right-width: 1" height="24">
<p align="left"><font face="Verdana" size="1"><b>Scripting and design: [cHeMiCaL-X]
- </b>This is a free service. If you dont like it, leave us!</font></td>
</tr>
</table>
</center>
</body>
</html>
Databas kopplingen och SQL Uttrycket ser nu ut så här ( db_adminlogin.inc ):
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "bypath"
Addera = "SELECT * FROM users Order BY Username"
Set RecSet = Server.CreateObject("ADODB.Recordset")
' This opens the Sql querys with the help of Recordset
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>
[Redigerat av cHeMiCaL-X den 14 okt 2001]
@ndersMedlem sedan juni 200026 914 inlägg Om du inte använder db_adminlogin.asp för annat, så ändra SQL-frågan till följande:
Addera = "SELECT * FROM users WHERE username = '" & Request.Form("username") & "' AND password = '" & Request.Form("password") & "'"
Byt sedan
If Session("username") = RecSet("Username") AND Session("password") = RecSet("Password") THEN
mot
If not RecSet.eof then
Sen kan du ju också kontrollera så att du har rätt värden med dig.
Response.write Addera precis innan du skapar det recordsetet.
Mvh,
------------------
All your base are belong to me.
[Redigerat av @nders den 14 okt 2001]
Detta är vad jag fick när jag la in Response.Write precis för skapandet av recordsetet:
Microsoft VBScript runtime error '800a01a8'
Object required: 'Respons'
/bypath/db_adminlogin.inc, line 7
db_adminlogin.inc ser nu ut så här:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "bypath"
Addera = "SELECT * FROM users WHERE username = '" & Request.Form("username") & "' AND password = '" & Request.Form("password") & "'"
Respons.Write Addera
Set RecSet = Server.CreateObject("ADODB.Recordset")
' This opens the Sql querys with the help of Recordset
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>
Tack för hjälpen jag har fått hittils, uppskattar det!
-----
Det var jag som hadde stavat fel på Response :)
[Redigerat av cHeMiCaL-X den 14 okt 2001]
@ndersMedlem sedan juni 200026 914 inlägg Du har glömt ett litet e.
Respons[b]e[/b].Write Addera
Mvh,
------------------
All your base are belong to me.
Verkar som inte den får med sig informationen från forumläret riktigt..
Jag får detta: SELECT * FROM users WHERE Username = '' AND Password = 'Test'
@ndersMedlem sedan juni 200026 914 inlägg Då är det dags att kontrollera stavning på namnen du gett dina formulärfält och stavningen du använt í Request.Form i byggandet av SQL-frågan.
Mvh,
------------------
All your base are belong to me.
nu funkar det...
<form method ="Post" action="admin_login2.asp">
låg på fel ställe
Nu till en annan sak.. Kan man köra två SQL satser samtidigt?
jag måste ju ha sql satserna för att rediger och lägga till och sånt
+ att jag måste ha sql satserna för session...
Hur gör man det?
@ndersMedlem sedan juni 200026 914 inlägg Jag förstår inte riktigt hur du menar.
Man kan i alla fall ha flera olika recordsets öppna samtidigt.
sqlfraga1 = "select * from tblBlah where a='oop'"
sqlfraga2 = "select * from tblBlah where b='kaah'"
set objRS = Connect.execute(sqlfraga1)
set objRS2 = Connect.execute(sqlfraga2)
Mvh,
------------------
All your base are belong to me.