webForumDet fria alternativet

Bort med id i adressen i browsern?

ASP

4 svar · 164 visningar · startad av thisseman

Medlem sedan apr. 200022 inlägg
Frågan#1

Frågan är:
En köpare har loggat in och går till
sin sida där han kan välja olika vägar att gå, bl a titta på sina offertförfrågningar som är aktuella.
Jag har använt mig av följande sätt
för att lista offerterna
<a href="visaoffert.asp?offertQid=<% offertQid%>
i visaoffert.asp där jag använder följand sqlsats
sql= "SELECT * from byers inner join offert on byers.FtgIF=Offert.FtgID Where OffertQID =" & request("offertQID")
Dettq gör att ID syns i browserns adress och därmed lätt att titta på andras offerter vilket inte är meningen.
Hur gör jag för att lösa detta?

Tacksam för snabbt svar
Göran

Medlem sedan apr. 20007 588 inlägg
#2

Om varje offert i databasen är knuten till en specifik kund så kan du lägga in kundid som ett vilkor i SQL-satsen. Om "fel" kund försöker nå en offert så kommer RecordSet'et vara EOF och du kan då skriva ett felmeddelande.

sql= "SELECT * from byers inner join offert on byers.FtgIF=Offert.FtgID Where OffertQID =" & request("offertQID") & " CustomerID =" & Session("CustomerID")

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

1010011010 - The binary number of the beast

Medlem sedan apr. 200022 inlägg
#3

Tack för svaret men det blir fel här är lite mer kod:

%>
<% DBpath ="DBQ=" & Server.MapPath("forum.mdb")
Set GTL=Server.CreateObject("ADODB.Connection")
Set rsOffert=Server.CreateObject("ADODB.Recordset")
Set rsbyers=Server.CreateObject("ADODB.Recordset")
GTL.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBpath
' =================================================================
' ----- villfå bort adressen i fönstret på browsern så att man inte kan välja annat nr !!!
' =================================================================
'id=rsbyers("FtgID")
sql = "SELECT * from byers inner join offert on byers.FtgID=offert.FtgID where OffertQID =" & request("offertQID") & "FtgID=" & Session("Ftgid")
'sql = "SELECT * from byers inner join offert on byers.FtgID=" & Session("Ftgid")

'sql = "SELECT * from offert, byers Where UserName ='" & Session("UserName") & "'"
'sql = "Select * from offert, byers where offert.FtgID =" & Session("Ftgid")
'sql= "select * from offert where OffertQID="& rsOffert("offertQID")

rsbyers.Open sql, GTL , 1, 2
rsOffert.Open sql, GTL , 1, 2
if rsOffert.eof then
response.write "No Prise Requests in the database"
end if
----------------
Får följande felmed:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'OffertQID =180FtgID=29'.

/visaoffert.asp, rad 42

???
Göran

Medlem sedan apr. 20007 588 inlägg
#4

Felet är här:
sql = "SELECT * from byers inner join offert on byers.FtgID=offert.FtgID where OffertQID =" & request("offertQID") & "FtgID=" & Session("Ftgid")

Du har glömt AND:
sql = "SELECT * from byers inner join offert on byers.FtgID=offert.FtgID where OffertQID =" & request("offertQID") & " AND FtgID=" & Session("Ftgid")

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

1010011010 - The binary number of the beast

Medlem sedan apr. 200022 inlägg
#5

Tack nu fungerar det fast jag fick lägga till tabellnamnet byers.FtgID
eftersom det finns FtgId i både byers och offert.
Hälsningar
Göran

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