---
title: "utan epost kan sidan ej visas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/127967-utan-epost-kan-sidan-ej-visas"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "PLks"
published: "2005-05-10T17:22:27.000Z"
updated: "2005-05-11T08:35:12.000Z"
replies: 21
views: 1040
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/127967-utan-epost-kan-sidan-ej-visas"
---

# utan epost kan sidan ej visas

_Sida 1 av 2._

## #1 — PLks, 2005-05-10T17:22Z

Hej jag har gjort en gästbok. Den funkar om eposten angivits..
Men om epost saknas så kommer en sida upp:

> Ett problem uppstod med sidan du försöker nå och den kan inte visas.

 
Skulle behöva Er hjälp med en kodsnutt som säger:

> Om eposten inte är i fylld så visa saknas.html

Permalänk: https://www.webforum.nu/p/127967

## #2 — @nders, 2005-05-10T17:27Z

```
If Request.Form("epost") = "" then response.redirect "saknas.html"
```

Det känns dock inte som rätt lösning. Jag skulle uppskatta om jag istället fick chansen att fylla i e-postadressen, inte bli ivälgskickad till något konstigt ställe.

Mvh

Permalänk: https://www.webforum.nu/p/1607908

## #3 — PLks, 2005-05-10T17:34Z

tack för ditt inlägg 

> **@nders skrev:**
>
> Det känns dock inte som rätt lösning. Jag skulle uppskatta om jag istället fick chansen att fylla i e-postadressen, inte bli ivälgskickad till något konstigt ställe

 meningen är att på sidan saknas.html  skallman få chansen att fylla i...

En fråga till:
På sidan skriv.html har skall anges

1. namn
2. epost
3. meddelande

 

```
<table width="600" border="0">
  <tr>
    <td>
      <form name="skriv" method="post" action="add.asp">
        <p><br>
          Namn:<br>
          <input type="text" name="namn" size="50">
        </p>
        <p>E-post<br>
          <input type="text" name="mail" size="50">
 </p>
        <p>Meddelande:<br>
          <textarea name="message" cols="70"></textarea>
        <p align="right">
          <input type="submit" name="skriv" value="L&auml;gg till">
        
      </form>
    </td>
  </tr>
</table>
```

 
add.asp

```
<%
Set gbok = Server.CreateObject( "Adodb.Connection" )
gbok.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\plelkes\db\guests.mdb")
gbok.ConnectionString = "Data Source='" & MdbFilePath & "'"
gbok.open

namn = Request.Form("namn")
Epost = Request.Form("mail")
Message = Request.Form("message")

strSQL = "INSERT INTO guestbook(namn, Epost, Message, Datum) VALUES('" & namn & "','" & Epost & "','" & Message & "','" & now() & "')"

gbok.Execute( strSQL )
Set gbok = Nothing

Response.Redirect "gastboken.asp"
 %>
```

 
Kan jag och i så fall hur fixar jag att på sidan saknas.html så finns namn och meddelande kvar?

Permalänk: https://www.webforum.nu/p/1607916

## #4 — @nders, 2005-05-10T17:41Z

Jag hade gjort så här:

1) Lägg formuläret på en asp-sida (samma asp-sida som koden som lägger in i databasen).
2) Kolla med en if-sats innan du lägger in informationen så allt har skickats.
3) Om inte allt har skickats, skriv ut formuläret igen, och gör utskrifter av det postade datat till value-attributen i fälten. Ex:

```
<input type="text" name="foo" value="<% = Request.Form("foo") %>">
```

mvh

Permalänk: https://www.webforum.nu/p/1607919

## #5 — PLks, 2005-05-10T17:49Z

Ursäkta @nders, menjag förstår inte riktigt

> Om inte allt har skickats, skriv ut formuläret igen, och gör utskrifter av det postade datat till value-attributen i fälten. Ex:
> kod:--------------------------------------------------------------------------------\<input type="text" name="foo" value="\<% = Request.Form("foo") %\>"\>--------------------------------------------------------------------------------

 kan du förtydliga lite?
säg att eposten saknas. Hur skulle du skriva koden?

Fråga2:
du menar att formuläret skulle flytta in till add.asp? Men då måste jag väl ändra koden

```
<form name="skriv" method="post" action="add.asp">
```

 hur då?

Permalänk: https://www.webforum.nu/p/1607924

## #6 — CatZ, 2005-05-10T18:09Z

