Avatar billede mentoz Nybegynder
18. januar 2004 - 22:45 Der er 43 kommentarer og
1 løsning

Fra server Variabel til Almindelig tekst

hejsa jeg har nu fået lavet et system så man kan oprette asp filer, men jeg kan ikke få fx strNavn til at gå over i den asp fil jeg opretter som almindelig tekst, der står bare stadig strNavn og det kan jeg jo ike buge til noget, er der nogen der ved hvordan man gør det?
Avatar billede erikjacobsen Ekspert
18. januar 2004 - 22:46 #1
Måske
  strNavn="Peter"

  response.write "Hej med dig " & strNavn & ", og velkommen til."
Avatar billede mentoz Nybegynder
18. januar 2004 - 22:55 #2
nej ikke når den skal igennem en database så laver den ikke navnet om, jeg ved godt at den ikke gør det hvis man glemmer " " rundt om sin tekst, men i en database kan jeg ikke få det til at virke???
Avatar billede thesurfer Nybegynder
18. januar 2004 - 22:58 #3
Er det din sql streng der ikke gider? Jeg forstår faktisk ikke hvad du mener..
Giv et eksempel.
Avatar billede mentoz Nybegynder
18. januar 2004 - 23:01 #4
<%
strUser = Rs("Username")
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/mdb/count.mdb")
Conn.Open DSN
Sql = "SELECT * from count order by point"
Set rs = Conn.Execute(SQL)
Randomize
RandomNumber = Int(Rnd * strId) + 1
Sql = "Select * from count where username <> '" & stUser & "' And id = " & RandomNumber
Set rs = Conn.Execute(SQL)
if rs.EOF or rs.BOF Then
Response.Redirect "Mentoz.asp"
End if
%>


Sql = "Select * from count where username <> '" & stUser & "' And id = " & RandomNumber
Her i strUser går det galt
Avatar billede mentoz Nybegynder
18. januar 2004 - 23:03 #5
der skal den skrive navnet på brugeren ikke som nu hvor den prøver at hente informationerne ud fra brugerens information
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:04 #6
Du kan ikke ha' strUser = Rs("Username") før Set rs = Conn.Execute(SQL)
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:06 #7
Hvis du vil hente brugernavnet via en form, med et tekst med navnet "Username":

strUser = request.form("Username")
...
Avatar billede mentoz Nybegynder
18. januar 2004 - 23:08 #8
hvor kommer form nu ind i billet fra? og nej du kan stadig ikke, fordi en database connection er skruet sammen sådan at den tar alle session, QueryStrings, Forms og struser som en variable faktor og ikke en fast tekst...
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:09 #9
hvis det er via urlen (f.eks: side.asp?username=peter), så bruger du:
strUser = request.querystring("username")

Men man plejer at bruge forme til brugernavne/kodeord..
Plus at det altid er en god ide at erstatte "'" tegnet med ingenting:

strUser = replace(request.form("username"), "'", "")
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:11 #10
ahh... det er fordi du ikke bruger Option Explicit som den første linie i din asp fil :)

Så havde du nemlig fundet ud af at der mangler et "r" i "strUser":
... username <> '" & stUser & "' ...

:)
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:12 #11
Hvis du bruge Option Explicit som den første linie, SKAL du definere ALLE dine variabler.

Dvs: dim strUser, Sql, rs, osv..

Hvis du så skriver stUser (uden "r"), vil den melde fejl, fordi den ikke ved hvad "stUser" er..
Avatar billede mentoz Nybegynder
18. januar 2004 - 23:12 #12
Username er i databasen iforvejen og det er heller ikke det er pointen, jeg skal bare have strUser til at opføre sig so en fast tekst så

Sql = "Select * from count where username <> '" & stUser & "'"

er det samme som fx

Sql = "Select * from count where username <> 'Navn'"
Avatar billede mentoz Nybegynder
18. januar 2004 - 23:17 #13
nej det ikke fordi jeg mangler det der Option Explicit, fordi det jeg skrev var bare en omformulering fordi jeg havde prøvet at ændre i mit script, så jeg lavede en tryk fejl, sorry
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:20 #14
hmm.. prøv lige det her:

