/ Forside/ Teknologi / Udvikling / ASP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
SQL og ASP
Fra : lars09
Vist : 640 gange
70 point
Dato : 14-11-03 15:47

Hej !!!

Jeg sidder med et lille problem, men hensyn til nogle cookies, jeg har taget et brugernavn og lagt i cookien, hvorefter brugeren bliver videre sendt til en anden side! denne side kan godt for cookiens værdi ud, men hvordan får jeg værdien med i min sql sætning.

Jeg skal forespørge på alle poster, hvor navnet er det som cookien indeholder ???

Håber i forstår hvad jeg mener

Altså: Logon side -> skriver cookie -> Videre sendes til ny side -> Læser cookie -> Sættes ind i SQL
Det er sidste led jeg mangler

God Weekend

 
 
Kommentar
Fra : MouseKeeperX


Dato : 14-11-03 22:27

Du har formentlig sat cookien på noget der ligner denne måde:

<% Response.Cookies("CookieUserName") = "Et eller andet du har fået fra en form" %>

Den måde du får fat i denne (streng)værdi på kunne være:

<%
strSQLusername = Request.Cookies("CookieUserName")
'og så er det bare at bygge strengen op - specificer evt de felter du vil have fat på istedet for at benytte *
strSQLquery = "SELECT * FROM userdata WHERE username = '" + strSQLusername + "'"
' og så fyr den af...

%>

Jeg ved ikke om dit problem skyldes manglende ' ' om strengen eller andet, men skriv endelig igen hvis dette ikke hjælper.

mvh
/M


Kommentar
Fra : lars09


Dato : 15-11-03 10:56

<%
strNavn = Request.Cookies("HTMLTest")("strUsername")

strSQL = "SELECT OrdreTabel.OrdreID, OrdreTabel.Beskrivelse, OrdreTabel.DatoForAflevering, OrdreTabel.Status, OrdreTabel.MedarbejderID, MedarbejderTabel.Fornavn FROM MedarbejderTabel INNER JOIN OrdreTabel ON MedarbejderTabel.MedarbejderID = OrdreTabel.MedarbejderID WHERE (((MedarbejderTabel.Fornavn)='+ strNavn +'));"

Jeg har forsøgt mig som beskrevet, dette virker bare ikke! jeg har testet om der overhovedet ligger noget i strNavn, det gør der, jeg kan bare ikke få min sql sætning til at finde nogle data i tabellen. Jeg ved at de ligger der.


Kommentar
Fra : MouseKeeperX


Dato : 15-11-03 11:00

Prøv at lave en
response.write strSQL
og send den her. Prøv også at fyre den af manuelt (hvilken db bruger du?)

Kommentar
Fra : lars09


Dato : 15-11-03 11:03

SELECT OrdreTabel.OrdreID, OrdreTabel.Beskrivelse, OrdreTabel.DatoForAflevering, OrdreTabel.Status, OrdreTabel.MedarbejderID, MedarbejderTabel.Fornavn FROM MedarbejderTabel INNER JOIN OrdreTabel ON MedarbejderTabel.MedarbejderID = OrdreTabel.MedarbejderID WHERE (((MedarbejderTabel.Fornavn)="+ strNavn +"));

Jeg bruger access 2000!

Kommentar
Fra : lars09


Dato : 15-11-03 11:03

Det er direkte udskrevet fra siden

Kommentar
Fra : MouseKeeperX


Dato : 15-11-03 11:04

Jeg tænkte på at du skulle skrive den ud efter at strNavn var blevet sat ind :)

Kommentar
Fra : lars09


Dato : 15-11-03 11:07

strNavn = Request.Cookies("HTMLTest")("strUsername")
Response.Write(strNavn)

SELECT OrdreTabel.OrdreID, OrdreTabel.Beskrivelse, OrdreTabel.DatoForAflevering, OrdreTabel.Status, OrdreTabel.MedarbejderID, MedarbejderTabel.Fornavn FROM MedarbejderTabel INNER JOIN OrdreTabel ON MedarbejderTabel.MedarbejderID = OrdreTabel.MedarbejderID WHERE (((MedarbejderTabel.Fornavn)=" strNavn "));

Response.Write(strSQL)

Det er hvad jeg gør


Kommentar
Fra : lars09


Dato : 15-11-03 11:09

I dette tilfælde skulle der have stået Peter hvor strNavn står i SQL sætningen...

For det sker nemlig ved Response.Write(strNavn) der kan jeg se at der står peter

Den kommer bare ikke ind i sql sætningen

Accepteret svar
Fra : MouseKeeperX

Modtaget 70 point
Dato : 15-11-03 11:09

Du skal lave linien om til

strSQL = "SELECT OrdreTabel.OrdreID, OrdreTabel.Beskrivelse, OrdreTabel.DatoForAflevering, OrdreTabel.Status, OrdreTabel.MedarbejderID, MedarbejderTabel.Fornavn FROM MedarbejderTabel INNER JOIN OrdreTabel ON MedarbejderTabel.MedarbejderID = OrdreTabel.MedarbejderID WHERE (((MedarbejderTabel.Fornavn)='"+ strNavn +"'));"

/M

Kommentar
Fra : lars09


Dato : 15-11-03 11:14

SELECT OrdreTabel.OrdreID, OrdreTabel.Beskrivelse, OrdreTabel.DatoForAflevering, OrdreTabel.Status, OrdreTabel.MedarbejderID, MedarbejderTabel.Fornavn FROM MedarbejderTabel INNER JOIN OrdreTabel ON MedarbejderTabel.MedarbejderID = OrdreTabel.MedarbejderID WHERE (((MedarbejderTabel.Fornavn)="+ strNavn +"));

Det er hvad jeg får skrevet ud på skærmen! jeg bruger sql sætningen:

strSQL = "SELECT OrdreTabel.OrdreID, OrdreTabel.Beskrivelse, OrdreTabel.DatoForAflevering, OrdreTabel.Status, OrdreTabel.MedarbejderID, MedarbejderTabel.Fornavn FROM MedarbejderTabel INNER JOIN OrdreTabel ON MedarbejderTabel.MedarbejderID = OrdreTabel.MedarbejderID WHERE (((MedarbejderTabel.Fornavn)=""+ strNavn +""));"


Kommentar
Fra : MouseKeeperX


Dato : 15-11-03 11:16

Du skal bruger "plingerne" som i min sætning ovenfor. Det er de to dobbeltplinger den er gal med (det er iøvrigt også nemt at lave fejl i)


Godkendelse af svar
Fra : lars09


Dato : 15-11-03 11:19

Mange tak for svaret! det var jo bare en torsk jeg havde lavet!! nu kan jeg komme videre!


Forresten ved du hvordan jeg får en variable fra en input box ned i cookien ???
                        

Kommentar
Fra : MouseKeeperX


Dato : 15-11-03 11:24

hvordan ser koden ud?

Kommentar
Fra : lars09


Dato : 15-11-03 11:36

<input class='text' type='text' name='username' size='15' style='font-family: Verdana; font-size: 8 pt' value="<%=strbrugernavn%>" > sådan tager jeg variablen, dette virker

Response.Cookies("HTMLTest")("strUsername") = "strbrugernavn"

strUsername = Trim(Replace(request("username"),"'","''" ))
Det er dette som jeg ikke kan få til at virke

Kommentar
Fra : lars09


Dato : 15-11-03 11:46

Forstår du hvad jeg gør! eller sidder du bare og tænker på en løsning

Kommentar
Fra : MouseKeeperX


Dato : 15-11-03 12:17

Har lige været uden netforbindelse - og skal snart ud af døren send mig evt. en mail på valle at hotmail dot com


Kommentar
Fra : MouseKeeperX


Dato : 15-11-03 12:19

hov det var "" der blev ændret :)

Kommentar
Fra : MouseKeeperX


Dato : 15-11-03 12:19

altså tre gange z

Kommentar
Fra : lars09


Dato : 15-11-03 15:30

Når har du funder ud af hvordan det fungere! ellers sender jeg lige koden.....


<!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>
<link rel='stylesheet' href="standard.css" type="text/css" />
<title>Login</title>

</head>
<body>

<%
      
SET RS = Server.CreateObject("ADODB.Connection")
rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("lager.mdb")

If Request("mode") = "Check" then

   ' Authes user, password, and fixed a known securitybug to many login systems.
      strUsername = Trim(Replace(request("username"),"'","''" ))
      strPassword = Trim(Replace(request("password"),"'","''" ))

Sql = "Select Count(*) as Found from MedarbejderTabel where (Brugernavn = '" & strUsername & "') and (Password ='" & strPassword & "')"
Set LO = RS.Execute(Sql)
if LO("Found") = 0 then
Session("login") = ""
error = "Du er ikke en godkendt medarbejder til at benytte dette system, kontakt webmasteren på Webmaster@testpilot.dk"
else
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("lager.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN
strSQL = "SELECT * FROM MedarbejderTabel where (Brugernavn = '" & Request("username") & "') and (Password ='" & Request("password") & "')"
Set ez = myConn.Execute(strSQL)
Session("login") = "Authed"
Response.Redirect "medarb.asp"
ez.Close
RS.Close
Conn.Close
End if
End if


%>
<h4>Du skal v&aelig;re medarbejder for at benytte dette</h4>
<br />
<form action="logon.asp" method="post" onsubmit="MM_validateForm('username','','R','password','','R');return document.MM_returnValue">
<font face="verdana" size="2">Username:</font>&nbsp; <input class='text' type='text' name='username' size='15' style='font-family: Verdana; font-size: 8 pt' value="<%=strbrugernavn%>" />
<br />
<font class="header"> <font face="verdana" size="2">Password:&nbsp;&nbsp;&nbsp;&nbsp;
</font><input class="text" type="password" value="<%=strpassword%>" name="password" size="15" style="font-family: Verdana; font-size: 8 pt" />
</font><br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
<p>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
<input class="text" type="submit" value="Login" name="submit" style="font-family: Verdana; font-size: 8 pt" />
<input type="hidden" name="mode" value="Check" />
<br />
<br />
<%=error%>
</p>
<%
Response.Cookies("HTMLTest")("strUsername") = "Peter"

%>

</form>

<p align="center"><img border="0" src="company.jpg" /></p>

</body>
</html>



Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407838
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste