webForumDet fria alternativet

Sidan gäller inte längre

ASP

20 svar · 550 visningar · startad av zlakker

Medlem sedan apr. 2001227 inlägg
Frågan#1

Sökte på detta problem med att texten " Sidan gäller inte längre" kommer upp när man går bakåt i webbläsaren efter att ha blivit skickad via en länk.
Lösningen på detta var följande:

<%
Response.Expires=0
Response.ExpiresAbsolute = Now() -2
Response.AddHeader "pragma", "no-cache"
Response.AddHeader "cache-control", "private"
Response.CacheControl = "no-cache"
%>

Min fråga är bara var man ska skriva det? Ska det stå på varje sida eller hur gör man?

Medlem sedan apr. 20003 174 inlägg
#2

Lägg det högst upp i koden på de sidor som du inte vill att webbläsaren ska spara i cachen.

Medlem sedan apr. 2001227 inlägg
#3

Men alltså..Ska den spara eller inte?
För om jag lägger det på den sida som jag vill att man ska komma tillbaka till så får jag fortfarande samma fel.
Klickar man på uppdatera där så går sidan igång igen.

Medlem sedan apr. 20003 174 inlägg
#4

Koden gör så att sidan inte sparas i cachen.
Meddelandet Sidan gäller inte längre kommer fram då man ex. trampar in på en sida dit ett formulär har postats.
Och då sidan inte sparats i cachen så måste den uppdateras för att hämtas igen.

Summa sumarum:
• Lägg koden på de sidor som du inte vill att webbläsaren ska spara i cachen.
• Vill du kunna visa sidan, lägg inte in koden + ändra cache inställningarna i din webbläsare.

Medlem sedan apr. 2001227 inlägg
#5

Så betyder det att om jag med andra ord vill cacha den så måste varje använda ställa in det i sin webbläsare?

Finns det inte något liknande som gör att den alltid cashar istället?

Medlem sedan juni 200032 967 inlägg
#6

Du kan ju alltid laborera lite med Expires och ExpiresAbsolute.
Meddelandet kommer väl på en sida som det skickas formulär till, antar jag. Vad är det för formulär? Kan du tänka dig att använda metoden GET istället? Vad visar sidan?

Medlem sedan apr. 2001227 inlägg
#7

Hej
Sidan ser ut som följande.

En dropdown finns längst upp på sidan. Väljer man något i den så listas ett antal kontakter upp beroende på vad man valt.

Därefter klickar man på en kontakt för att visa mer information om den och man kommer till en sida som visar just det.

Problemet här är alltså att jag vill kunna gå tillbaka till föregående sida samtidigt som den visar det val som gjordes.

Som det ser ut nu så kan jag endast gå tillbaka till sidan innan man gjort valet i dropdownlistan.

Jag vill alltså att sidan ska komma ihåg vad jag valde.

Medlem sedan juni 200032 967 inlägg
#8

Det är alltså ett formulär med metoden POST du använder? Om jag var du skulle jag använde metoden GET och request.querystring istället för det här. Då skulle du slippa "Sidan gäller inte längre", och sidan skulle bara läsas om.

(Du får alltså meddelandet eftersom browsern inte automatiskt postar om det som finns i Form collection. Använder du GET är form collection tom, eftersom allt skickas via url:en i vanliga querystrings.)

Medlem sedan apr. 2001227 inlägg
#9

Är det någon skillnad på koden då eller kan man bara byta post mot get ?

Medlem sedan juni 200032 967 inlägg
#10

Byt POST mot GET och använd Request.Querystring för att hämta värdena, istället för Request.Form.

Medlem sedan apr. 2001227 inlägg
#11

Tjenare.
Koden ser ut såhär:
Jag ändra på POST till GET och ändrade request.form i sql-satsen men sidan blev bara blank då.
Något jag missat så ifall?

Så här ser koden ut från början:


<% Visa = "SELECT * FROM tblCountry"
		   	RecSet.Open Visa, Connect, 3, 3 %>
			
			<form name="country"  method="POST" action="public_contact.asp?alt=select&link=contact">
			<table border="0" cellspacing="0" celpadding="6">
			<tr>
				<td alignt="left" width="110"><font class="input_rubrik"><%=strSelect%></font></td>
				<td alignt="left">
				<select name="country">
					
				<%	Do While Not RecSet.EOF %>
				<option value="<%=RecSet("countryswe")%>"><%=RecSet("countryswe")%></option>
								
				<%	RecSet.MoveNext
					Loop %>
				</select>
				</td>
				<td><input type="submit" value="<%=strShow%>" style="font-size: 7pt; font-family: verdana, arial"></td>
				<td></td>
			</tr>
			</table></form>
			
			<%	RecSet.Close %>
			</td>
		</tr>
		</table>
		
		 
		<% Visa = "SELECT * FROM tblContact WHERE country = '" & request.form("country") & "'" & " ORDER BY contactname "
		   RecSet.Open Visa, Connect, 3, 3 %>
		
			<table border="0" cellpadding="4" cellspacing="2">
		
			<tr>
			<td bgcolor="#E6E9E6" width="250"><font size="1" face="verdana, arial"><b><%=strName%></b></font></td>
			<td bgcolor="#E6E9E6" width="100"><font size="1" face="verdana, arial"><b><%=strCity%></b></font></td>
			<td bgcolor="#E6E9E6" width="140"><font size="1" face="verdana, arial"><b><%=strPhone%></b></font></td>
			<td bgcolor="#E6E9E6" width="110" align="center"><font size="1" face="verdana, arial"><b><%=strInfo%></b></font></td>
			</tr>
		
		<%	Do While Not RecSet.EOF %>
		
			<tr BGCOLOR="#F3F3F3" onMouseOver="this.style.backgroundColor='#D0D0D0';" onMouseOut="this.style.backgroundColor='';">
			<td><font size="1" face="verdana, arial"><% =RecSet("contactname") %></font></td>
			<td><font size="1" face="verdana, arial"><% =RecSet("city") %></font></td>
			<td><font size="1" face="verdana, arial"><% =RecSet("phone") %></font></td>
			<td align="center"><font size="1" face="verdana, arial"><a href="public_contact.asp?id=<% =RecSet("id") %>&alt=more&link=contact"><%=strMore%></a></font></td>
			</tr>
			
		<%	RecSet.MoveNext
			Loop %>
			</table>
		<%	RecSet.Close
			End If %>
