Avatar billede choco Nybegynder
31. maj 2003 - 11:35 Der er 50 kommentarer og
1 løsning

HJÆÆÆÆÆLP guestebook vil ikke skrive til database

nu har jeg for sjov skyld prøvet at lave en guestebook MEEN når jeg åbner den i browseren kommer først det jeg har lavet i html, og så klikke jeg på indsend og så går den om til guest.asp men der kommer bare alt det tekst som jeg har skrivet i mit asp script

Det ser sårdan ud :

<% @language=javascript %>

<%
  sql = "insert into guest (";
  parametre = new enumerator(request.form);
  while (!parametre.atend()) {
      sql += parametre.item();
      parametre.movenext();
      if (!parametre.atend()) {
      sql += ", ";
      }
  }

sql += ") values (";

parametre = new enumerator(request.form);
while (!parametre.atend()) {
    sql += "'" + request.form(parametre.item()) +
      "'";
    parametre.movenext();
    if (!parametre.atend()) {
          sql += ", ";
    }
   
    }
    sql += ")";

    connection = server.createobject("ADODB.connection");
    connection.open("eksempel");
    connection.execute(sql);
%>

<html>
<body>

Tak, fordi du ville skrive i gæstebogen. Dine
oplysninger er nu registreret.

</body>
</html>


Hjæææælp hvorfor virker det bare ikke "kan ikke forstå det"

Håber i kan hjælpe mig, Takker på forhånd
Avatar billede mortenkjeldberg Nybegynder
31. maj 2003 - 11:41 #1
Der må da være noget mere for hvor er den der indsend knap du snakker om ?

\/Morten
Avatar billede eagleeye Praktikant
31. maj 2003 - 11:48 #2
Det kan godt være jeg spørger dumt, men er du sikker på serveren kan køre ASP kode?
Avatar billede choco Nybegynder
31. maj 2003 - 11:49 #3
Den står i mit html script, hvis du gerne vil have den så er den her

<html>
<body>
<h1>Skriv i gæstebogen</h1>
for at skrive i gæstebogen skal du indtaste følgende oplysninger:

<form action=guest.asp method=post>
<table>

<tr>
<td>Dit navn</td>
<td><input type?text name=navn size=50></td>
</tr>

<tr>
<td>Din e-mail-adresse</td>
<td><input type=text name=email size=50></td>
</tr>
<tr>
<td>overskrift</td>
<td><input type=text name=overskrift size=50></td>
</tr>

<tr>
<td valign=top>Besked</td>
<td><textarea name=tekst cols=50 rows=10></textarea></td>
</tr>

<tr>
<td colspan=2 align=center><input type=submit value="Indsend"></td>
</tr>

</table>
</form>

</body>
</html>
Avatar billede somaliomar Praktikant
31. maj 2003 - 12:00 #4
choco >> Når browseren viser selve ASP-scriptet som tekst, skyldes det at scriptet ikke bliver fortolket. For at få ASP-scriptet til at køre, skal du køre ASP-dokumentet gennem en web-server, der kan fortolke ASP. Jeg anbefaler, at du læser http://www.html.dk/tutorials/asp/lektion1.asp
Avatar billede choco Nybegynder
31. maj 2003 - 12:11 #5
Jeg har gennemgået den tutorials, man hvad mener du med at det skal fortolkes og hvordan gør man det.
Avatar billede somaliomar Praktikant
31. maj 2003 - 12:15 #6
Dit dokument skal igennem en web-server før det kan køre. Prøv at læse de første fire lektioner af http://www.html.dk/tutorials/asp/default.asp så forstår du det lidt bedre :D
Avatar billede mortenkjeldberg Nybegynder
31. maj 2003 - 12:26 #7
Hvordan ser den sti ud du prøver at åbne? Står der localhost først ?
Avatar billede choco Nybegynder
31. maj 2003 - 12:27 #8
sorry men den er jeg ikke helt med på hvad du mener
Avatar billede eagleeye Praktikant
31. maj 2003 - 12:52 #9
Hvor køre din kode? På hos en udbyder / web-hotel eller din egen server/PC?
Avatar billede choco Nybegynder
31. maj 2003 - 12:52 #10
somaliomar >> Nu har jeg gennemgået de fire første lektioner af http://www.html.dk/tutorials/asp/default.asp og hvad så nu, nu har jeg ca forstået det men jeg kan stadig ikke finde min fejl i det script der står længer oppe.
Avatar billede choco Nybegynder
31. maj 2003 - 12:54 #11
eagleeye >> Den køre på min egen comp./server.... jeg bruger xp hvis det er relavant at vide.
Avatar billede mortenkjeldberg Nybegynder
31. maj 2003 - 12:56 #12
Når du åbner siden i browseren hvilken adresse skriver du så ?
Avatar billede eagleeye Praktikant
31. maj 2003 - 12:57 #13
Prøv at rette den første linje til dette:
<%@ language=jscript %>
Avatar billede choco Nybegynder
31. maj 2003 - 13:56 #14
mortenkjeldberg >> http://192.168.1.6/guest.html dette er hvad jeg skriver i mit adresse felt og så der fra skal den gå over til guest.asp når man klikker på indsend.
Avatar billede choco Nybegynder
31. maj 2003 - 14:04 #15
??? Nu går det da helt i kage... Hvis jeg skriver http://192.168.1.6/guest.html og trykker på indsend får jeg bare denne fejl

