Just nu i M3-nätverket
Gå till innehåll

Behöver hjälp med gästboken!


teamelin

Rekommendera Poster

Jag har suttit och pysslat lite med gästboken man kan få från IDG. Men jag har fått problem, när jag ska ändra sökvägarna till databasen och inc-filen.

 

Vi tar inc-filen först, är det fel att skriva så här?

<!-- #include virtual="http://server.com/namn/adovbs.inc" -->

 

istället för så här??

 

<!-- #include virtual="applications/adovbs.inc" -->

 

 

 

Och databasen, ska man inte bara byta ut c:\inetpub\wwwroot\applications\gastbok\data\gaster.mdb mot http://??.com/teamelin/data/gaster.mdb??

 

<% If Request.QueryString("open") = "yes" Then %>

 

<% Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\applications\gastbok\data\gaster.mdb"

 

Set RecSet = Server.CreateObject("ADODB.Recordset") %>

 

<% End If %>

Länk till kommentar
Dela på andra webbplatser

testa detta ...

 

<!-- #include file="adovbs.inc" -->

 

Sök vägen till databasen måste vara exakt, om du skall lägga den på en server så får du först ta reda på sökvägen på servern (server.mappath) och sedan bygga på ifrån den.

 

t.ex. f:\www\sivert\gastbok\data\gaster.mdb

 

 

 

Don't Underestimate The Power Of Esuk ...

Länk till kommentar
Dela på andra webbplatser

Ok det där ligger på brinkster. Jag vet inte vad för sökvägar dom har. men du måste ha dom rikgtiga sökvägarna.

 

<!-- #include file="adovbs.inc" -->

detta ska funka om filen ligger i samma mapp...

 

men databasen måste du ha den exakta sökvägen

 

c:\inetpub\wwwroot\teamelin\db\gaster.mdb

 

detta är nog inte rätt. vet inte.

har aldrig använt brinkster men sökvägarna borde stå någonstans på brinkster

 

Länk till kommentar
Dela på andra webbplatser

Du kan inte sätta include med http eller likn i början då den bara kan köra filer på servern.

 

Annars så kan du ladda upp en testfil som du bara skriver

response.write Server.mappath("\") i.

Då får du upp vad de har för sökväg.

 

Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&server.mappath("\")&"\teamelin\db\gaster.mdb"

 

Om inte det funkar så testa med att ta bort temaelin och en slash.

 

Annars brukar det vara lättare och smidigare i början att använda file istället för virtual.

Virtual räknar www-rooten som ursrunget i sökvägen medan file utgår från mappen du arbetar i.

Så under den tiden då man inte arbetar så mycket mer än i en eller två mappar så rekommenderas file i stället.

 

MVH // Cyppe

 

Länk till kommentar
Dela på andra webbplatser

Hur ska jag skriva för att använda file istället för virtual?

 

Så här har jag ändrat sökvägarna:

 

 

<!-- #include virtual="adovbs.inc" -->

 

 

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\teamelin\db\gaster.mdb")

 

 

 

Detta fungerade inte. Kan inte ens öppna default.asp, utan det står "sidan kan inte visas" HTTP 500 - Internt serverfel.

Vad gör jag nu??

 

Länk till kommentar
Dela på andra webbplatser

Bara för att kolla så blev jag medlem på stället och koden du skriver stämmer.

Gäller dock inte includen.

Skriv bara file istället för virtual så ska det stämma på den i alla fall.

 

Dock så skriver hotellet antagligen ut 500-internt serverfel på alla fel.

Det betyder att det är mycket möjligt att något är fel med koden.

 

Testa med att dta bort all ASP-kod och lägg sedan till bit för bit.

Då ser du i alla fall när det blir fel.

 

 

MVH // Cyppe

 

Länk till kommentar
Dela på andra webbplatser

Nu kan man se gästboken på adressen: http://www22.brinkster.com/teamelin

 

Men när man ska skriva i gästboken och när man ska titta i gästboken så är det nått fel i koden ändå!

 

 

När man har skrivit i gästboken kommer detta felmeddelande:

 

ADODB.Recordset error '800a0bb9'

 

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

 

/teamelin/default.asp, line 134

 

 

Koden här nere är från linje 131-147:

 

<% If Request.QueryString("add") = "yes" Then %>

 

<% Addera = "SELECT * FROM gaster"

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

 

RecSet.AddNew

RecSet("text") = Request.Form("text")

RecSet("av") = Request.Form("av")

RecSet("mail") = Request.Form("mail")

RecSet("hemsida") = Request.Form("hemsida")

RecSet.Update

 

RecSet.Close

 

Response.Redirect "default.asp" %>

 

<% End If %>

 

 

Och att titta i gästboken fungerar inte heller, då kommer detta felmeddelande:

 

ADODB.Recordset error '800a0bb9'

 

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

 

/teamelin/default.asp, line 159

 

 

Koden här nere är från linje 157-165:

 

<% Texter = "SELECT * FROM gaster ORDER BY ID"

 

RecSet.Open Texter, Connect, adOpenStatic, adLockOptimistic

 

Do While Z < 100

 

If RecSet.EOF Then

Exit Do

End If %>

 

 

Som du säkert märkte så börjar båda fel raderna med "RecSet.Open", och då är det väl nått fel när den öppnar eller ska hämta något, är det fel av mig??

Men hur ska jag skriva isf?

 

Länk till kommentar
Dela på andra webbplatser

 

Det enklaste sättet att skriva en loop på är genom att skriva en vanlig SQL-sats med execute.

Förvånande så använder för få den metoden. Sriv så här i stället.

 

<%
Set RS = Connect.execute("SELECT * FROM gaster ORDER BY ID DESC")
' Om du skriver desc som oven så hamnar 
' det sista inlägget överst.
i = 0
do until RS.EOF OR i > 100

response.write RS("inlagg_eller_vad_det_heter")

if RS.EOF then
exit do

i = i -- 1
RS.MoveNext
Loop
%>

 

MVH // Cyppe

 

 

[inlägget ändrat 2001-07-07 15:07:01 av Cyprys]

Länk till kommentar
Dela på andra webbplatser

Öhh.. lite väl avancerat för mig?? Så här ser default.asp ut just nu:

 

<!-- #include file="adovbs.inc" -->

<html>

 

<title>teaMelin.has.it</title>

 

<script language="JavaScript">

<!--

 

function kontrollera() {

 

if (document.skriv.text.value == "")

{

alert("Du måste skriva något!")

return false

}

 

 

if (document.skriv.av.value == "")

{

alert("Du har ej angett ditt namn!")

return false

}

 

 

if (document.skriv.mail.value == "" ||

document.skriv.mail.value.indexOf('@', 0) == -1)

{

alert("Ogiltig E-post adress!"); return false;

}

 

}

// -->

</SCRIPT>

 

<STYLE TYPE="text/css">

<!--

A:link {color: 0000FF; text-decoration: none;}

A:visited {color: 0000FF; text-decoration: none;}

A:hover {color: 0000FF; text-decoration: underline;}

A:visited:hover {color: 0000FF; text-decoration: underline;}

A:active {color: 0000FF; text-decoration: none;}

body { font-family: Verdana; font-size: 8pt; color: #000000; }

body { cursor: default; background: #008000; }

table { background: #BDD600; }

font { font-family: Verdana; font-size: 7pt; color: #000000; }

td { font-family: Verdana; font-size: 8pt; background: #BDD600; }

-->

</STYLE>

 

</head>

<body>

 

<html>

<body>

 

<table border="0" cellspacing="10" cellpadding="10" align="left">

<br>

meny

</table>

 

</body>

</html>

 

</td></tr>

</table>

<center><br>

<img src="http://w1.241.telia.com/~u24103970/grafik/gastbokbig.gif" width="400" height="20"></center><br>

<table align="center" width="400">

<tr><td width="400">

 

<% '===================================================================================================================== %>

<% ' Välkomstkod %>

<% '===================================================================================================================== %>

 

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

 

Vad vill du göra?<p>

 

<ul>

<li><a href="default.asp?what=skriv">Skriva i gästboken.</a>

<li><a href="default.asp?what=tidigare&open=yes">Se tidigare inlägg i gästboken.</a>

</ul>

 

<% End If %>

 

<% '===================================================================================================================== %>

<% 'Öppnar databasen %>

<% '===================================================================================================================== %>

 

<% If Request.QueryString("open") = "yes" Then %>

 

<% Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\teamelin\db\gaster.mdb")

 

Set RecSet = Server.CreateObject("ADODB.Recordset") %>

 

<% End If %>

 

<% '===================================================================================================================== %>

<% ' Formulärskod för att göra inlägg %>

<% '===================================================================================================================== %>

 

<% If Request.QueryString("what") = "skriv" Then %>

 

<form method="POST" name="skriv" onSubmit="return kontrollera()" action="default.asp?open=yes&add=yes">

 

Skriv ett inlägg!<br>

<textarea cols="25" rows="8" name="text"></textarea><br><br>

 

Ditt namn:<br>

<input type="text" size="20" name="av"><br><br>

 

Din e-post:<br>

<input type="text" size="20" name="mail"><br><br>

 

Din hemsida:<br>

<input type="text" size="20" name="hemsida" value="http://"><br><br>

 

OBS! För att skriva i gästboken måste du fylla i ett inlägg, ditt namn och din e-post.<br><br>

 

<input type="submit" value="Lägg till ditt inlägg">

 

</form>

 

<% End If %>

 

<% '===================================================================================================================== %>

<% ' Formulärskod för att skapa inlägg %>

<% '===================================================================================================================== %>

 

<% If Request.QueryString("add") = "yes" Then %>

 

<% Addera = "SELECT * FROM gaster"

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

 

RecSet.AddNew

RecSet("text") = Request.Form("text")

RecSet("av") = Request.Form("av")

RecSet("mail") = Request.Form("mail")

RecSet("hemsida") = Request.Form("hemsida")

RecSet.Update

 

RecSet.Close

 

Response.Redirect "default.asp" %>

 

<% End If %>

 

<% '===================================================================================================================== %>

<% ' Kod för att visa inlägg %>

<% '===================================================================================================================== %>

 

<% If Request.QueryString("what") = "tidigare" Then %>

 

<b>Tidigare inlägg i gästboken.</b><p>

<hr noshade size="1" color="black">

<% Texter = "SELECT * FROM gaster ORDER BY ID"

 

RecSet.Open Texter, Connect, adOpenStatic, adLockOptimistic

 

Do While Z < 100

 

If RecSet.EOF Then

Exit Do

End If %>

 

<% =RecSet("text") %><br><br>

<font><b>Från:</b> <a href="mailto:<% =RecSet("mail") %>"><% =RecSet("av") %></a><br>

<b>Hemsida:</b> <a href="<% =RecSet("hemsida") %>" target="_blank"><% =RecSet("hemsida") %></a></font><br>

 

<hr noshade size="1" color="black">

 

<% RecSet.MoveNext

 

Z = Z - 1

 

Loop %>

 

<br>

Skriv ett <a href="default.asp?what=skriv">nytt</a> inlägg.

 

<% End If %>

 

</html>

 

 

Men hur och var ska jag ändra i koden?? Du är bara så bäst om du kan hjälpa mig att få igång den här gästboken... så du vet!! =)

 

Länk till kommentar
Dela på andra webbplatser

Tjabba

 

Antingen beror det på att jag bara känner mig snäll eller att jag bara avskyr IDG-gästbok. Det är ganska många som fastnat på just den för DEN FUNKAR INTE brukar det låta.

 

Byt bara ut fältet text mot "texten" och fältet hemsida mot "sida" så funkar det.

 

Egentligen är det massor av soaker som borde göras om men det ska i alla fall funka.

 

<%

'===================================================================================================================== 
'Öppnar databasen 
'===================================================================================================================== 

If Request.QueryString("open") = "yes" Then 

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\teamelin\db\gaster.mdb")


End If


'===================================================================================================================== 
' Formulärskod för att skapa inlägg 
'===================================================================================================================== 

If Request.QueryString("add") = "yes" Then


texten = Request.Form("text")
av = Request.Form("av")
mail = Request.Form("mail")
sida = Request.Form("hemsida")
Conn.Execute("INSERT INTO gaster (texten, av, mail, sida) VALUES('"&texten&"', '"&av&"', '"&mail&"', '"&sida&"');")

Response.Redirect "default.asp" 

End If 
%>
<html>
<head>
<title>teaMelin.has.it</title>
<script language="JavaScript">
<!-- 
function kontrollera() {
if (document.skriv.text.value == "") 
{ 
alert("Du måste skriva något!")
return false 
} 
if (document.skriv.av.value == "") 
{ 
alert("Du har ej angett ditt namn!")
return false 
} 
if (document.skriv.mail.value == "" || 
document.skriv.mail.value.indexOf('@', 0) == -1) 
{
alert("Ogiltig E-post adress!"); return false; 
}
}
// -->
</SCRIPT>
<STYLE TYPE="text/css">
<!--
A:link {color: 0000FF; text-decoration: none;}
A:visited {color: 0000FF; text-decoration: none;}
A:hover {color: 0000FF; text-decoration: underline;}
A:visited:hover {color: 0000FF; text-decoration: underline;}
A:active {color: 0000FF; text-decoration: none;}
body { font-family: Verdana; font-size: 8pt; color: #000000; }
body { cursor: default; background: #008000; }
table { background: #BDD600; }
font { font-family: Verdana; font-size: 7pt; color: #000000; }
td { font-family: Verdana; font-size: 8pt; background: #BDD600; }
-->
</STYLE>
</head>
<body>


<center><br>
<img src="http://w1.241.telia.com/~u24103970/grafik/gastbokbig.gif" width="400" height="20"></center><br>
<table align="center" width="400">
<tr><td width="400">

<%
'===================================================================================================================== 
' Välkomstkod 
'===================================================================================================================== 

If Request.QueryString("what") = "" Then
%>
Vad vill du göra?<p>
<ul>
<li><a href="default.asp?what=skriv">Skriva i gästboken.</a>
<li><a href="default.asp?what=tidigare&open=yes">Se tidigare inlägg i gästboken.</a>
</ul>
<% 
End If 

'=====================================================================================================================
' Formulärskod för att göra inlägg 
'===================================================================================================================== 

If Request.QueryString("what") = "skriv" Then
%>

<form method="POST" name="skriv" onSubmit="return kontrollera()" action="default.asp?open=yes&add=yes">
Skriv ett inlägg!<br>
<textarea cols="25" rows="8" name="text"></textarea><br><br>
Ditt namn:<br>
<input type="text" size="20" name="av"><br><br>
Din e-post:<br>
<input type="text" size="20" name="mail"><br><br>
Din hemsida:<br>
<input type="text" size="20" name="hemsida" value="http://"><br><br>
OBS! För att skriva i gästboken måste du fylla i ett inlägg, ditt namn och din e-post.<br><br>
<input type="submit" value="Lägg till ditt inlägg">
</form>

<% End If 

'===================================================================================================================== 
' Kod för att visa inlägg 
'===================================================================================================================== 

If Request.QueryString("what") = "tidigare" Then %>
<b>Tidigare inlägg i gästboken.</b><p>
<hr noshade size="1" color="black">
<% 
SET RecSet = Conn.execute("SELECT * FROM gaster ORDER BY ID")
i = 0
Do until RecSet.EOF OR i = 100
%>

<% =RecSet("texten") %><br><br>
<font><b>Från:</b> <a href="mailto:<% =RecSet("mail") %>"><% =RecSet("av") %></a><br>
<b>Hemsida:</b> <a href="<% =RecSet("sida") %>" target="_blank"><% =RecSet("sida") %></a></font><br>

<hr noshade size="1" color="black">

<%
i = i -- 1
RecSet.MoveNext
Loop
%>

<br>
Skriv ett <a href="default.asp?what=skriv">nytt</a> inlägg.
<% End If %>
</html>

 

 

MVH // Cyppe

 

Länk till kommentar
Dela på andra webbplatser

Tjena igen!

 

Nu kan man iaf titta i gästboken, men fortfarande ett litet problem kvar. Man kan inte skriva i den, det är på den här raden som något är fel:

 

Conn.Execute("INSERT INTO gaster (texten, av, mail, sida) VALUES('"&texten&"', '"&av&"', '"&mail&"', '"&sida&"');")

 

 

Jag har ändrat text till texten och hemsida till sida överallt i koden. Men det går ändå inte att skriva något i gästboken.

 

Om du lyckas fixa det här så kommer du givetvis få en länk (cyprys.com)på min hemsida. Kanske inte är så mycket att ha, men jag har ändå ganska många hattrick tokar som är inne och kollar min hemsidan.

 

Mvh Kristoffer

 

Länk till kommentar
Dela på andra webbplatser

ClaesNilsson

du har skrivit följande:

<% If Request.QueryString("open") = "yes" Then %>

<% Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\teamelin\db\gaster.mdb")

Set RecSet = Server.CreateObject("ADODB.Recordset") %>

<% End If %>

Om nu INTE Request.QueryString("open")

= "Yes"

utan nånting annat så skapas ju aldig

ditt RecSet

 

 

 

 

// Claes

Länk till kommentar
Dela på andra webbplatser

Jag vet att du har hjälpt mig mycket, men när ändå har hjälpt mig så mycket, kan du då inte hjälpa mig hela vägen??

 

När man skriver i gästboken kommer detta meddelande:

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

 

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

 

/teamelin/default.asp, line 27

 

 

Detta är från rad 20-32:

 

If Request.QueryString("add") = "yes" Then

 

 

texten = Request.Form("texten")

av = Request.Form("av")

mail = Request.Form("mail")

sida = Request.Form("sida")

Conn.Execute("INSERT INTO gaster (texten, av, mail, sida) VALUES('"&texten&"', '"&av&"', '"&mail&"', '"&sida&"');")

 

Response.Redirect "default.asp"

 

End If

%>

 

 

Det är alltså något fel när den ska skapa inläggen.

Du kan ju kolla in gästboken på den här adressen:

http://www22.brinkster.com/teamelin

 

Länk till kommentar
Dela på andra webbplatser

En kort anmärkning, testa detta:

Dim SQL

SQL="INSERT INTO gaster (texten, av, mail, sida) VALUES('" & texten & "', '" & av & "', '" & mail & "', '"& sida & "')"

Conn.Execute SQL

 

Länk till kommentar
Dela på andra webbplatser

Testa skriv ut SQL satsen, så får vi se om alla variabler har värden. Alltså typ så här:

SQL="INSERT INTO gaster (texten, av, mail, sida) VALUES('" & texten & "', '" & av & "', '" & mail & "', '" & sida & "')"

Response.Write SQL

Exit Sub

Conn.Execute SQL

 

 

Länk till kommentar
Dela på andra webbplatser

Då har jag kollat och dubbelkollat och koden funkar utmärkt hemma hos mig.

Det är alltså inget fel på koden.

 

Om vi tittar på din databas så först och främst så se till att den inte är skrivskyddad.

Kolla sen så du har dessa fält i tabellen gaster.

 

ID = Räknare

texten = PM eller MEMO

av = text

mail = text

sida = text

 

Nu har du en som ser precis som ser ut som min. Om det inte funkar nu så blir jag väldigt fundersam på om hotellet verkligen är helt... Hmm

 

 

MVH // Cyppe

 

Länk till kommentar
Dela på andra webbplatser

Ok.. jag har kollat på databasen, och fältet "av" stog på PM, har nu ändrat det till text. Den var inte skrivskyddad. Laddade upp den nya databasen, men fortfarande samma fel meddelande:

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

 

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

 

/teamelin/default.asp, line 27

 

 

Om inte jag minns fel så hade väl du blivit medlem på brinkster??

Isf kan väl du ladda upp dina filer på ditt konto?

Jag tror vi eller rättare sagt du är nära en lösning.

 

Länk till kommentar
Dela på andra webbplatser

Nu har jag även testat med min kod, rakt av

http://www22.brinkster.com/cyprys/default.asp

och det funkar alldeles utmärkt.

Se till att du har databasen i db-mappen. Annars om du tagit databasen direkt från IDG så testa att göra en ny egen från scratch. Det är ju bara 5 fält så...

 

MVH // Cyppe

 

Länk till kommentar
Dela på andra webbplatser

ClaesNilsson

testa detta för att kolla din INSERT-sträng:

=================================

texten = Request.Form("texten")

av = Request.Form("av")

mail = Request.Form("mail")

sida = Request.Form("sida")

strSql = "INSERT INTO gaster (texten, av, mail, sida) VALUES('"&texten&"', '"&av&"', '"&mail&"', '"&sida&"');"

response.write strSql

response.end

Conn.Execute(strSql)

==============================

Kolla sedan om du kan köra den i din DB utan asp-sidan

 

 

 

 

// Claes

Länk till kommentar
Dela på andra webbplatser

ok.. nu är jag jävligt sur......

Det FUNGERAR INTE!!!!!!!!!!!

 

Så här ligger det till:

 

Jag laddade hem din zip fil, men tyvärr har väl

du Access 2000 eller liknande och jag har bara

Access 97 så jag kunde inte öppna och jämföra din

och min databas.

Hur som helst, jag laddade upp default.asp och gaster.mdb på brinkster.

Jag testade och skriva i gästboken, men samma

felmeddelande, fel på linje 27.

 

Då gjorde jag en ny databas, som jag vet att det

inte var något fel på...

Laddade upp den, men samma felmeddelnade igen.

 

Frågan är bara, hur lyckas du få igång gästboken,

och inte jag fast vi använde samma filer??

 

Har det nån betydelse om man tar bort mappen "db"

och sedan gör en ny mapp med samma namn??

 

Om du vill så kan jag skicka ett mail med mitt lösenord så kan du gå in och kolla på den själv!!

 

[inlägget ändrat 2001-07-10 13:25:19 av teamelin]

Länk till kommentar
Dela på andra webbplatser

Nu är det bara konstigt. Men då börjar vi mer systematiskt felsöka.

Vi vet att koden är rätt.

 

Det kan mycket väl vara det att om du tagit bort db-katalogen och gjort en ny att det inte går att skriva till den.

Antagligen är det det som är felet.

Skicka ett mail till dem där du ber dem att sätta rättigheterna på mappen.

Annars kan du ju bara skapa ett nytt konto.

 

Om det INTE skulle vara det så:

 

Se till att i databaskopplingen står sökvägen med slash \ och inte med den andra vinkeln /.

Vad jag har för mig så stödjer inte brinkster adovbc.inc så ta bort den.

 

Nu måste det funka tycker jag.

Annars så kan du väl få mitt konto.

Jag vill inte ha det i alla fall.. ;)

 

 

MVH // Cyppe

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...