' din kode her... indtil:
' Sql = "Select * from count where username <> '" & stUser & "' And id = " & RandomNumber
response.write "Select * from count where username <> '" & stUser & "' And id = " & RandomNumber
response.end
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:22 #15
For hurtigt på Send-knappen..

1) Hvad skriver den så?
2) Hvis den rigtige asp kode (den du har tænkt dig at bruge), men skjul stien til database, kodeord, osv med f.eks. "xxxxx".
Avatar billede mentoz Nybegynder
18. januar 2004 - 23:24 #16
nej det er det sammen når jeg redigere filen...
Avatar billede mentoz Nybegynder
18. januar 2004 - 23:28 #17
Sql = "Select * from count where username <> 'xxxxx'"
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:32 #18
Er det her den kode, du har tænkt dig at bruge?:

<%
strUser = Rs("Username")
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/mdb/count.mdb")
Conn.Open DSN
Sql = "SELECT * from count order by point"
Set rs = Conn.Execute(SQL)
Randomize
RandomNumber = Int(Rnd * strId) + 1
Sql = "Select * from count where username <> '" & stUser & "' And id = " & RandomNumber
Set rs = Conn.Execute(SQL)
if rs.EOF or rs.BOF Then
Response.Redirect "Mentoz.asp"
End if
%>

Hvis ikke, smid lige den rigtige kode her ind..
Det jeg mente med "xxxxx" var, så man ikke kunne se stien til din database, og evt password..

Jeg ville gerne vide om der kom til at stå noget i: username <> ''

Hvordan ser din form ud?

Et eller andet sted går det forkert.. og jo mere vi skal gætte os til, jo længere tid tager det..
Avatar billede mentoz Nybegynder
18. januar 2004 - 23:37 #19
der er jo ingen fejl for god sake, det eneste jeg vil er at have strUser til at udskrive en værdi i steddet for at virke som en variable tekst, som afhængere af brugeren, den skal bare konvetere fra strUser til en fast værdi, som ikke kan ændres efter den er gemt, jeg kan dog lige sige at jeg laver et banner system, og vil lave en ny side via asp, igennem browseren, og så skal strUser være en fast værdi på brugeren, så det bliver hans personlige side... så man undgår at ens banner bliver vist på ens egen side
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:40 #20
"det eneste jeg vil er at have strUser til at udskrive en værdi i steddet for at virke som en variable tekst, som afhængere af brugeren, den skal bare konvetere fra strUser til en fast værdi"

Se, det forstår jeg ikke hvad du mener med..
Eksempel:
str = "Peter"
response.write "hej " & strPeter" = "hej Peter"
response.write "hej strUser" = "hej strUser"

Hvad er det så du vil? Hvad er en "fast værdi" og hvad er "variable tekst"?
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:41 #21
stavefejl.. strPeter skulle ha' været strUser..
Avatar billede eagleeye Praktikant
18. januar 2004 - 23:41 #22
Så vidt jeg forstår det så prøv at rette:

if rs.EOF or rs.BOF Then
Response.Redirect "Mentoz.asp"
End if

Til:

if rs.EOF or rs.BOF Then
Response.Redirect stUser & ".asp"
End if
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:44 #23
Burde det så ikke være:

if rs.EOF or rs.BOF then
  ' brugernavn er ikke fundet
  Response.Redirect "Mentoz.asp"
else
  'brugernavn er fundet
  Response.Redirect strUser & ".asp"
end if

?
Avatar billede eagleeye Praktikant
18. januar 2004 - 23:44 #24
Eller hvis det skal være bruger navnet som lige er fundet med din SQL fra databasen så skal det være:

