18. januar 2004 - 22:45Der 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?
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???
<% 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
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...
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
' 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
<% 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..
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
"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"?
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
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å
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
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
<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>
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>
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"..
:)
Synes godt om
Ny brugerNybegynder
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.