Fejltype:
Der opstod en Microsoft JScript-kørselsfejl (0x800A1391)
'enumerator' er ikke defineret
/guest.asp, line 5


Men hvis jeg skriver C:\Inetpub\wwwroot\guest.html

og trykker på indsend så kommer der bare alt det tekst som jeg har skrivet i mit asp scirpt.
Avatar billede eagleeye Praktikant
31. maj 2003 - 14:10 #16
ARh prøv skrve, hvis guest.html ligger i wwwroot som den vist gør:

http://localhost/guest.html
Avatar billede eagleeye Praktikant
31. maj 2003 - 14:11 #17
For hvis du skriver  C:\Inetpub\wwwroot\guest.html  så det ikke din web-serson som køre filen så det browseren som lister filen.
Avatar billede choco Nybegynder
31. maj 2003 - 14:25 #18
ja men nu er jeg kommet så langt til nogen lunde at finde ud af hvad der er galt men nu får jeg denne fejl

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] INSERT INTO-sætningen indeholder det ukendte feltnavn "email". Kontroller, at du har skrevet navnet korrekt, og forsøg derefter at udføre handlingen igen.
/guest.asp, line 32

Men kan ikke finde ud af hvad fejlen er... Jeg har prøvet at ændre email til post inde i min database.
Avatar billede choco Nybegynder
31. maj 2003 - 14:27 #19
line 32 ser sårdan her ud : connection.execute(sql);
Avatar billede eagleeye Praktikant
31. maj 2003 - 14:33 #20
Prøv at udskrive din SQL så kan det tit være lettere at se om der er fejl i den.
Så i stedet for :

connection.execute(sql);

Så udskriv den:

Response.Write (sql);
Response.End();
//connection.execute(sql);
Avatar billede eagleeye Praktikant
31. maj 2003 - 14:34 #21
Fejlen siger ukendte feltnavn "email". Så det betyde den ikke kan finde en kolonne som hedder email
Avatar billede choco Nybegynder
31. maj 2003 - 14:42 #22
eagleeye >> sårdan nu virker det fame... men ved du hvordan man kan hente fra en database (lave en knap) så man kan læse hvad der står i gæstebogen....
Hvis du ikke ved det skal du i vert fald ligge et svar.

Tak for hjælpen
Avatar billede eagleeye Praktikant
31. maj 2003 - 14:49 #23
Via en knap??

Du kan lave en SQL som hendter ud fra databasen.


SQL = "SELECT * FROM guest";
Set rs = connection.execute(sql);

Response.Write ("<table>");
while (!rs.EOF) {
  // udskriver her
  Response.Write ("<tr>");
  Response.Write ("<td>"+rs("besked")+"</td>");
  Response.Write ("<td>"+rs("navn")+"</td>");

  Response.Write ("</tr>");

  rs.Movenext();
}
Response.Write ("</table>");
%>

Var de sådan noget du tænkte på?
Avatar billede choco Nybegynder
31. maj 2003 - 14:53 #24
Spørgsmål afsluttet...
Avatar billede choco Nybegynder
31. maj 2003 - 14:54 #25
Skal det lavet i et nyt asp script.
Avatar billede eagleeye Praktikant
31. maj 2003 - 14:59 #26
Det skal være i en fil som hedder .asp
Og du kan evt ligge det øverst i den fil hvor formen er så udskriver du føsrt indholdet af gæstebogen og så nederst på siden man man skrive et indlæg.

Det kan også være i en ny fil for sig selv og så så har du et link til den side hvor man skriver et nyt indlæg.
Avatar billede eagleeye Praktikant
31. maj 2003 - 15:02 #27
Det er sådan set op til hvordan man selv ønsker det skal se ud. Hele koden kan ogsåp ligges i en fil også skal man holde styr på hvilken del bliver kørt evt med en querystring.

Så når man gå ind på siden (questbook.asp) vise indholdet og så trykker man på et link questbook.asp?mode=opret  vises input formen så man kan skrive et nyt indlæg.
Avatar billede choco Nybegynder
31. maj 2003 - 15:08 #28
Jeg håber ikke du er ved at være trat af mig for så må du love mig at sige til.

Men nu gør den det samme som den anden gjor viser hele scriptet i browseren.
Avatar billede eagleeye Praktikant
31. maj 2003 - 15:09 #29
Enten fordi filen hedder .html og ikke .asp
Eller fordi browseren ikke står til http://localhost/finavn.asp
Avatar billede choco Nybegynder
31. maj 2003 - 15:16 #30
sorry men er ikke helt med på det med localhost... men filen står som .asp i det script som kommer når jeg har skrævet i min gæstebog...
Avatar billede eagleeye Praktikant
31. maj 2003 - 15:21 #31
Er koden inde i <% ASP kode %> ??
Avatar billede choco Nybegynder
31. maj 2003 - 15:47 #32
Ja nu er den men der kommer en fejl i den line... og hvis jeg så ikke ligger koden ind i <html></html> så viser dan stadig bare teksten i scirptet.
Avatar billede eagleeye Praktikant
31. maj 2003 - 15:49 #33
Men koden skal rettes til så det passer med dine kolonnnenavne samt conenction til databasen.

<%
connection = server.createobject("ADODB.connection");
rs = server.createobject("ADODB.recordset");
connection.open("eksempel");

SQL = "SELECT * FROM guest";
Set rs = connection.execute(sql);

Response.Write ("<table>");
while (!rs.EOF) {
  // udskriver her
  Response.Write ("<tr>");
  Response.Write ("<td>"+rs("besked")+"</td>");
  Response.Write ("<td>"+rs("navn")+"</td>");

  Response.Write ("</tr>");

  rs.Movenext();
}
Response.Write ("</table>");
%>
Avatar billede choco Nybegynder
31. maj 2003 - 15:59 #34
den bliver ved med at sige at der er fejl i

rs = server.createObject("ADODB.Recordset");

og hvad betyder rs og hvad bruger man det til
Avatar billede eagleeye Praktikant
31. maj 2003 - 20:24 #35
Jeg var nød til at smutte sidst. Der skal være Set foran:

Set rs = server.createObject("ADODB.Recordset");
Avatar billede choco Nybegynder
31. maj 2003 - 21:18 #36
det er fame noget lort det her nu får jeg fejl i

connection = server.createObject("ADODB.connection");
Avatar billede somaliomar Praktikant
31. maj 2003 - 21:19 #37
Prøv lige at paste hele koden herinde.
Avatar billede eagleeye Praktikant
31. maj 2003 - 21:20 #38
Set skal være det samme Set foran :)
Avatar billede choco Nybegynder
31. maj 2003 - 21:21 #39
<%
connection = server.createObject("ADODB.connection");
Set rs = server.createObject("ADODB.Recordset");
connection.open("eksempel");

SQL = "SELECT * FROM guest";
Set rs = connection.execute(sql);

Response.Write ("<table>");
while (!rs.EOF) {
  // udskriver her
  Response.Write ("<tr>");
  Response.Write ("<td>"+rs("besked")+"</td>");
  Response.Write ("<td>"+rs("navn")+"</td>");

  Response.Write ("</tr>");

  rs.Movenext();
}
Response.Write ("</table>");
%>
Avatar billede eagleeye Praktikant
31. maj 2003 - 21:23 #40
Det skal være

Set connection = server.createObject("ADODB.connection");
Avatar billede choco Nybegynder
31. maj 2003 - 21:23 #41
den er jeg ikke lige helt med på.
Avatar billede eagleeye Praktikant
31. maj 2003 - 21:24 #42
Første linje i koden du har vist
Avatar billede choco Nybegynder
31. maj 2003 - 21:28 #43
Den kommer stadig med fejl i

Set connection = server.createObject("ADODB.connection");

sårdan lyder fejlen

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0401)
Slut på sætning var ventet
/laes.asp, line 3, column 56
Set connection = server.createObject("ADODB.connection");
Avatar billede eagleeye Praktikant
31. maj 2003 - 21:31 #44
Det skal være lige som i din anden fil som indsætter, det er connection til databasen.
Avatar billede eagleeye Praktikant
31. maj 2003 - 21:32 #45
Det skal være såda her:


<%
connection = Server.CreateObject("ADODB.Connection");
Set rs = Server.CreateObject("ADODB.Recordset");
connection.open("eksempel");

SQL = "SELECT * FROM guest";
Set rs = connection.execute(sql);

Response.Write ("<table>");
while (!rs.EOF) {
  // udskriver her
  Response.Write ("<tr>");
  Response.Write ("<td>"+rs("besked")+"</td>");
  Response.Write ("<td>"+rs("navn")+"</td>");

  Response.Write ("</tr>");

  rs.Movenext();
}
Response.Write ("</table>");
%>
Avatar billede choco Nybegynder
31. maj 2003 - 21:36 #46
Nu ved jeg ikke hvordan du tjekker om det er sårdan det ser ud eller det bare er noget du ved for den kommer stadig med fejl i

connection = Server.CreateObject("ADODB.Connection");

Jeg ved ikke om der er noget andet jeg skal gøre for at det virker at det slet ikke ligger i scriptet.
Avatar billede eagleeye Praktikant
31. maj 2003 - 21:38 #47
Når det er javascript du koder i skal du havde denne linje med øverst i filen:

<%@ language=javascript %>
Avatar billede choco Nybegynder
31. maj 2003 - 21:43 #48
sorry det er den jeg har overset... så da jeg lige fik sat den ind og fik slettet get de steder du havde sat dem ind og fået rattet et bokstav til stort så virket det.... men det kommer jo bare ud i en køre kan man ikke sætte det op så det står pænt....
Avatar billede eagleeye Praktikant
31. maj 2003 - 21:48 #49
Jo det er HTML koden du skal havde rodet lidt med, i øjeblikket bliver det bare vist i en tabel. Eks kan du sætte <center> omkring så tabellen er i midten og ændre størrelsen på td'erne


Response.Write ("<center><table width=75%>");
while (!rs.EOF) {
  // udskriver her
  Response.Write ("<tr>");
  Response.Write ("<td width=30%>"+rs("besked")+"</td>");
  Response.Write ("<td width=70%>"+rs("navn")+"</td>");

  Response.Write ("</tr>");

  rs.Movenext();
}
Response.Write ("</table></center>");
Avatar billede choco Nybegynder
31. maj 2003 - 22:13 #50
tjaaa... dette scripe giver mig også fejl.
Avatar billede eagleeye Praktikant
31. maj 2003 - 22:20 #51
Sådan her så:

Response.Write ("<center><table width=\"75%\">");
while (!rs.EOF) {
  // udskriver her
  Response.Write ("<tr>");
  Response.Write ("<td width=\"30%\">"+rs("besked")+"</td>");
  Response.Write ("<td width=\"70%\">"+rs("navn")+"</td>");

  Response.Write ("</tr>");

  rs.Movenext();
}
Response.Write ("</table></center>");
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester