---
title: "Hjälp med kodning - gästbok"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/113716-hjälp-med-kodning-gästbok"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "mariel"
published: "2004-10-17T09:19:10.000Z"
updated: "2004-10-17T15:04:12.000Z"
replies: 8
views: 721
page: 1
pages: 1
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/113716-hjälp-med-kodning-gästbok"
---

# Hjälp med kodning - gästbok

## #1 — mariel, 2004-10-17T09:19Z

Hej! Fälterna i min gästbok är:

Namn (obligatorisk)
E-mail (ej obligatorisk)
Kommentär (obligatorisk)

Om användaren inte skriver sitt e-mail, hur gör jag för att inte visa e-mail fältet och sedan "tom" (när det inte finns e-mail på databasen)?

En annan sak, hur kan jag spara datum utan att ha ett fält där man skriver datumet?

Jag använder DW Ultradev 4, Access, ASP+JScript men om det är lättare och bättre att använda VBScrip, kan jag ändra. 

Tack!!!!

PS: ursäkta om min svenska inte är tillräckligt bra.

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

## #2 — @nders, 2004-10-17T09:38Z

Hej!

Om du visar den kod du har idag så ska det nog inte bli några problem för oss att ändra den så den gör det du önskar.

Angående datumfält:
Lägg till ett fält av datumtyp i tabellen. Sedan ändrar du egenskapen "standardvärde" / "default" till Now() eller Nu() beroende på språkversion.

Mvh

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

## #3 — mariel, 2004-10-17T10:03Z

Här är koden!

DW Ultradev gör ASP-koden åt mig. Mina mjukvarorprogram är på engelska.

Databasen (Access 2k)
id - Autonumber - primary key
nombre (namn) - text - required=yes
email - text - required=no
comentario (kommentär) - memo - required=yes
fecha (datum) - date/time - required=no (för tillfället)

