Avatar billede plato Juniormester
12. november 2004 - 00:38 Der er 11 kommentarer og
2 løsninger

Sidder fncTextChange forkert?

Hejsa NG.

Jeg dette lille opdate script på noget eksisterende indhold.
Jeg prøver at få fncTextChange til at virke på updaten også.
Eller kan man ikke det?
Skal det være før teksten puttes i databasen fra den oprindelig <form>?

Anyways her kommer koden, håber nogen kan give mig et svar.

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


Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM nyhedtemp WHERE id LIKE '" & Request.QueryString("id") & "'"
rs.open sql, conn, 1, 3
   
if Request.ServerVariables("REQUEST_METHOD") = "POST" then

Function fncTextChange(strText)
strTekst = Trim(strText)

fncTextChange = Replace(strTekst,"'","''")
fncTextChange = Replace(fncTextChange,"""","""")
fncTextChange = Replace(fncTextChange,"  "," &nbsp;")
fncTextChange = Replace(fncTextChange,vbCrLf,"<BR>")
fncTextChange = Replace(fncTextChange,"å","&aring;")
fncTextChange = Replace(fncTextChange,"æ","&aelig;")
fncTextChange = Replace(fncTextChange,"ø","&oslash;")
fncTextChange = Replace(fncTextChange,"Å","&Aring;")
fncTextChange = Replace(fncTextChange,"Æ","&AElig;")
fncTextChange = Replace(fncTextChange,"Ø","&Oslash;")
fncTextChange = Replace(fncTextChange,"[img]","<center><img src=../pics/")
fncTextChange = Replace(fncTextChange,"[/img]","></center>")

fncTextChange = Replace(fncTextChange,"","<b>")
fncTextChange = Replace(fncTextChange,"
","</b>")
fncTextChange = Replace(fncTextChange,"","<i>")
fncTextChange = Replace(fncTextChange,"
","</i>")
fncTextChange = Replace(fncTextChange,"","<u>")
fncTextChange = Replace(fncTextChange,"
","</u>")

End Function
       
'Opdaterer felterner
rs.update


rs("overskrift") = Server.HTMLEncode(Request("overskrift"))
rs("indhold") = fncTextChange(Request("indhold"))
rs("forfatter") = Server.HTMLEncode(Request("forfatter"))
rs("pic") = Server.HTMLEncode(Request("pic"))
rs("dato") = Server.HTMLEncode(Request("dato"))
rs("kilde") = Server.HTMLEncode(Request("kilde"))
rs("link") = Server.HTMLEncode(Request("link"))
if Request.form("active") = "active" Then
rs("active") = "True"
else
rs("active") = "False"
end if

   




rs.update
Response.Redirect("default.asp")
end if
%>
Avatar billede ldanielsen Nybegynder
12. november 2004 - 01:04 #1
Du kan ikke placere en funktion indeni en if .... end if !!

Se her. Jeg bruger funktionen på næsten alle felterne, mend det er måske ikke nødvendigt. Den der Server.HTMLEncode tror jeg ikke du skal bruge, jeg kan i hvert fald ikke gennemsku hvad du vil med den.

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


Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM nyhedtemp WHERE id LIKE '" & Request.QueryString("id") & "'"
rs.open sql, conn, 1, 3
   
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
   
'Opdaterer felterner



rs("overskrift") = fncTextChange(Request("overskrift"))
rs("indhold") = fncTextChange(Request("indhold"))
rs("forfatter") = fncTextChange(Request("forfatter"))
rs("pic") = fncTextChange(Request("pic"))
rs("dato") = Request("dato")
rs("kilde") = fncTextChange(Request("kilde"))
rs("link") = fncTextChange(Request("link"))
if Request.form("active") = "active" Then
rs("active") = "True"
else
rs("active") = "False"

rs.update
end if

Response.Redirect("default.asp")
end if
   

Function fncTextChange(strText)
strTekst = Trim(strText)

fncTextChange = Replace(strTekst,"'","''")
fncTextChange = Replace(fncTextChange,"""","""")
fncTextChange = Replace(fncTextChange,"  "," &nbsp;")
fncTextChange = Replace(fncTextChange,vbCrLf,"<BR>")
fncTextChange = Replace(fncTextChange,"å","&aring;")
fncTextChange = Replace(fncTextChange,"æ","&aelig;")
fncTextChange = Replace(fncTextChange,"ø","&oslash;")
fncTextChange = Replace(fncTextChange,"Å","&Aring;")
fncTextChange = Replace(fncTextChange,"Æ","&AElig;")
fncTextChange = Replace(fncTextChange,"Ø","&Oslash;")
fncTextChange = Replace(fncTextChange,"[img]","<center><img src=../pics/")
fncTextChange = Replace(fncTextChange,"[/img]","></center>")

fncTextChange = Replace(fncTextChange,"","<b>")
fncTextChange = Replace(fncTextChange,"
","</b>")
fncTextChange = Replace(fncTextChange,"","<i>")
fncTextChange = Replace(fncTextChange,"
","</i>")
fncTextChange = Replace(fncTextChange,"","<u>")
fncTextChange = Replace(fncTextChange,"
","</u>")

End Function



%>
Avatar billede ldanielsen Nybegynder
12. november 2004 - 01:06 #2
Og så skal du lige huske at lukke efter dig :o)

rs.Close
Conn.close
Set rs = nothing
Set Conn = nothing

- lige før Response.Redirect
Avatar billede ldanielsen Nybegynder
12. november 2004 - 01:10 #3
Jeg kan se at der er rod i det med de to if'er - prøver lige igen:

<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open Application("Provider") 

  Set rs = Server.CreateObject("ADODB.Recordset")
  sql = "SELECT * FROM nyhedtemp WHERE id LIKE '" & Request.QueryString("id") & "'"
  rs.open sql, conn, 1, 3
   
  'Opdaterer felterner
  rs("overskrift") = fncTextChange(Request("overskrift"))
  rs("indhold") = fncTextChange(Request("indhold"))
  rs("forfatter") = fncTextChange(Request("forfatter"))
  rs("pic") = fncTextChange(Request("pic"))
  rs("dato") = Request("dato")
  rs("kilde") = fncTextChange(Request("kilde"))
  rs("link") = fncTextChange(Request("link"))
  if Request.form("active") = "active" Then
    rs("active") = "True"
  else
    rs("active") = "False"
  end if
 
  rs.update
 
  rs.Close
  Conn.close
  Set rs = nothing
  Set Conn = nothing
end if
   
Response.Redirect("default.asp")



Function fncTextChange(strText)
  strTekst = Trim(strText)
  fncTextChange = Replace(strTekst,"'","''")
  fncTextChange = Replace(fncTextChange,"""","""")
  fncTextChange = Replace(fncTextChange,"  "," &nbsp;")
  fncTextChange = Replace(fncTextChange,vbCrLf,"<BR>")
  fncTextChange = Replace(fncTextChange,"å","&aring;")
  fncTextChange = Replace(fncTextChange,"æ","&aelig;")
  fncTextChange = Replace(fncTextChange,"ø","&oslash;")
  fncTextChange = Replace(fncTextChange,"Å","&Aring;")
  fncTextChange = Replace(fncTextChange,"Æ","&AElig;")
  fncTextChange = Replace(fncTextChange,"Ø","&Oslash;")
  fncTextChange = Replace(fncTextChange,"[img]","<center><img src=../pics/")
  fncTextChange = Replace(fncTextChange,"[/img]","></center>")
  fncTextChange = Replace(fncTextChange,"","<b>")
  fncTextChange = Replace(fncTextChange,"
","</b>")
  fncTextChange = Replace(fncTextChange,"","<i>")
  fncTextChange = Replace(fncTextChange,"
","</i>")
  fncTextChange = Replace(fncTextChange,"","<u>")
  fncTextChange = Replace(fncTextChange,"
","</u>")
End Function



%>
Avatar billede ldanielsen Nybegynder
12. november 2004 - 01:12 #4
eller nærmere:

...


  rs.Close
  Conn.close
  Set rs = nothing
  Set Conn = nothing
  Response.Redirect("default.asp")
end if
   
...

Nu skal jeg vist i seng, inden jeg roder mere :o)
Avatar billede ellebaek Nybegynder
12. november 2004 - 12:28 #5
jeg har kigget på din kode...

Og den bør virke som den er..!

Du kan sagtens have funktionen inden i en if.. Så har du bare ikke adgang til den med mindre iffen er opfyldt.
Men jeg vil egentlig opfordre dig til ikke at gøre noget særligt ved din tekst inden du sætter den ind i databasen..

Egentlig ville jeg nøjes med at bruge:
Function fncTextChange(strText)
  strTekst = Trim(strText)
  fncTextChange = Replace(strTekst,"'","''")
  fncTextChange = Replace(fncTextChange,"""","""")
End Function
før jeg satte teksten ind. Fordelen ved det er at hvis du senere skal ændre på tingene i fx. et textarea, så skal du ikke til at bytte dine tags tilbage.


Jeg ville i stedet kalde fncTextChange når jeg hentede indholdet ud af databasen på et senere tidspunkt.


Hvad er det problemet er siden du mener du ikke kan kalde funktionen i din update =?
Avatar billede ldanielsen Nybegynder
12. november 2004 - 12:35 #6
ellebaek > Jeg vidste ikke at man kunne have en function indeni en if ...

Men alligevel blev det lavet forkert.

Der er ingen grund til at ændre nogetsomhelst ved teksten, heller ikke ' til ''. Der bliver jo ikke brugt INSERT eller UPDATE, når du laver det med ADO finder den selv ud af det med plingerne.
Avatar billede ellebaek Nybegynder
12. november 2004 - 12:41 #7
Nå nej ;-)
Havde jeg ikke lige luret..!

Så ville jeg egentlig bare kalde fncTextChange når jeg skulle hente tingene ud..
Avatar billede plato Juniormester
12. november 2004 - 17:47 #8
I siger jeg skal gøre det når jeg trækker ud.
Men hvordan gør jeg lige det, jeg troede kun man kunne bruge den når man lagde nyt ind/opdater.

Her er koden jeg trækker ud med:

<%
                      strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.Mappath("../../db/data.mdb")
                      Set objConn = Server.CreateObject ("ADODB.Connection")
                      objConn.Open strConnect   

                    strSQL = "SELECT TOP 4 * FROM nyhedtemp WHERE active = True  ORDER BY id DESC"
                      Set rs = objConn.Execute(strSQL)

                      Do While Not rs.EOF
                      id = rs("id")
                      overskrift = rs("overskrift")
                      forfatter = rs("forfatter")
                      indhold = rs("indhold")
                      pic = rs("pic")
                      dato = rs("dato")
                      kilde = rs("kilde")
                      link = rs("link")
                          %>
           
                  <table cellpadding="0" cellspacing="0" width="499" border="0">
                    <tr>
                      <td height="110" width="81" valign="top" align="left" class="content-bio-bg"><div id="container"><img src="../pics/<%=rs("pic")%>" id="baggrund" border="0" /><div id="element"><a class="link" href="dvdreview.asp?mode=teather_read&amp;id=584" title="Diskuter"><img src="image/content-bio-pic.gif" border="0"></a></div></div></td>
                      <td width="420" valign="top" class="content-bio-line" align="left">
                        <table cellpadding="0" cellspacing="0" border="0" width="100%">
                          <tr>
                            <td class="content-bio-titel" align="left"><a class="link" href='dvdreview.asp?mode=teather_read&amp;id=584'><strong><%=rs("overskrift")%></strong></a></td>
                            <td width="110" height="18" class="content-bio-klap" align="right"><%=rs("dato")%></td>
                          </tr>
                        </table>
                        <br /><%=rs("indhold")%>
                      </td>
                      </tr>
                      <tr>
                        <td colspan="2" align="left" class="content-bio-bottom">
                          <table cellpadding="0" cellspacing="0" border="0">
                            <tr>
                              <td width="200">Af: <%=rs("forfatter")%></td>
                              <td><a href="<%=rs("link")%>" target="_new"><%=rs("kilde")%></a></td>
                              <td width="170" height="15" align="right"><a class="link" href="dvdreview.asp?mode=teather_read&amp;id=584" title="Diskuter">Diskuter</a> (Indlæg: 0)
                  </td>
                            </tr>
                          </table>
                        </td>
                      </tr>
                    </table><br />
              <%
                      placering = placering + 1
                      rs.MoveNext
                      loop
                  %>       

Sig til hvis jeg skal oprette det i et nyt spm.
Avatar billede ellebaek Nybegynder
13. november 2004 - 13:09 #9
vi tager den bare her::

Det skal se ud som:

<%
Function fncTextChange(strText)
strTekst = Trim(strText)

fncTextChange = Replace(strTekst,"'","''")
fncTextChange = Replace(fncTextChange,"""","""")
fncTextChange = Replace(fncTextChange,"  "," &nbsp;")
fncTextChange = Replace(fncTextChange,vbCrLf,"<BR>")
fncTextChange = Replace(fncTextChange,"å","&aring;")
fncTextChange = Replace(fncTextChange,"æ","&aelig;")
fncTextChange = Replace(fncTextChange,"ø","&oslash;")
fncTextChange = Replace(fncTextChange,"Å","&Aring;")
fncTextChange = Replace(fncTextChange,"Æ","&AElig;")
fncTextChange = Replace(fncTextChange,"Ø","&Oslash;")
fncTextChange = Replace(fncTextChange,"[img]","<center><img src=../pics/")
fncTextChange = Replace(fncTextChange,"[/img]","></center>")

fncTextChange = Replace(fncTextChange,"","<b>")
fncTextChange = Replace(fncTextChange,"
","</b>")
fncTextChange = Replace(fncTextChange,"","<i>")
fncTextChange = Replace(fncTextChange,"
","</i>")
fncTextChange = Replace(fncTextChange,"","<u>")
fncTextChange = Replace(fncTextChange,"
","</u>")

End Function


                      strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.Mappath("../../db/data.mdb")
                      Set objConn = Server.CreateObject ("ADODB.Connection")
                      objConn.Open strConnect   

                    strSQL = "SELECT TOP 4 * FROM nyhedtemp WHERE active = True  ORDER BY id DESC"
                      Set rs = objConn.Execute(strSQL)

                      Do While Not rs.EOF
                      id = rs("id")
                      'overskrift = rs("overskrift")
                      'forfatter = rs("forfatter")
                      'indhold = rs("indhold")
                      'pic = rs("pic")
                      'dato = rs("dato")
                      'kilde = rs("kilde")
                      'link = rs("link")
                          %>
           
                  <table cellpadding="0" cellspacing="0" width="499" border="0">
                    <tr>
                      <td height="110" width="81" valign="top" align="left" class="content-bio-bg"><div id="container"><img src="../pics/<%=rs("pic")%>" id="baggrund" border="0" /><div id="element"><a class="link" href="dvdreview.asp?mode=teather_read&amp;id=584" title="Diskuter"><img src="image/content-bio-pic.gif" border="0"></a></div></div></td>
                      <td width="420" valign="top" class="content-bio-line" align="left">
                        <table cellpadding="0" cellspacing="0" border="0" width="100%">
                          <tr>
                            <td class="content-bio-titel" align="left"><a class="link" href='dvdreview.asp?mode=teather_read&amp;id=584'><strong><%=rs("overskrift")%></strong></a></td>
                            <td width="110" height="18" class="content-bio-klap" align="right"><%=rs("dato")%></td>
                          </tr>
                        </table>
                        <br /><%=fncTextChange(rs("indhold"))%>
                      </td>
                      </tr>
                      <tr>
                        <td colspan="2" align="left" class="content-bio-bottom">
                          <table cellpadding="0" cellspacing="0" border="0">
                            <tr>
                              <td width="200">Af: <%=rs("forfatter")%></td>
                              <td><a href="<%=rs("link")%>" target="_new"><%=rs("kilde")%></a></td>
                              <td width="170" height="15" align="right"><a class="link" href="dvdreview.asp?mode=teather_read&amp;id=584" title="Diskuter">Diskuter</a> (Indlæg: 0)
                  </td>
                            </tr>
                          </table>
                        </td>
                      </tr>
                    </table><br />
              <%
                      placering = placering + 1
                      rs.MoveNext
                      loop
                  %>   

og så skal du helt fjerne den funktion på din update side..
Avatar billede plato Juniormester
13. november 2004 - 13:16 #10
Tusind tak. :-)

Hvis I smider et svar kan jeg lukke spm. :-)
Avatar billede ellebaek Nybegynder
13. november 2004 - 23:47 #11
et svar her...!
Avatar billede ldanielsen Nybegynder
14. november 2004 - 14:44 #12
og her
Avatar billede plato Juniormester
14. november 2004 - 15:19 #13
Tak for hjælpen til jer begge:-)
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