Medlem sedan juni 200032 967 inlägg
#12

Hmm...

I den koden har du metoden POST och Request.Form i koden?
Blir det verkligen inte rätt om du kör GET och Request.Querystring?

Medlem sedan apr. 2001227 inlägg
#13

Alltså såhär såg koden ut från början innan jag ändrade. När jag ändrade så fungerade det inte.

Såhär ser det ut när jag ändrat. Kan det vara något fel där jag hämtar in från formuläret eftersom det inte är fel i koden utan det blir bara tomt. I adressfältet står landets namn med som jag ska använda men det hämtas inte in.

Blir det heller inte något fel eftersom jag använder action="public_contact.asp?alt=select&link=contact" för att komma till rätt ställe på sidan. Nu när jag använder dropdownen så står det bara public_contact.asp?country=sverige.
Har det andra försvunnit?

		<%	If Request.QueryString("alt") = "select" Then %>
		
		<table width="598" border="0,5" cellpadding="0" cellspacing="0" bordercolor="#000000" bordercolorlight="#000000" bordercolordark="#000000" class="input_table">
		<tr>
			<td>
			
			<% Visa = "SELECT * FROM tblCountry"
		   	RecSet.Open Visa, Connect, 3, 3 %>
			
			<form name="country"  method="GET" action="public_contact.asp?alt=select&link=contact">
			<table border="0" cellspacing="0" celpadding="6">
			<tr>
				<td alignt="left" width="110"><font class="input_rubrik"><%=strSelect%></font></td>
				<td alignt="left">
				<select name="country">
					
				<%	Do While Not RecSet.EOF %>
				<option value="<%=RecSet("countryswe")%>"><%=RecSet("countryswe")%></option>
								
				<%	RecSet.MoveNext
					Loop %>
				</select>
				</td>
				<td><input type="submit" value="<%=strShow%>" style="font-size: 7pt; font-family: verdana, arial"></td>
				<td></td>
			</tr>
			</table></form>
			
			<%	RecSet.Close %>
			</td>
		</tr>
		</table>
		
		 
		<% Visa = "SELECT * FROM tblContact WHERE country = '" & Request.Querystring("country") & "'" & " ORDER BY contactname "
		   RecSet.Open Visa, Connect, 3, 3 %>
Medlem sedan juni 200032 967 inlägg
#14

Ah. Ja, du kan inte ha querystrings i action om du använder GET. Du får lägga in variablerna som hiddenfält i formuläret istället. :-)

Edit: jag såg nu att det trilskats in en felskrivning i din table-tagg. Du har tappat bort ett l i cellpadding.

Medlem sedan apr. 2001227 inlägg
#15

Tack för att du såg felstavningen :)

Jag måste på något sätt få denna att stämma för att sidan ska laddas rätt.

<%	If Request.QueryString("alt") = "select" Then %>

och så måste även link=contact.

Om jag gör två hiddenfält som heter hidden1 och hidden två med värdena select och contact, hur gör jag då för att det ska fungera?

Eller jag kanske måste bygga om hela strukturen på sidan.
Nu som sagt så skickas jag mellan de olika funktionerna med hjälp av olika texter i adressen.

Medlem sedan juni 200032 967 inlägg
#16

Om du vill flytta detta:

?alt=select&link=contact

till hiddenfält, så gör du bara så här:

<input type="hidden" name="alt" value="select">
<input type="hidden" name="link" value="contact">

Mvh

Medlem sedan apr. 2001227 inlägg
#17

Alltså jag vet inte vad jag ska säga. Man blir så glad när det fungerar! Tack åter igen!

Medlem sedan juni 200032 967 inlägg
#18

Varsågod. :)

Det är roligt när hjälpen tas emot och leder någonstans. (y)

Medlem sedan apr. 2001227 inlägg
#19

Tack. Man skulle bara vilja hjälpa till lite mer själv. Men det kommer väl när man lär sig lite mer. Webforum är verkligen en grym informationskälla!

Medlem sedan juni 200032 967 inlägg
#20

Webforum är verkligen en grym informationskälla!

Verkligen! Och med snart en miljon inlägg finns det väldigt mycket sökbar kunskap. :)

279 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
145 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)