webForumDet fria alternativet

*förtvivlad*

ASP

6 svar · 141 visningar · startad av nakoz

Medlem sedan dec. 1999653 inlägg
Frågan#1

okej... få den att funka och optimera tack... har slitit allt mitt hår i förtvivlan:

<%@ Language = VBScript %>
<% Option Explicit %>
<% Response.Buffer = "True" %>
<% Session.lcid = 1053 %>

<% Dim strDSN, cn, rs, SQL, Alt1, Alt2, Total, Proc1, Proc2, cInt, esskuell, uppdatera, WTF %>

<!-- #include file="top1.asp" -->

<html>
<head>
<title> .oblivion - main </title>

<link type="text/css" rel="stylesheet" href="../oblivion.css">

</head>
<body background="../img/bg.gif" topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0">

<% 
'Session.Abandon
SQL = "SELECT TOP 1 * FROM poll ORDER BY pID DESC"
Set rs = cn.Execute(SQL) 

If Session("vote") = "yes" Then 
Response.Redirect "poll.asp?voteyeah="& rs("pID") &"" %>
You have already voted!
<br><br>
<a href="poll.asp?results=<%= rs("pID") %>">View Results</a>

<% ElseIf Request.Querystring("svar") <> "" Then

SQL = "SELECT TOP 1 * FROM poll WHERE pID = "& Trim(Request.Querystring("tillfraga")) &" ORDER BY pID DESC"
Set rs = cn.Execute(SQL) 

If Request.Querystring("svar") = rs("pAlt1") Then
Alt1 = rs("pAlt1Roster")+1
uppdatera = "UPDATE poll SET pAlt1roster = "& Alt1 &" WHERE pID = "& Trim(Request.Querystring("tillfraga")) &""
ElseIf Request.Querystring("svar") = rs("pAlt2") Then
Alt2 = rs("pAlt2Roster")+1
uppdatera = "UPDATE poll SET pAlt2roster = "& Alt2 &" WHERE pID = "& Trim(Request.Querystring("tillfraga")) &""
End If
Set rs = cn.Execute(uppdatera)

SQL = "SELECT TOP 1 * FROM poll ORDER BY pID DESC"
Set rs = cn.Execute(SQL) 

Response.Redirect "poll.asp?voteyeah="& rs("pID") &""

ElseIf Request.Querystring("voteyeah") <> "" Then 

Session("vote") = "yes"

esskuell = "SELECT TOP 1 * FROM poll WHERE pID = "& Trim(Request.Querystring("voteyeah")) &" ORDER BY pID DESC"
Set rs = cn.Execute(esskuell) 

Total = rs("pAlt1Roster") + rs("pAlt2Roster")
Proc1 = Round((rs("pAlt1Roster") / Total) * 100, 0)
Proc2 = 100 - Proc1 %>

<%= rs("pFraga") %><br><br>
<% If rs("pAlt1Roster") > rs("pAlt2Roster") Then %>
<%= rs("pAlt1") %> - <b><%= Proc1 %>%</b> <i>(<%= rs("pAlt1Roster") %> votes)</i><br>
<%= rs("pAlt2") %> - <b><%= Proc2 %>%</b> <i>(<%= rs("pAlt2Roster") %> votes)</i><br>
<% Else %>
<%= rs("pAlt2") %> - <b><%= Proc2 %>%</b> <i>(<%= rs("pAlt2Roster") %> votes)</i><br>
<%= rs("pAlt1") %> - <b><%= Proc1 %>%</b> <i>(<%= rs("pAlt1Roster") %> votes)</i><br>
<% End If %>
<br>
Totalt antal röster: <b><%= Total %></b>

<% ElseIf Request.Querystring("results") <> "" Then 
WTF = "SELECT * FROM poll WHERE pID = "& Trim(Request.Querystring("results")) &" ORDER BY pID DESC"
Set rs = cn.Execute(WTF) 

Total = rs("pAlt1Roster") + rs("pAlt2Roster")
Proc1 = Round((rs("pAlt1Roster") / Total) * 100, 0)
Proc2 = 100 - Proc1 %>

<%= rs("pFraga") %><br><br>
<% If rs("pAlt1Roster") > rs("pAlt2Roster") Then %>
<%= rs("pAlt1") %> - <b><%= Proc1 %>%</b> <i>(<%= rs("pAlt1Roster") %> votes)</i><br>
<%= rs("pAlt2") %> - <b><%= Proc2 %>%</b> <i>(<%= rs("pAlt2Roster") %> votes)</i><br>
<% Else %>
<%= rs("pAlt2") %> - <b><%= Proc2 %>%</b> <i>(<%= rs("pAlt2Roster") %> votes)</i><br>
<%= rs("pAlt1") %> - <b><%= Proc1 %>%</b> <i>(<%= rs("pAlt1Roster") %> votes)</i><br>
<% End If %>
<br>
Totalt antal röster: <b><%= Total %></b>

<% Else 
WTF = "SELECT TOP 1 * FROM poll ORDER BY pID DESC"
Set rs = cn.Execute(WTF) %>

<p align="justify"><%= rs("pFraga") %></p>
<center><a href="poll.asp?svar=<%= rs("pAlt1") %>&tillfraga=<%= rs("pID") %>"><%= rs("pAlt1") %></a> &#0124;
<a href="poll.asp?svar=<%= rs("pAlt2") %>&tillfraga=<%= rs("pID") %>"><%= rs("pAlt2") %></a><br>
<br>
<a href="poll.asp?results=<%= rs("pID") %>">View results</a></center><br>
<img src="../img/line.gif" height="1" width="98%" border="0">
 
<% End If %>

</body>
</html>

nu står den bara å tuggar om jag trycker på nåt... de funkar om jag har med session.abandon överst.... hjälp tack...

MVH

------------------
nakoz :)

Medlem sedan juli 20003 825 inlägg
#2

Har ej läst hela koden...

Men efter första SQL satsen längst upp har du en IF-sats, IF session("vote") = "yes" THEN... sen slutar asp koden fast du har ingen END IF. Men om du använder session.abandon kommer koden aldrig dit, så det är inte så konstigt att den delen fungerar.

Sen undrar jag hur du har tänkt dig ha en response.redirect tagg om man har röstat och sen skriva "you have already voted"!? Har man röstat förflyttas man ju till en annan sida och då ser man ju inte den texten iallafall!

Are you with!? Or am I lost!?

Medlem sedan juli 20003 825 inlägg
#3

En annan grej är att du blandar html och asp på ett rätt dumt sätt.

Du skriver

Namn:<%=rs("namn")%><BR>

Byt till:
<%
myText = "Namn: " & rs("namn") & "<BR>" & vbCRLF

response.write myText
%>

Hajar du!? Du dunkar in all kod i en variabel och det sista du gör på sidan är att skriva ut den variabeln. Gör du så har du opimerat din sida järnet! Med ditt tillvägagångssätt uppfattas till och med SQL Server 7 som seg.

---

Dessutom kan du med fördel använda namnet "SQL" vid samtliga SQL satser på din sidan. Ovan har du SQL, esskuell och WTF. Det sista kan jag bara tyda som what the fuck...

Oavsett vilket kan du med fördel skriva SQL på de platserna. Det har ingen som helst skillnad rent prestandamässigt men man bör nog eftersträva kontinuitet i koden om så är möjligt.

Hope you get the point!

Medlem sedan dec. 1999653 inlägg
#4

okej... tror jag fixat till så att koden ser lite bättre ut nu... men fortfarande... när Session("vote") = "yes" så står burken bara å tuggar då man reloadar pollen, istället för att den hoppar till resultatet... varför?

<%@ Language = VBScript %>
<% Option Explicit %>
<% Response.Buffer = "True" %>
<% Session.lcid = 1053 %>

<% Dim strDSN, cn, rs, SQL, Alt1, Alt2, Total, Proc1, Proc2 %>

<!-- #include file="top1.asp" -->

<html>
<head>
<title> .oblivion - main </title>

<link type="text/css" rel="stylesheet" href="../oblivion.css">

</head>
<body background="../img/bg.gif" topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0">

<%
' Om personen har röstat så ska den skickas vidare till resultatet direkt!
' ------------------------------------------------------------------------
If Session("vote") = "yes" Then 
SQL = "SELECT TOP 1 * FROM poll ORDER BY pID DESC"
Set rs = cn.Execute(SQL) 
Response.Redirect "poll.asp?voteyeah="& rs("pID") &""

' Då personen svarar på frågan så skickas den hit och vidarebefodras till resultaten!
' -----------------------------------------------------------------------------------
ElseIf Request.Querystring("svar") <> "" Then