```
<%
	Select Case cmd
	Case ""
%>
<table width="600" border="0">
  <tr>
	<td>
	  <form name="skriv" method="post" action="denna.asp?cmd=Send">
	  <p><br>
		  Namn:<br>
		  <input type="text" name="namn" size="50" value="<%= Request.Form("namn")%>"></p>
		<p>E-post<br>
		  <input type="text" name="mail" size="50" value="<%= Request.Form("mail")%>"></p>
		<p>Meddelande:<br>
		  <textarea name="message" cols="70"><%= Request.Form("message")%></textarea>
		<p align="right">
		  <input type="submit" name="skriv" value="Lägg till">		
	  </form>
	</td>
  </tr>
</table>
<%
	Case "Send"
		If Epost <> "" Then
			namn = Request.Form("namn")
			Epost = Request.Form("mail")
			Message = Request.Form("message")
			
			Response.Write "Lyckades få in: " & namn & vbCrlf _
							& Epost & vbCrlf _
							& "<p>" & Message & "</p>"
		Else
			Response.Redirect("denna.asp")
		End If
End Select
%>
```

Permalänk: https://www.webforum.nu/p/1607932

## #7 — PLks, 2005-05-11T05:28Z

Får det inte till det hela = oavsett vad jag skriver, så det enda som händer när jag trycker på "lägg till" är att sidan add1.asp visas igen - oifylld

```
<html>
<head>
<title>Skriv i g&auml;stboken</title>

</head>
<body bgcolor="#FFFFFF" text="#000000">
<%
	Select Case cmd
	Case ""
%>

<table width="600" border="0">
  <tr>
    <td>
      <form name="skriv" method="post" action="add1.asp?cmd=Send">
        <p><br>
          Namn:<br>
          <input type="text" name="namn" size="50">
        </p>
        <p>E-post<br>
          <input type="text" name="mail" size="50">
 </p>
        <p>Meddelande:<br>
          <textarea name="message" cols="70"></textarea>
        <p align="right">
          <input type="submit" name="skriv" value="L&auml;gg till">
        
      </form>
    </td>
  </tr>
</table>
<%
Set gbok = Server.CreateObject( "Adodb.Connection" )
gbok.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\plelkes\db\guests.mdb")
gbok.ConnectionString = "Data Source='" & MdbFilePath & "'"
gbok.open

namn = Request.Form("namn")
Epost = Request.Form("mail")
Message = Request.Form("message")

Case "Send"
If Request.Form("epost") <> "" Then
  strSQL = "INSERT INTO guestbook(namn, Epost, Message, Datum) VALUES('" & namn & "','" & Epost & "','" & Message & "','" & now() & "')"
  gbok.Execute( strSQL )
  Set gbok = Nothing
  Response.Redirect "gastboken.asp"

Else
  Response.Redirect "add1.asp"
End If
End Select

 %>
</body>
</html>
```

 
Det jag vill göra är:

1. om alla fälten är i fyllda -\> gå till gastboken.asp
2. om epost saknas -\> tillbaka till add1.asp + namnet ifylld + meddelandet ifylld

Permalänk: https://www.webforum.nu/p/1608033

## #8 — @nders, 2005-05-11T05:59Z

1) Kontrollera att alla fälten är ifyllda innan du lägger in i databasen.
2) Om fel, skriv ut postade värden till value-attribut och liknande i formuläret.
3) Gör bara redirect efter du stoppat in i databasen, inte om du ska visa formuläret igen, då tappar du värdena.

Något sånt här:

```
<html>
<head>
<title>Skriv i gästboken</title>

</head>
<body bgcolor="#FFFFFF" text="#000000">
<%
namn = trim(Request.Form("namn"))
Epost = trim(Request.Form("mail"))
Message = trim(Request.Form("message"))

if namn = "" or Epost = "" or Message = "" then
if request.form("skriv") <> "" then response.write "Du måste fylla i alla fält<br>"

%>

<table width="600" border="0">
  <tr>
    <td>
      <form name="skriv" method="post" action="add1.asp?cmd=Send">
        <p><br>
          Namn:<br>
          <input type="text" name="namn" size="50" value="<%=Server.htmlencode(namn)%>">
        </p>
        <p>E-post<br>
          <input type="text" name="mail" size="50" value="<%=Server.htmlencode(Epost)%>">
 </p>
        <p>Meddelande:<br>
          <textarea name="message" cols="70"><%=Server.htmlencode(Message)%></textarea>
        <p align="right">
          <input type="submit" name="skriv" value="Lägg till">
        
      </form>
    </td>
  </tr>
</table>
<%
end if

if namn <> "" and Epost <> "" and Message <> "" then
	Set gbok = Server.CreateObject( "Adodb.Connection" )
	gbok.Provider = "Microsoft.Jet.OLEDB.4.0"
	MdbFilePath = Server.MapPath("\plelkes\db\guests.mdb")
	gbok.ConnectionString = "Data Source='" & MdbFilePath & "'"
	gbok.open
	strSQL = "INSERT INTO guestbook(namn, Epost, Message, Datum) VALUES('" & namn & "','" & Epost & "','" & Message & "','" & now() & "')"
	gbok.Execute( strSQL )
	Set gbok = Nothing
	Response.Redirect "gastboken.asp"
End If

 %>
</body>
</html>
```

Permalänk: https://www.webforum.nu/p/1608036

## #9 — @nders, 2005-05-11T06:40Z

Glöm inte heller bort att skydda dig mot SQL injection på inmatade värden.

Permalänk: https://www.webforum.nu/p/1608049

## #10 — PLks, 2005-05-11T07:07Z

tack @nders för dina svar! Skall kolla så snart jag kommer hem. 
Ser redan att 
men vad är 

> Glöm inte heller bort att skydda dig mot SQL injection på inmatade värden.

 vad är

1. SQL injection
2. hur skyddar man?

Permalänk: https://www.webforum.nu/p/1608064

## #11 — MickeA.com, 2005-05-11T07:12Z

> **PLks skrev:**
>
> 1. SQL injection
> 2. hur skyddar man?

Sök lite här i Aspforumet så lär du hitta många trådar som förklarar ovanstående.

Permalänk: https://www.webforum.nu/p/1608067

## #12 — Erik Juhlin, 2005-05-11T07:20Z

> **@nders skrev:**
>
> Jag hade gjort så här:
> 
> 1) Lägg formuläret på en asp-sida (samma asp-sida som koden som lägger in i databasen).
> 2) Kolla med en if-sats innan du lägger in informationen så allt har skickats.
> 3) Om inte allt har skickats, skriv ut formuläret igen, och gör utskrifter av det postade datat till value-attributen i fälten. Ex:
>
> ```
> <input type="text" name="foo" value="<% = Request.Form("foo") %>">
> ```
>
> 
> 
> mvh

Vettigt kan ju vara att ha en Server.HTMLEncode på Request.Form("foo"). Annars flippar formuläret om man har med ett citattecken.

Permalänk: https://www.webforum.nu/p/1608070

## #13 — @nders, 2005-05-11T07:27Z

> **Erik Juhlin skrev:**
>
> Vettigt kan ju vara att ha en Server.HTMLEncode på Request.Form("foo"). Annars flippar formuläret om man har med ett citattecken.

Absolut. Därför hade jag med det i mitt senaste kodförslag. :)

Mvh

Permalänk: https://www.webforum.nu/p/1608073

## #14 — PLks, 2005-05-11T07:29Z

Tack @nders, din kod funkar klockrent! (som vanligt)
Fick ett nytt probelm:
kan ej skicka mail med nedanstående kod:

```
Response.Write "<BR><A HREF=""rsGbok('Epost')"">Skicka insändaren E-post:  </A>"
```

Permalänk: https://www.webforum.nu/p/1608076

## #15 — @nders, 2005-05-11T07:31Z

```
Response.Write "<BR><A HREF=""mailto:" & rsGbok("Epost") & """>Skicka insändaren E-post:  </A>"
```

Red. pga extrem klantig- och blindhet.

Permalänk: https://www.webforum.nu/p/1608077

## #16 — PLks, 2005-05-11T07:51Z

> Response.Write "\<BR\>\<A HREF="mailto:\<%=rsGbok('Epost')%\>"\>Skicka insändaren E-post:  \</A\>"

 verkar vara fel med koden:
sidan kan ej visas..

Permalänk: https://www.webforum.nu/p/1608087

## #17 — @nders, 2005-05-11T07:53Z

Sorry. Det ska inte vara apostrofer runt fältnamnet från recordsetet, utan citationstecken. Copy / Paste-fel från din kod...

Dessutom: Bort med egna http-felmeddelande i IE så får du vettiga felmeddelanden istället för "Sidan kan inte visas".

Det går ju inte att felsöka om du inte får reda på felmeddelandet.

Permalänk: https://www.webforum.nu/p/1608088

## #18 — PLks, 2005-05-11T08:23Z

Trots att jag har flyttat apostrofer fram och tillbaka får jag

> Microsoft VBScript compilation error '800a0409' 
> 
> Unterminated string constant 
> 
> /plelkes/gastboken.asp, line 77 
> 
> Response.Write "\<BR\>\<A HREF=""mailto:\<%=rsGbok(""Epost"")
> \---------------------------------------------------------^

Permalänk: https://www.webforum.nu/p/1608100

## #19 — @nders, 2005-05-11T08:27Z

//Red: Dumheter! :D

Se nedan istället.

Permalänk: https://www.webforum.nu/p/1608102

## #20 — @nders, 2005-05-11T08:29Z

Jag ser iofs att jag har varit alldeles för snabb på tangenterna. Krångla mindre är mitt råd till mig själv, och framför allt: skriv rätt. ;)

Nytt förslag:

```
Response.Write "<BR><A HREF=""mailto:" & rsGbok("Epost") & """>Skicka insändaren E-post:  </A>"
```

Permalänk: https://www.webforum.nu/p/1608103

---

Tråden på webben: https://www.webforum.nu/amne/asp/127967-utan-epost-kan-sidan-ej-visas  
Nästa sida: https://www.webforum.nu/amne/asp/127967-utan-epost-kan-sidan-ej-visas/page2.md
