Avatar billede plato Juniormester
06. november 2003 - 22:41 Der er 8 kommentarer og
1 løsning

Fnc textchange

Hejsa NG

Nu har jeg kæmpet i jeg ved ikke hvor lang tid med følgende script.

Den vil ikke acceptere Hvis man skriver
eks: 'Han gjorde'  (tegnet ')
eller
eks: Hans' bil. (tegnet ')

Nogen der kan hjælpe med en skudsikker rettelse, det dur jo ikke at mine anmeldere for fejl ved ', og så går de i panik.


<%if Request.Form("forfatterb") <> "" then
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.Mappath("../../db/anmeld.mdb")
Set objConn = Server.CreateObject ("ADODB.Connection")
objConn.Open strConnect   
        Function fncTextChange(strText)
            strTekst = Trim(strText)
            fncTextChange = Replace(strTekst,"''","''")
            fncTextChange = Replace(strTekst,"""","""")
            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,"[imgs]","<img src=pics/baggrund/")
            fncTextChange = Replace(fncTextChange,"[/imgs]",">")
            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

    indhold = fncTextChange(request.form("anmeldb"))
    indholda = fncTextChange(request.form("boksenb"))
    indholdb = fncTextChange(request.form("teaserb"))
    indholdc = fncTextChange(request.form("omtaleb"))
strSQL = "Insert into anmeld (forfatter, titel, pic, boksen, teaser, omtale, anmeld) values('" & Request.Form("forfatterb") & "', '" & Request.Form("titelb") & "', '" & Request.Form("picb") & "', '" & indholda & "', '" & indholdb & "', '" & indholdc & "', '" & indhold & "')"

objConn.Execute(strSQL)

end if
%>
Avatar billede eagleeye Praktikant
06. november 2003 - 22:44 #1
Du skal replace et ' med to '' før du putter det i databasen og den replace du har idag udskifter to '' med to '':
fncTextChange = Replace(strTekst,"''","''")


Så den prøv at lave den linje om til:

fncTextChange = Replace(strTekst,"'","''")
Avatar billede plato Juniormester
06. november 2003 - 22:47 #2
Giver denne her fejl:
Microsoft JET Database Engine error '80040e14'

Syntax error (missing operator) in query expression ''Boksen'', 'Teaser'''.

/crew/reviewinsert.asp, line 154

Jeg poster lige hele scriptet.

<tr>
    <td class="font">Forfatter<br><input type="text" name="forfatterb"></td>
        <td class="font">Titel<br><input type="text" name="titelb"></td>


       
</tr>

<tr>
<td class="font" align="left">Boksen<br><textarea name="boksenb" rows="4" cols="20">Skriv hvad du vil. Scene/citat m.m. Hvis du ikke har noget, skriv "Ingen fri tekst"</textarea></td>   
    <td class="font" align="left">Teaser<br><textarea name="teaserb" rows="4" cols="20">"Tekst her"</textarea></td>
</tr>
<tr>
    <td colspan="2" class="font" align="left">Handling<br><textarea name="omtaleb" rows="4" cols="20"></textarea></td>

</tr>
<tr>
    <td colspan="3" class="font" align="left">Anmeldelse<br><textarea name="anmeldb" rows="20" cols="45"></textarea></td>
</tr>
</table>
<input type="image" src="../gfx/send.gif" value="Gem">
</form>



<%if Request.Form("forfatterb") <> "" then
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.Mappath("../../db/anmeld.mdb")
Set objConn = Server.CreateObject ("ADODB.Connection")
objConn.Open strConnect   
        Function fncTextChange(strText)
            strTekst = Trim(strText)
            fncTextChange = Replace(strTekst,"'","''")
            fncTextChange = Replace(strTekst,"""","""")
            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,"[imgs]","<img src=pics/baggrund/")
            fncTextChange = Replace(fncTextChange,"[/imgs]",">")
            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

    indhold = fncTextChange(request.form("anmeldb"))
    indholda = fncTextChange(request.form("boksenb"))
    indholdb = fncTextChange(request.form("teaserb"))
    indholdc = fncTextChange(request.form("omtaleb"))
strSQL = "Insert into anmeld (forfatter, titel, pic, boksen, teaser, omtale, anmeld) values('" & Request.Form("forfatterb") & "', '" & Request.Form("titelb") & "', '" & Request.Form("picb") & "', '" & indholda & "', '" & indholdb & "', '" & indholdc & "', '" & indhold & "')"

objConn.Execute(strSQL)

end if
%>
Avatar billede eagleeye Praktikant
06. november 2003 - 22:49 #3
Hvad prøver du at skrive?  boksen eller 'boksen'  i input feltet.
Avatar billede plato Juniormester
06. november 2003 - 22:50 #4
Jeg skriver som test:
Boksen'
Teaser'
Handling'
Anmeld'
Avatar billede eagleeye Praktikant
06. november 2003 - 22:56 #5
Det ser ud som om der er to '' foran boksen det virker lidt mystisk..
Prøv udskrive strSQL i stedet for at Execute den og vis hvad der så står eller tjek antallet af ping 'er
Avatar billede eagleeye Praktikant
06. november 2003 - 22:58 #6
glem det så lige noget..
Avatar billede plato Juniormester
06. november 2003 - 22:58 #7
Der fik du mig..hehe, jeg fatter nada af hvad du lige skrev.
Avatar billede eagleeye Praktikant
06. november 2003 - 22:59 #8
Den ændre rigtigt nok en ' til to '' men det blvier ikke gemt i strengen da strTekst bruge i de to første replaces:

            strTekst = Trim(strText)
            fncTextChange = Replace(strTekst,"'","''")
            fncTextChange = Replace(strTekst,"""","""")

Prøv at rette de 3 linjer til:

            strTekst = Trim(strText)
            fncTextChange = Replace(strTekst,"'","''")
            fncTextChange = Replace(fncTextChange,"""","""")
Avatar billede plato Juniormester
06. november 2003 - 23:02 #9
TUSIND TAK!!! Nu virker det.
Både
Test'
'Test'

Simpelthen bare det hele. (For lige at gentage mig) :-)
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