> @LANGUAGE="JAVASCRIPT"
> \#include file="../Connections/guestbook.asp"
> 
> // \*\*\* Edit Operations: declare variables
> 
> // set the form action variable
> var MM_editAction = Request.ServerVariables("URL");
> if (Request.QueryString) {
>   MM_editAction += "?" + Request.QueryString;
> }
> 
> // boolean to abort record edit
> var MM_abortEdit = false;
> 
> // query string to execute
> var MM_editQuery = "";
> 
> 
> // \*\*\* Insert Record: set variables
> 
> if (String(Request("MM_insert")) != "undefined") {
> 
>   var MM_editConnection = MM_guestbook_STRING;
>   var MM_editTable  = "librovis";
>   var MM_editRedirectUrl = "visamig.asp";
>   var MM_fieldsStr = "namn\|value\|email\|value\|kommentarer\|value";
>   var MM_columnsStr = "nombre\|',none,''\|email\|',none,''\|comentario\|',none,''";
> 
>   // create the MM_fields and MM_columns arrays
>   var MM_fields = MM_fieldsStr.split("\|");
>   var MM_columns = MM_columnsStr.split("\|");
>   
>   // set the form values
>   for (var i=0; i+1  MM_fields.length; i+=2) {
>     MM_fields\[i+1\] = String(Request.Form(MM_fields*));
>   }
> 
>   // append the query string to the redirect URL
>   if (MM_editRedirectUrl && Request.QueryString && Request.QueryString.length  0) {
>     MM_editRedirectUrl += ((MM_editRedirectUrl.indexOf('?') == -1)?"?":"&") + Request.QueryString;
>   }
> }
> 
> 
> // \*\*\* Insert Record: construct a sql insert statement and execute it
> 
> if (String(Request("MM_insert")) != "undefined") {
> 
>   // create the sql insert statement
>   var MM_tableValues = "", MM_dbValues = "";
>   for (var i=0; i+1  MM_fields.length; i+=2) {
>     var formVal = MM_fields\[i+1\];
>     var MM_typesArray = MM_columns\[i+1\].split(",");
>     var delim =    (MM_typesArray\[0\] != "none") ? MM_typesArray\[0\] : "";
>     var altVal =   (MM_typesArray\[1\] != "none") ? MM_typesArray\[1\] : "";
>     var emptyVal = (MM_typesArray\[2\] != "none") ? MM_typesArray\[2\] : "";
>     if (formVal == "" \|\| formVal == "undefined") {
>       formVal = emptyVal;
>     } else {
>       if (altVal != "") {
>         formVal = altVal;
>       } else if (delim == "'") { // escape quotes
>         formVal = "'" + formVal.replace(/'/g,"''") + "'";
>       } else {
>         formVal = delim + formVal + delim;
>       }
>     }
>     MM_tableValues += ((i != 0) ? "," : "") + MM_columns*;
>     MM_dbValues += ((i != 0) ? "," : "") + formVal;
>   }
>   MM_editQuery = "insert into " + MM_editTable + " (" + MM_tableValues + ") values (" + MM_dbValues + ")";
> 
>   if (!MM_abortEdit) {
>     // execute the insert
>     var MM_editCmd = Server.CreateObject('ADODB.Command');
>     MM_editCmd.ActiveConnection = MM_editConnection;
>     MM_editCmd.CommandText = MM_editQuery;
>     MM_editCmd.Execute();
>     MM_editCmd.ActiveConnection.Close();
> 
>     if (MM_editRedirectUrl) {
>       Response.Redirect(MM_editRedirectUrl);
>     }
>   }
> 
> }
> 
> var Recordset1 = Server.CreateObject("ADODB.Recordset");
> Recordset1.ActiveConnection = MM_guestbook_STRING;
> Recordset1.Source = "SELECT \* FROM librovis";
> Recordset1.CursorType = 0;
> Recordset1.CursorLocation = 2;
> Recordset1.LockType = 3;
> Recordset1.Open();
> var Recordset1_numRows = 0;
> 
>   //kod från formuläret
> 
>      \<form ACTION="=MM_editAction" name="gbook-svensk" method="POST" onsubmit="return validacion(this)"\>
>         \<table border=0 align=center\>
>           \<tr\< 
>            \<td width="98"\>\<font color=red\>\<b\>Namn:\</b\>\</font\>\</td\>
>            \<td width="314" \>
>               \<input type="text" name="namn" class="txt"\>
>            \</td\>
>           \</tr\>
>          \<tr\>
>            \< td width="98"\>\<b\>E-mail:\</b\>\</td\>
>             \<td width="314"\>
>              \<input type="text" name="email" class="txt"\>
>             \</td\>
>           \</tr\>
>           \<tr\> 
>             \<td width="98"\>\<font color=red\>\<b\>Kommentarer:\</b\>\</font\>\</td\>
>             \<td width="314"\>
>             \<textarea name="kommentarer" cols="30" rows="5" class="txta"\>\</textarea\>
>             \</td\>
>           \</tr\>
>         \</table\>
>         \<p align=center\> 
>           \<input type="submit" name="Submit" value="Skicka" class="btn" onmouseover="this.className='btn btnhov'" onmouseout="this.className='btn'"\>
>           \<input type="reset" name="Reset" value="Rensa" class="btn" onmouseover="this.className='btn btnhov'" onmouseout="this.className='btn'"\>
>         \</p\>
>         \<input type="hidden" name="MM_insert" value="true"\>
>       \</form\>
>       \<center\>\<a href="visamig.asp"Visa inlägg\</a\>\</center\>
> 
> 
> Recordset1.Close();**

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

## #4 — @nders, 2004-10-17T10:09Z

Hmm. Jag ser ingen kod för att visa upp gästboksinläggen?

Dessutom; om du använder \[kod\]-taggar istället för 

> när du skriver ditt inlägg blir koden mer lättläst. :)
> 
> (sen verkar det ha blivit något knas med alla \< och \> i inlägget, men det kanske du märkt)
> 
> mvh

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

## #5 — mariel, 2004-10-17T10:12Z

åh men förlåt! det var första gången jag "postar" koden :)

här är visamig.asp koden

```
<%@LANGUAGE="JAVASCRIPT"%> 
<!--#include file="../Connections/guestbook.asp" -->
<%
var Recordset1 = Server.CreateObject("ADODB.Recordset");
Recordset1.ActiveConnection = MM_guestbook_STRING;
Recordset1.Source = "SELECT * FROM librovis ORDER BY id DESC";
Recordset1.CursorType = 0;
Recordset1.CursorLocation = 2;
Recordset1.LockType = 3;
Recordset1.Open();
var Recordset1_numRows = 0;
%>
<%
var Repeat1__numRows = 10;
var Repeat1__index = 0;
Recordset1_numRows += Repeat1__numRows;
%>
<html>
<head>
<title>Mariels webbsida - G&auml;stbok</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<table width="90%" border="1" align=center cellpadding=3 cellspacing=0>
  <tr>
    <td width="77%" bordercolor=gray valign=top>
	 <p align=center><b>Inlägg i min gästbok</b></p> 
     <table border=0>
        <% if (!Recordset1.EOF || !Recordset1.BOF) { %>
        <% while ((Repeat1__numRows-- != 0) && (!Recordset1.EOF)) { %>
        <tr> 
          <td valign=top><b>Namn:</b></td>
          <td valign=top><%= Recordset1.Fields("nombre")%></td>
        <tr> 
          <td valign=top><b>E-mail:</b></td>
          <td valign=top><%= Recordset1.Fields("email")%></td>
        <tr> 
          <td valign=top><b>Kommentarer:</b></td>
          <td valign=top><%= Recordset1.Fields("comentario")%></td>
		</tr>
		<tr><td><hr align=center></td></tr>
          <%
           Repeat1__index++;
           Recordset1.MoveNext();
          }
          %>
        <% } // end !Recordset1.EOF || !Recordset1.BOF %>
      </table>
    </td>
  </tr>
</table>
</body>
</html>
<%
Recordset1.Close();
%>
```

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

## #6 — @nders, 2004-10-17T12:13Z

Det saknas lite i din html-tabell, lite \</tr\> och sånt, jag har lagt till det här:

```
     <table border=0>
        <% if (!Recordset1.EOF || !Recordset1.BOF) { %>
        <% while ((Repeat1__numRows-- != 0) && (!Recordset1.EOF)) { %>
        <tr> 
          <td valign=top><b>Namn:</b></td>
          <td valign=top><%= Recordset1.Fields("nombre")%></td>
        [b]</tr>[/b]
        <% if (""+Recordset1.Fields("email")!="") { %>
        <tr> 
          <td valign=top><b>E-mail:</b></td>
          <td valign=top><%= Recordset1.Fields("email")%></td>
        [b]</tr>[/b]
        <% } %>
        <tr> 
          <td valign=top><b>Kommentarer:</b></td>
          <td valign=top><%= Recordset1.Fields("comentario")%></td>
		</tr>
		<tr><td><hr align=center></td></tr>
          <%
           Repeat1__index++;
           Recordset1.MoveNext();
          }
          %>
        <% } // end !Recordset1.EOF || !Recordset1.BOF %>
      </table>
```

Jag lade till en if-sats i koden så inte email visas när det är tomt, men det var ett tag sedan jag använde jscript, så jag är inte helt säker på att det ser ut som det ska. :)

mvh

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

## #7 — mariel, 2004-10-17T13:05Z

mr. @nders: "if" funkade kanonbra!!!!!!!!!!!!!!!! tack! och tack for de missade 

```
</tr>
```

en sak till, angående kod i javascript för att kontrollera formuläret:

jag har den här koden:

```
  <script language="javascript">
   <!--
   function validacion(formulario) {
var er_nombre = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|å|ä|ö|\s|\.|-)+$/ //bokstäver, '.' y '-' eller tom 
var er_comentario = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|å|ä|ö|\!|\?|\s|\.|\,|-|[0-9\s\+\-])+$/	
      	
	//kontrollera fält namn
	if(!er_nombre.test(formulario.namn.value)) { 
		alert('Fel namn, var god ändra det')
		return false
	}   	  	

	//kontrollera fält kommentärer
	if(!er_comentario.test(formulario.kommentarer.value)) { 
		alert('Fel kommentar, var god ändra det')
		return false
	}   	

	return true			
   }
   -->
  </script>
```

hur gör jag för att "acceptera" tecken som "  ' \* mm.? jag försökte lägga till " som \\" och det funkar inte.

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

## #8 — @nders, 2004-10-17T15:02Z

Nu börjar det bli jobbigt, åtminstone för min hjärna i alla fall. ;-)

Jag föreslår att du skapar en tråd i [Javascript-forumet](http://www.webforum.nu/forumdisplay.php?s=&forumid=24) om detta problem med teckenvalideringen.

Mvh

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

## #9 — mariel, 2004-10-17T15:04Z

tack för ditt hjälp :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/113716-hjälp-med-kodning-gästbok