if rs.EOF or rs.BOF Then
Response.Redirect rs("username") & ".asp"
End if
Avatar billede mentoz Nybegynder
18. januar 2004 - 23:45 #25
ja det er en fast værdi, men den går bare ikke igennem en sql sætning fordi sql sætningen opfatter strUser som en værdi der kan blive ændret på afhængig af hvilken bruger der logget på, fx hvis man ser info om brugeren, så derfor hvis du bare bliver ved med at bruger STR koder, vil den først blive til en fast værdi når den læses af browseren, og det er det jeg vil undgå
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:45 #26
hmm.. jeg tænkte på: "... where username = '" & stUser & "' And..."
Avatar billede mentoz Nybegynder
18. januar 2004 - 23:48 #27
det er bare mig der har lavet en trykfejl og glemt r'et men det virker heller ikke hvis jeg er har r'et med, og der er stadig ikke nogen fejl, sådan fungere asp bare, jeg prøver bare at komme udenom
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:50 #28
Jeg forstår stadig ikke den med "fast værdi".. :)

eagleeye> Prøv lige at se om du kan forklare, hvad det er mentoz vil ha' :)
Avatar billede eagleeye Praktikant
18. januar 2004 - 23:50 #29
Så tror jeg ikke jeg forstår dit spørgsmål.
Du kan gemme en værdi i session obejcet sådan du kan bruge det på alle dine sider, er det sådan noget så??

where username = '" & session("strUser") & "'

og så på din login gemmer du username i session:
session("strUser") = rs("username")
Avatar billede eagleeye Praktikant
18. januar 2004 - 23:53 #30
thesurfer>> Det kan jeg vist ikke afligevel ;)
Avatar billede mentoz Nybegynder
18. januar 2004 - 23:53 #31
nej jeg kan ikke bruge session eller STR eller QueryString til noget i dette tilfælde, jeg har lavet en side som uploader en side på serveren, og den side skal bruges til et banner bytte system, og så vil jeg have siden til at have en fast username, ellers kan jeg ikke få det til at fungere....og str og session bliver jo først til en fast værdi nu de udskrives i browseren og der er det forsent
Avatar billede thesurfer Nybegynder
18. januar 2004 - 23:56 #32
Den eneste måde, hvorpå du kan få en fast værdi, ind i din sql streng, er:

Sql = "Select * from count where username <> 'Fast_Vaerdi' And id = " & RandomNumber

- Hvis det ikke er det du vil, så har jeg stadig ikke fattet det.. :)
Avatar billede mentoz Nybegynder
18. januar 2004 - 23:57 #33
Her er siden som laver en side:
<html>

<head>

<meta http-equiv="Content-Language" content="da">


</head>

<body>
<%
Dim strUser
' DatabaseForbindelse
  Set Conn = Server.CreateObject("ADODB.Connection")
  DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/mdb/count.mdb")
Conn.Open DSN
Sql = "SELECT * from count Where Username = 'Mentoz'"
Set rs = Conn.Execute(SQL)
strUser = rs("username")

Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("z_" & strUser & ".asp")
Set f = fso.CreateTextFile(filespec,8)
f.Close
filespec = Server.Mappath("z_" & strUser & ".asp")
Set f = fso.OpenTextFile(filespec,2)






' Skriv tekst i en linie
f.WriteLine "<Html>"
f.WriteLine "<head>"
f.WriteLine "<" & "%"
f.WriteLine "Set Conn = Server.CreateObject(""ADODB.Connection"")"
f.WriteLine "DSN = ""Driver={Microsoft Access Driver (*.mdb)}; DBQ="" & Server.MapPath (""/mdb/count.mdb"")"
f.WriteLine "Conn.Open DSN"
f.WriteLine "Sql = ""SELECT * from count order by point"""
f.WriteLine "Set rs = Conn.Execute(SQL)"
f.WriteLine "Randomize"
f.WriteLine "RandomNumber = Int(Rnd * strId) + 1"
f.WriteLine "Sql = ""Select * from count where username <> '"" & strUser & ""'  And id = "" & RandomNumber"
f.WriteLine "response.write ""Select * from count where username <> '"" & strUser & ""' And id = "" & RandomNumber"
f.WriteLine "response.end"
f.WriteLine "Set rs = Conn.Execute(SQL)"
f.WriteLine "if rs.EOF or rs.BOF Then"
f.WriteLine "Response.Redirect """ & strUser & ".asp"""
f.WriteLine "End if"
f.WriteLine "%" & ">" & ""
f.WriteLine "</head>"
f.WriteLine "<body>"
f.WriteLine "<a target=""_blank"" href=""show.asp?id=<" & "%" & "=rs(""id"")" & "%" & ">""><img border=""0"" src=""<" & "%" & "=rs(""banner"")" & "%" & ">"" width=""460"" height=""60""></a><br>"
f.WriteLine