If Request.Querystring("svar") = rs("pAlt1") Then
Alt1 = rs("pAlt1Roster")+1
SQL = "UPDATE poll SET pAlt1roster = "& Alt1 &" WHERE pID = "& Trim(Request.Querystring("tillfraga")) &""
ElseIf Request.Querystring("svar") = rs("pAlt2") Then
Alt2 = rs("pAlt2Roster")+1
SQL = "UPDATE poll SET pAlt2roster = "& Alt2 &" WHERE pID = "& Trim(Request.Querystring("tillfraga")) &""
End If
Set rs = cn.Execute(SQL)

SQL = "SELECT * FROM poll WHERE pID = "& Trim(Request.Querystring("tillfraga")) &" ORDER BY pID DESC"
Set rs = cn.Execute(SQL) 

Session("vote") = "yes"

Response.Redirect "poll.asp?voteyeah="& rs("pID") &""

' Nedan redovisas resultaten!
' ---------------------------
ElseIf Request.Querystring("voteyeah") <> "" Then 

SQL = "SELECT TOP 1 * FROM poll WHERE pID = "& Trim(Request.Querystring("voteyeah")) &" ORDER BY pID DESC"
Set rs = cn.Execute(SQL) 

Total = rs("pAlt1Roster") + rs("pAlt2Roster")
Proc1 = Round((rs("pAlt1Roster") / Total) * 100, 0)
Proc2 = 100 - Proc1 

Dim wFraga, wResAlt1, wResAlt2, wTotal

wFraga = ""& rs("pFraga") &"<br><br>" & vbCRLF
wResAlt1 = ""& rs("pAlt1") &" - <b>"& Proc1 &"</b> <i>("& rs("pAlt1Roster") &" votes)</i><br>" & vbCRLF
wResAlt2 = ""& rs("pAlt2") &" - <b>"& Proc2 &"</b> <i>("& rs("pAlt2Roster") &" votes)</i><br>" & vbCRLF
wTotal = "<br>Total numer of votes: <b>"& Total &"</b>"

Response.Write wFraga

If rs("pAlt2Roster") > rs("pAlt1Roster") Then 
	Response.Write wResAlt2 
	Response.Write wResAlt1 
Else 
	Response.Write wResAlt1
	Response.Write wResAlt2 
End If 
	
Response.Write wTotal 

' Delen där själva frågan ställs
' ------------------------------
Else 
SQL = "SELECT TOP 1 * FROM poll ORDER BY pID DESC"
Set rs = cn.Execute(SQL) %>

<p align="justify"><%= rs("pFraga") %></p>
<center><a href="poll.asp?svar=<%= rs("pAlt1") %>&tillfraga=<%= rs("pID") %>"><%= rs("pAlt1") %></a> &#0124;
<a href="poll.asp?svar=<%= rs("pAlt2") %>&tillfraga=<%= rs("pID") %>"><%= rs("pAlt2") %></a><br>
<br>
<a href="poll.asp?voteyeah=<%= rs("pID") %>">View results</a></center><br>
<img src="../img/line.gif" height="1" width="98%" border="0">
 
<% End If %>

</body>
</html>

Snälla hjälp mig!

MVH

------------------
nakoz :)

[Redigerat av nakoz den 25 jan 2001]

Medlem sedan aug. 20003 575 inlägg
#5

<% Option Explicit %>
varför skriver du detta?

Medlem sedan dec. 1999653 inlägg
#6

för att då måste alla variabler deklareras med Dim..

kolla här...

<%@Language = VBScript %>
<% variabel = 3 %>
<html>
<body>
<% Respons.Write(variable) %>

nu är namnet på variabeln felstavat nederst... vilket alltså inte skulle generera någon kod, och inte heller något felmeddelande.... har vi däremot:

<%@Language = VBScript %>
<% Option.Explicit %>
<% Dim variabel
variabel = 3 %>
<html>
<body>
<% Respons.Write(variable) %>

då får vi ett felmeddelande att inte variabeln med namnet "variable" finns.

anyway... jag behöver fortfarande hjälp med min poll... snälla nån?!

MVH

------------------
nakoz :)

Medlem sedan dec. 19998 577 inlägg
#7

Du säger att scriptet stannar vid -->Session("vote") = "yes"<<--

Vad händer om du tar bort den raden då?

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)