13. juni 2002 - 10:33Der er
64 kommentarer og 3 løsninger
gider ikke at oprette stemme boks :D:);):o)
ja den gider simpelt hen ikke... i kan se problemet på www.friserverplads.dk/zob/stem/login.asp login med admin admin og så gå ind og opret en afstemnings boks, der kommer en fejl som i nok godt kan se. jeg har følgende filer: stemreg.asp - Den fil, der registrer stemmen (cookies = 7 dage) stemreg2.asp - Den fil, der registrer stemmen (cookies = uendelighed) index.asp - Den fil, hvor stemmerne er login.asp - Login filen admin.asp - Hele admin systemet slet.asp - Der hvor slet funktionen finder sted stem.mdb - Der hvor alle beskederne ligger stem.inc - Selve Source filen så jeg skal vise admin.asp ikke ? jeg lægger det ud som en txt fil på min side hvis jeg skal det... det fylder for meget her ;)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
1. Du tillader ikke nullængde på alle felter, altså alle felter skal udfyldes 2. Du har en datatype fejl i feltet stem (+ måske flere). Eks. er den nummerisk i databasen og du indsætter tekst eller omvendt. Eller du har et tekstfelt, men glemmer ' (pinger) omkring i dit SQL eller omvendt har du pinger og feltet er nummerisk.
I den tabel hvod du lagrer dine afstemninger, har du en række felter til de forskellige muligheder; valg1-7. Hvis man ikke udfylder alle, får man fejlen "error in row". Dette indikerer, at du ikke tillader nogle af disse at være tomme. Dette rettes i design view på tabellen i Access, hvor du på det enkelte felt kan vælge at tillade nullængde eller ej.
Udfylder man alle felter, får man fejlen "type mismatch: 'stem'". Dette indikerer at feltet enten er nummerisk og at du forsøger at indsætte en tekst værdi med ' (pinger) omkring i dit insert statement (eller .AddNew). Eller at feltet er nummerisk og at du ikke har ' omkring værdien fra din form.
Ved ikke om det har noget at sige, men jeg synes du skal fjerne et mellemrum her: strSQL = "SELECT * FROM T_Vote WHERE (ID = 0)" Så det bliver: strSQL = "SELECT * FROM T_Vote WHERE (ID = 0)"
Hvis du vil have den til at udskrive stem() til browseren, skal du erstatte:
<% Stem()%>
med:
<% = "Stem()" %>
Er det meningen at stem() skal kaldes som en funktion, der udskriver noget andet til browseren, skal du enten have includet den fil funktionen ligger i, eller have lavet funktionen på denne side.
<% Response.Buffer = True %> <% 'Her bliver der undersøgt om session("Adgang") er sat til Godkendt, er den ikke det bliver man sendt tilbage til adgangskontrol.asp med en fejlmeddelelse If Not Session("Adgang") = "Godkendt" Then Response.Redirect("login.asp?mode=forbudt") End If %> <html> <head> <title>Stem -> Admin</title> <META NAME="Generator" CONTENT="Stone's WebWriter 3.5"></head> <body> <% mode=request("mode") if mode="vis" then %>
<% ' Connection til database Set Con = Server.CreateObject("ADODB.Connection") DBPath = "DBQ=" & server.mappath("stem.mdb") Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
' Her hiver vi indholdet af databasen ud sql = "SELECT * From T_Vote Where Id = " & Request.Querystring("id") Set rs = Con.Execute(Sql) %> <table align="center" bgcolor="#206090" width="510" cellspacing="1" cellpadding="2"> <tr> <td bgcolor="#206090" width="510"> <center> <strong>Vis information om<BR></strong> <% =RS("Beskrivelse")%> </center> </td> </tr> </table> <BR> <CENTER> <TABLE BORDER="1" WIDTH="400"> <TR><TD>ID: <%=rs("ID")%></TD> <TD HEIGHT="25"><CENTER><B><% =RS("Beskrivelse")%></B></CENTER></TD> </TR> <TR> <TD WIDTH="75">Valg 1:</TD> <TD WIDTH="325"><%=rs("valg1")%></TD> </TR> <TR> <TD>Valg 2:</TD> <TD><%=rs("valg2")%></TD> </TR>
<% ' Connection til database Set Con = Server.CreateObject("ADODB.Connection") DBPath = "DBQ=" & server.mappath("stem.mdb") Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
' Her hiver vi indholdet af databasen ud sql = "SELECT * From T_Vote ORDER BY Id DESC" Set rs = Con.Execute(Sql) %> <% Do While Not rs.EOF %> <CENTER><table border="0" BGCOLOR="#206090" cellspacing="0" cellpadding="0" class="ContentStyle" width="500"> <tr><td><a href="admin.asp?mode=vis&id=<%=rs("id")%>">Vis Infomation</a></td><td align="right"><%=rs("beskrivelse")%> - <a href="admin.asp?mode=ret&id=<%=rs("id")%>">Rediger</a> / <a href="slet.asp?id=<%=rs("id")%>">Slet</a> </td></td></table></CENTER> <BR> <% rs.MoveNext Loop %> <br> <center> <a href="admin.asp?mode=logud">Log ud</a> </center> <% End if %> </body> </html>
det samme som til at starte med... altså den loader til en forkert side du kunne jo eventuelt selv prøve svært at forklare... www.emil.vonbuchwal.dk/stem/login.asp
Jamen jeg har kun set koden til din admin, derfor regnede jeg med at det var den du mente. Det link du henviser kan jeg umuligt sige hvordan fungerer, men det virker ikke med eks. ?id?32?mode=vis (el. stem).
For at rette i tabellen, åbner du din database i Access, går ind under tables, markerer T_Vote og klikker på Design.
Derefter finder du de enkelte felter og i property boksen nederst på siden, sætter du required (evt. påkrævet på dansk) til No/Nej
Derefter finder du de enkelte felter og i property boksen nederst på siden, sætter du required (evt. påkrævet på dansk) til No/Nej den forstår jeg ikke helt... kan du uddybe ?
De felter du vil have skal udfyldes, sættes til Yes, valgfri felter sættes til No. Hvis du eks. vil have at der skal være min. 3 valgmuligheder pr. afstemning, sætter du valg 1, 2 og 3 til Yes, mens resten sættes til No.
Det ser dog ud som om det virker nu, jeg har i hvert kunnet oprette en afstemning.
Jo, stem.inc er jo kun lavet til 5 muligheder, så 6 + 7 må være noget du selv har lavet ? Prøv med denne:
<link rel="stylesheet" type="text/css" href="../style.css"> <% ' -------------------------------------------------------------- ' Function Stem(id) - id = id i stem.mdb ' -------------------------------------------------------------- function stem(id)
Sql = "Select * from T_Vote where Id = " & id Set Record = RsVote.Execute(Sql) If Not Record.EOF then If (Len(Request.Cookies("stem")(CSTR(id)))) then Dim Valg(8) valg(1) = Record("valg1") valg(2) = Record("valg2") valg(3) = Record("valg3") valg(4) = Record("valg4") valg(5) = Record("valg5") valg(6) = Record("valg6") valg(7) = Record("valg7") Response.Write "<table border='1' WIDTH=300 bordercolor='#000000'><tr><TD COLSPAN='3'><B><CENTER>" response.write font & Record("Beskrivelse") & "</center></B></TD></TR>"
Sql = "Select count(*) as Found from T_VoteResult where VoteId = " & id Set Record = RsVote.Execute(Sql) Ialt = Record("found") Response.Write "<tr>"
For i = 1 to 7 If valg(i) <> "" then Sql = "Select count(*) as Found from T_VoteResult where VoteId = " & id & " and vote = '" & Valg(i) & "'" Set Record = RsVote.Execute(Sql) Procent = 100/Ialt * Record("Found") response.write "<td>" & font & Valg(i) & "</td><td>" & font & Round(procent) & "%</td><td><hr STYLE='height: 5pt;' width='" & Procent * faktor & "' align='left' color='" & barcolor & "'></td></tr>" end if Next strSQL = "SELECT COUNT(ID) AS Antal FROM T_Voteresult WHERE voteid = " & id & "" Set rs2 = RsVote.Execute(strSQL)
Response.Write "</table>" else session("retur") = Request.ServerVariables("SCRIPT_NAME") %> <html> <head> <META NAME="Generator" CONTENT="Stone's WebWriter 3.5"> <title>Stem</title> </head> <body> <TABLE BORDER="1" WIDTH="300" bordercolor="#000000"> <TR> <TD> <CENTER><B> <% response.write font & Record("Beskrivelse") %></B></CENTER> <form method='POST' action='stemreg.asp'> <input type='hidden' name='Voteid' value='<%= Id %>'> <% tmp_valg = Record("valg1") If tmp_valg <> "" then %> <input type='radio' value='<%= tmp_valg %>' name='R1'> <%= tmp_valg %><br> <% end if tmp_valg = Record("valg2") If tmp_valg <> "" then %> <input type='radio' value='<%= tmp_valg %>' name='R1'> <%= tmp_valg %><br> <% end if tmp_valg = Record("valg3") If tmp_valg <> "" then %> <input type='radio' value='<%= tmp_valg %>' name='R1'> <%= tmp_valg %><br> <% end if tmp_valg = Record("valg4") If tmp_valg <> "" then %> <input type='radio' value='<%= tmp_valg %>' name='R1'> <%= tmp_valg %><br> <% end if tmp_valg = Record("valg5") If tmp_valg <> "" then %> <input type='radio' value='<%= tmp_valg %>' name='R1'> <%= tmp_valg %><br> <% end if %>
<% tmp_valg = Record("valg6") If tmp_valg <> "" then %> <input type='radio' value='<%= tmp_valg %>' name='R1'> <%= tmp_valg %><br> <% end if tmp_valg = Record("valg7") If tmp_valg <> "" then %> <input type='radio' value='<%= tmp_valg %>' name='R1'> <%= tmp_valg %><br> <% end if %>
<CENTER><p> <input type='submit' value='Stem' class="buttom50" name='B1'> <input type='reset' value='Slet' class="buttom50" name='B2'></p> </CENTER> </TD></TR></TABLE> </form> </body> </html> <% end if else response.write font & "Id findes ikke" end if end function %>
Nu ved jeg ikke hvad i har lavet over over ICQ eller MSN (Det må man faktisk ikke på E, med det er en anden sag), men jeg tror nu at følgende skal vises i browseren:
Stemmeboksen er nu oprettet. Du kan indsætte boksen hvor du vil, skriv blot følgende kode: <% Response.write "Stem(" & rs("id") & ")"
rs.Close Set rs = Nothing
%>
Men det bliver det ikke fordi den tolker det som asp kode, så det skal se sådan ud:
<p> Stemmeboksen er nu oprettet. Du kan indsætte boksen hvor du vil, skriv blot følgende kode:<br> <%<br> Response.write "Stem(" & rs("id") & ")"<br> <br> rs.Close<br> Set rs = Nothing<br> %> </p>
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.