' Åbn filen til læsning og læs linie
Set f = fso.OpenTextFile(filespec,1)
Do While not f.AtEndOfStream
  Response.write f.ReadLine & "<br>"
Loop

f.Close
%>

</body>

</html>
&nbsp;

og her er en fil den har lavet:
<Html>
<head>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/mdb/count.mdb")
Conn.Open DSN
Sql = "SELECT * from count order by point"
Set rs = Conn.Execute(SQL)
Randomize
RandomNumber = Int(Rnd * strId) + 1
Sql = "Select * from count where username <> '" & strUser & "'  And id = " & RandomNumber
response.write "Select * from count where username <> '" & strUser & "' And id = " & RandomNumber
response.end
Set rs = Conn.Execute(SQL)
if rs.EOF or rs.BOF Then
Response.Redirect "Mentoz.asp"
End if
%>
</head>
<body>
<a target="_blank" href="show.asp?id=<%=rs("id")%>"><img border="0" src="<%=rs("banner")%>" width="460" height="60"></a><br>
Avatar billede mentoz Nybegynder
18. januar 2004 - 23:58 #34
Serfer:
Den eneste måde, hvorpå du kan få en fast værdi, ind i din sql streng, er:

Sql = "Select * from count where username <> 'Fast_Vaerdi' And id = " & RandomNumber

- Hvis det ikke er det du vil, så har jeg stadig ikke fattet det

:::Det er præcis det jeg vil, der må da være en måde at gøre det på::::
Avatar billede thesurfer Nybegynder
19. januar 2004 - 00:02 #35
Har du prøvet:

f.WriteLine "Sql = ""Select * from count where username <> '" & strUser & "'  And id = "" & RandomNumber"

Jeg har fjernet 1 stk " fra hver side af strUser.
Avatar billede mentoz Nybegynder
19. januar 2004 - 00:07 #36
hej nu virker det, tak.....
Avatar billede mentoz Nybegynder
19. januar 2004 - 00:07 #37
kom med et svar Surfer
Avatar billede mentoz Nybegynder
19. januar 2004 - 00:08 #38
nej du har bare lavet filen ulovlig
PIS
Avatar billede thesurfer Nybegynder
19. januar 2004 - 00:09 #39
Et svar gives.. :)
Der kan du bare se.. hvis du havde vist os koden for ca ½ time siden... ;-)
Avatar billede thesurfer Nybegynder
19. januar 2004 - 00:09 #40
doh!.. hvad mener du?
Avatar billede mentoz Nybegynder
19. januar 2004 - 00:13 #41
nå det var bare min iis der flippede
Avatar billede thesurfer Nybegynder
19. januar 2004 - 00:17 #42
Takke for points.

kan du egentlige ikke bare bruge request.servervariable("script_name") ?
f.eks.:

f.WriteLine "dim tmp"
f.WriteLine "tmp = Left(request.servervariable(""script_name""), inStr(request.servervariable(""script_name""), ""."")"
f.WriteLine "Sql = ""Select * from count where username <> '"" & tmp & ""'  And id = "" & RandomNumber"


Eller noget i den stil.. erstat request.servervariable("script_name") med noget der kan fange navnet på selve filen..
Avatar billede thesurfer Nybegynder
19. januar 2004 - 00:18 #43
.. det skal nok fjernes 1 stk " på hver side af tmp..
Avatar billede thesurfer Nybegynder
19. januar 2004 - 00:21 #44
Jeg kan ikke lige huske hvad outputtet fra request.servervariable("script_name")..
Det er sikkert /mappenavn/filnavn.asp.. hvis det, skal det lige splittes med Split(request.servervariable("script_name"), "/") også..
Så kan du få fat på "filnavn.asp", derefter med Left, få fat på "filnavn"..

:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester