Avatar billede joch Nybegynder
23. januar 2004 - 10:46 Der er 31 kommentarer

Fra base bliver "&regionId=" til "®ionId="

Hvordan undgår jeg at når jeg henter fra basen til mit formfelt -at "&regionId=" bliver til "®ionId="
Avatar billede sbm Nybegynder
23. januar 2004 - 11:14 #1
Skal jeg forstå at du henter noget fra databasen, og udskriver til browseren?

Den tolker dit &reg som HTML-encoding... Du skal derfor HTML-encode dit & til &
Avatar billede sbm Nybegynder
23. januar 2004 - 11:16 #2
Skift ud ved at skrive
Replace(ditParameter, "&", "&")
Avatar billede sbm Nybegynder
23. januar 2004 - 11:19 #3
Det er i øvrigt noget grisse-snask på den måde at gemme den slags parametre i databasen. Det burde istedet være opdelt i felter, og så kan du selv i din ASP-kode lægge de fornødne & ind i parameter-strengen.

Hvis du f.eks. har et tekstfelt, hvor der kan stå en eller anden form for beskrivelse, og der i den beskrivelse bliver brug & som en del af teksten, kan du komme ud for BÅDE at have & som parameter-adskillelse OG som en del af et værdi-felt. Og tro mig. Det har du IKKE lyst til.
Avatar billede joch Nybegynder
23. januar 2004 - 11:52 #4
Jeg bliver nok nød til at uddybe lidt mere.

I den tekst der skal hentes fra databasen kan man indsætte en link. Dette link har parameter f.eks. "default.asp?id=10&region=22"

Det gemmer den også fint, men når jeg henter det ind igen i min form bliver det til"default.asp?id=10®ion=22"

Hvordan får jeg det ind i min form igen på den rigtige måde?
Avatar billede sbm Nybegynder
23. januar 2004 - 12:21 #5
Prøv at klippe den del af din .asp side ind, hvor du udskriver til browseren.
ca. 5 linier før og et par linier efter.

Så vil jeg forsøge at modificere din kode, så den virker som den skal.
Avatar billede joch Nybegynder
23. januar 2004 - 12:28 #6
<input type="hidden" name="txtDocumentID" id="txtDocumentID" value="<%=intDocumentID%>">
Avatar billede joch Nybegynder
23. januar 2004 - 12:30 #7
Forkert... sorry

<td><input type="hidden" name="txtDocumentID" id="txtDocumentID" value="<%=intDocumentID%>"> <!-- STEP 8: Since we edit content within editor that is not part of the FORM,
                    we need to move the edited content & its style into
                    fields within a FORM.
                    Here we prepare 2 hidden form fields :
                        - txtContent for edited content, and
                        - txtPageProperties for its style. --><input type="hidden" name="txtContent" value="" id="Hidden1"> <input type="hidden" name="txtPageProperties" value="" id="txtPageProperties"> <!-- STEP 2: Attach Editor -->    <script>
            var obj1 = new ACEditor("obj1")
            obj1.width = "100%" //editor width
            obj1.height = 500 //editor height
            obj1.AssetPageURL = "default_Asset.asp" //specify Asset library management page
            obj1.ImagePageURL = "default_image.asp" //specify Image library management page
            obj1.base = "http://<% =SiteName %>/" //where the users see the content (where we publish the content)
            obj1.baseEditor = "http://<% =SiteName %>/admin/" //location of the editor
            obj1.StyleSelection = "ace_styleselection.css"; //use style selection
            obj1.StyleSelectionPath_RelativeTo_EditorPath = "../style/"; //location of style selection css file (relative to the editor)
            obj1.PageStyle = "ace_document.css"; //apply external css to the document
            obj1.PageStylePath_RelativeTo_EditorPath = "../style/"; //location of the external css (relative to the editor)
            obj1.isFullHTML = false //edit full HTML (not just BODY)s
            obj1.RUN() //show
        </script></td>
Avatar billede joch Nybegynder
23. januar 2004 - 12:31 #8
Ikke mit system - et cms vi har købt!
Avatar billede sbm Nybegynder
23. januar 2004 - 12:40 #9
Et færdigkøbt CMS der ikke tager højde for særtegn i det indtastede? :-(

Ok. Kan du så prøve at copy/paste den del af HTML-koden der kommer ud. Dvs kig i kildekoden i browseren, og lav så en copy/paste af den linie med <input type="hidden....
Avatar billede joch Nybegynder
23. januar 2004 - 13:19 #10
Må lige kigge på det... jeg kan ikke lige overskue hvordan det har lavet :(
Avatar billede sbm Nybegynder
23. januar 2004 - 13:33 #11
Prøv at copy/paste HELE html-dokumentet. Bare så jeg kan tage et kig og få lidt forståelse for hvor den kikser.
Avatar billede sbm Nybegynder
23. januar 2004 - 13:36 #12
Bare for at vi ikke taler forbi hinanden.

Når du bruger browseren, og går ind på siden.... Så højreklikker du og vælger VIS KILDE. Alt den HTML laver du en COPY / PASTE herover, så jeg lige kan guggelure. :-)
Avatar billede joch Nybegynder
23. januar 2004 - 14:06 #13
Vi taler ikke forbi hinanden, det vil ikke hjælpe dig for der står det samme som for oven... Det er vist et meget langt javascript som driller. Har dog gjort det alligevel så du kan se hvad jeg mener!

Jeg har dog "løst" problemet med replace(Text,"&reg","&Reg")...

-----------------------------------------------------------------------




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <script language="JavaScript">
    <!--
    function popLoad() {
        var myLeft = (screen.availWidth - 568) / 2;
        var myTop = (screen.availHeight - 232) / 2;
        window.open("BannerTop.asp?ID=512&BannerID=1","Upload","width=568,height=232,left="+myLeft+",top="+myTop+",toolbar=No,menubar=No,location=No,scrollbars=No,resize=Yes");
    }
    //-->
    </script>

    <!-- STEP 1: include js files -->
    <script language="JavaScript" src="include/yusasp_ace.js"></script>
    <script language="JavaScript" src="include/yusasp_color.js"></script>
   
    <script>
function Send(SaveForm)
        {
        //STEP 9: Before getting the edited content, the display mode of the editor
        //must not in HTML view.
        if(obj1.displayMode == "HTML")
            {
            alert("Please uncheck HTML view")
            return (false);
            }
           
        //STEP 10: Here we move the edited content & style into form fields.
        Form1.txtContent.value = obj1.getContentBody() //move edited content into form field, to be submitted.
        Form1.txtPageProperties.value = obj1.getPageCSSText() //move page properties css Text/style into form field, to be submitted.


        //STEP 11: You can perform validation here if needed.
        if (Form1.txtTitle.value == "")
            {
            alert("Please fill the document Title.");
            return (false);
            }
    return (true);
        }

    function LoadContent()
        {
           
            popLoad();
       
        //STEP 5: Use putContent to fill editor area.
        //Note: we put content (from database) into hidden area (divResult),
        //so that we can use method putContent(..HTML content here..)
        //to move the content from divResult into editor area.
        obj1.putContent(divResult.value) //Put Content into the editor
        obj1.setPageCSSText(divProperties.value) //apply page properties
        }

    </script>

        <link href="style.css" rel="stylesheet" media="screen">
    </head>
<body onload="LoadContent()" style="font:10pt verdana,arial,sans-serif" leftmargin="0" marginwidth="0">
        <div align="center">
            <form method="post" action="admin_DocEdit.asp?action=save" name="SaveForm" id="Form1" onsubmit="return Send(this);">
                <div align="center">
                    <table style="table-layout:fixed;font-family:Verdana,Arial,Helvetica;font-size:8pt;" width=760 id="Table2">
                        <col width=760>
                            <col>
                                <tr><!-- STEP 7: Prepare FORM fields (txtTitle & txtDocumentID)
                    and fill the fields with value from Database  -->
                                   
                                    <td bgcolor="#bcd3dd">
                                        <table width="760" border="0" cellspacing="0" cellpadding="5">
                                            <tr>
                                                <td valign="bottom" rowspan="2"><img src="include/default/artikel.gif" width="38" height="11" border="0"><br>
                                                    <input class="inputfelt" type="text" id="txtTitle" name="txtTitle" value="test" size=50></td>
                                                <td width="150" rowspan="2" valign="middle">
                                                   
<div align="right"><a href="#" onclick="popLoad()"><img src="include/default/RetBanner.gif" width="125" height="40" border="0"></a></div>

                                                </td>
                                                <td rowspan="2" width="100" valign="middle">
                                                    <div align="right">
                                                        <a href="default.asp"><img src="include/default/SiteCom.gif" width="100" height="40" border="0"></a></div>
                                                </td>
                                            </tr>
                                            <tr height="23">
                                               
                                            </tr>
                                        </table>
                                    </td>
                                </tr>
                                <tr>
                                    <td><input type="hidden" name="txtDocumentID" id="txtDocumentID" value="512"> <!-- STEP 8: Since we edit content within editor that is not part of the FORM,
                    we need to move the edited content & its style into
                    fields within a FORM.
                    Here we prepare 2 hidden form fields :
                        - txtContent for edited content, and
                        - txtPageProperties for its style. --><input type="hidden" name="txtContent" value="" id="Hidden1"> <input type="hidden" name="txtPageProperties" value="" id="txtPageProperties"> <!-- STEP 2: Attach Editor -->    <script>
            var obj1 = new ACEditor("obj1")
            obj1.width = "100%" //editor width
            obj1.height = 500 //editor height
            obj1.AssetPageURL = "default_Asset.asp" //specify Asset library management page
            obj1.ImagePageURL = "default_image.asp" //specify Image library management page
            obj1.base = "http://demo.pajortest.dk/" //where the users see the content (where we publish the content)
            obj1.baseEditor = "http://demo.pajortest.dk/admin/" //location of the editor
            obj1.StyleSelection = "ace_styleselection.css"; //use style selection
            obj1.StyleSelectionPath_RelativeTo_EditorPath = "../style/"; //location of style selection css file (relative to the editor)
            obj1.PageStyle = "ace_document.css"; //apply external css to the document
            obj1.PageStylePath_RelativeTo_EditorPath = "../style/"; //location of the external css (relative to the editor)
            obj1.isFullHTML = false //edit full HTML (not just BODY)s
            obj1.RUN() //show
        </script></td>
                                </tr>
                                <tr>
                                   
                                    <td>
                                        <div align="right">
                                            <table border="0" cellpadding="0" cellspacing="0" width="100%">
                                                <tr>
                                                    <td>
                                    </td>
                                                    <td>
                                                        <div align="right">
                                                            <input type="image" src="include/default/gem.gif" border="0" alt="Send" ID="Button1" NAME="Button1"></div>
                                                    </td>
                                                </tr>
                                            </table>
                                        </div>
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        <div align="center">
                                            <hr size="1">
                                        </div>
                                    </td>
                                </tr>
                            </col>
                        </col>
                    </table>
                </div>
            </form>
            <!-- STEP 4: Put the content & its style (from the database) into a hidden area.
            Why hidden area ? see STEP 7 --><textarea rows=7 cols=40 id="divResult" name="divResult" style="display:none">

<P><A href="http://www.visitdenmark.com/portal/ViewProductSearchResults.srv?marketId=1%3A29%3A91f7baf8ec2dbf9d0c15&targetGroupId=1%3A83%3A91f7baf8ec2dbfb28815f&siteCategoryId=1%3A79%3A91f7baf8ec2dbfd28332c&pagePoolId=1%3A57%3A91f7baf8ec2dc0e2bb10d9&RegionId=1%3A74%3A91f7baf8ec2ddf244654f&firstProductTypeId=1%3A72%3A91f7baf8ec2ddf85dff2f&firstFacilityRowId=1%3A12%3A91f7baf8ec2e0dbd3bbaa6&secondProductTypeId=1%3A72%3A91f7baf8ec2ddf861df4e&productTypeId=1%3A72%3A91f7baf8ec2ddf861df4e&name=&templateName=SpecialSearch&advanced=true&fg_1%3A13%3A91f7baf8ec2e1bdb006ada=&v_1%3A12%3A91f7baf8ec2e1bdd136b00_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3A91f7baf8ec2e1bddbf6b06_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3A91f7baf8ec2e1be5216b0c_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3A91f7baf8ec2e1be6a86b12_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3Aac100041ecae8da56c5ac_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3Aac100041ecae9016df5bc_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3Aac100041ecae9ccc9860f_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3A91f7baf8ec2e1be6f66b18_1%3A106%3A91f7baf8ec2e1bdca66af7=" target=_blank>Test</A>&nbsp;ttt</P>
</textarea>
<textarea rows=7 cols=40 id="divProperties" name="divProperties" style="display:none">
BACKGROUND:transparent;BACKGROUND-IMAGE:;PADDING-LEFT:3px;PADDING-RIGHT:3px;PADDING-TOP:1px;PADDING-BOTTOM:3px;FONT-FAMILY:Verdana, Arial, Helvetica;FONT-SIZE:11px;COLOR:black;
</textarea></div>
    </body>
</html>
Avatar billede sbm Nybegynder
23. januar 2004 - 14:24 #14
Ahhhh. Så problembarnet er en del af et link! Jeg forstod længere oppe at det var en del af et skjult felt?

Ja, ok. Ikke den optimale løsning, men browseren vil ikke længere oversætte &Reg; til et "registered trademark" symbol fordi det nu står med stort R. På den anden side har du et dilemme med at skulle gå igennem en masse .asp du ikke selv har lavet, for at lave det på en mere hensigtsmæssig måde.

For en ordens skyld, burde du nok køre alle dine .asp filer igennem, og erstatte &reg med &Reg så den også fremover undgår denne problematik.

Men desværre stadig kun en halv-optimal løsning. :-/
Avatar billede erikjacobsen Ekspert
23. januar 2004 - 14:34 #15
Jeg har ikke læst koden igennem i detaljer, men problemet er velkendt. Burde
være velkendt.... Alt, og det er virkelig alt, der puttes i en HTML-streng, skal
en tur igennem en htmlencode, dvs. noget i retning af:

  <.... value="<%= server.htmlencode(dinstrengfradatabasen) %>" ...>

Eneste undtagelse er når man ved der ikke er giftige tegn i, men det kan som
udgangspunkt ikke vide når det fx kommer fra en database.

Det virker håbløst at skulle rette det igennem i et færdigt system, så enten
smid det ud (I kan ikke have givet ret meget for det, når udviklerne ikke
ved det her), eller få det rettet - det kan I da vel have krav på.
Avatar billede joch Nybegynder
23. januar 2004 - 14:59 #16
Takker for hjælpen. Jeg vil kigge på <%= server.htmlencode(dinstrengfradatabasen)%> Det virker som den rigtige løsning.
Avatar billede sbm Nybegynder
23. januar 2004 - 16:22 #17
Jamen lige her er jeg ikke sikker på at det dur...

Det skal jo bruges til et link, og hvis databasen f.eks. siger

http://www.domain.dk/fil.asp?rowId=1&regionId=1

vil det - efter at være røget gennem en htmlencoding blive til

http://www.domain.dk/fil.asp?rowId=1&amp;regionId=1

...hvilket er volapyk!
Avatar billede sbm Nybegynder
23. januar 2004 - 16:24 #18
Det var bl.a. derfor jeg længere oppe skrev at det ville være bedst at have disse felter opdelt i databasen, og ikke i een lang streng.
Avatar billede erikjacobsen Ekspert
23. januar 2004 - 18:23 #19
Jamen der er jo præcis den tekststreng der skal stå i en HTML streng. Dette er
100% korrekt:

  <.... value="http://www.domain.dk/fil.asp?rowId=1&amp;regionId=1" ....>
Avatar billede sbm Nybegynder
23. januar 2004 - 19:40 #20
Jamen i dette tilfælde står det som en <a href="....."> ?????
Avatar billede sbm Nybegynder
23. januar 2004 - 19:41 #21
Jeg mener... Det giver da et ugyldigt link. Parametrene er jo et stort rod.
Avatar billede erikjacobsen Ekspert
23. januar 2004 - 19:46 #22
Det er også 100% korrekt som

    <a href="http://www.domain.dk/fil.asp?rowId=1&amp;regionId=1">.....</a>

Der er intet rod. Det er sådan man skal skrive en & i en HTML streng. Jeg synes det ser smukt ud ;)
Avatar billede erikjacobsen Ekspert
23. januar 2004 - 19:58 #23
forøvrigt joch: det er da ikke dig, der skal kigge på htmlencode - det er den, der har leveret systemet,
der skal sørge for at det virker.
Avatar billede sbm Nybegynder
23. januar 2004 - 20:10 #24
Hvis du ønsker at skrive et & som en del af værdien, så har du ret.

Filmtitel = Fy & Bi
Htmlencoded paramter: filmtitel=Fy%20&amp&%20Bi

Men når det er - som jeg ser det - et & som adskiller to parametre, så skal det da ikke encodes?
Avatar billede erikjacobsen Ekspert
23. januar 2004 - 20:21 #25
Nej, hvis du skal skrive en & som en del af en værdi, så skal den URL-encodes. Det har intet med
HTML-encode at gøre. Kan du bevise at jeg ikke har ret? Nej, vel? For hvis du prøver, så
virker det. Og hvis du validerer hos w3.org, så går mit igennem, mens din giver fejl.

Prøv det.
Avatar billede sbm Nybegynder
23. januar 2004 - 23:13 #26
Kære Erik.

Nu må du have mig undskyldt. Jeg ved ikke om vi taler forbi hinanden eller hvad?

Korrekt at jeg havde en kortslutning og fik blandet HTML-encoding og URL-encoding sammen, men hvis du har parametrene regionId samt templateName og de skal sættes til hhv. 1 og SpecialSearch og dette skal gøres som en GET-streng. Hvordan vil du så skrive det?

Hvis jeg eksempelvis laver en form, og sætter action til GET, så vil den altså skrive parametrene omtrent således:

http://www.domain.dk/filename.asp?regionId=1&templateName=SpecialSearch

Ingen encoding af & til &amp;

Så vidt jeg kan se, skal &regionId bruges til et link, som du i joch's kommentar 23/01-2004 14:06:34 kan se som et laaaaaangt link i bunden af indlægget. Vil du have mig til at tro den skal encodes?
Avatar billede erikjacobsen Ekspert
23. januar 2004 - 23:19 #27
Jeg kan ikke lige se slutningen af det lange link i min browser ;)

Men det eneste jeg siger, er, at hvis du fx vil skrive

  http://www.domain.dk/filename.asp?regionId=1&templateName=SpecialSearch

i en HTML streng, så skal det skrives

  "http://www.domain.dk/filename.asp?regionId=1&amp;templateName=SpecialSearch"

Må jeg spørge igen, om du har prøvet det? Om du har prøvet at få forskellige
udgaver valideret?
Avatar billede sbm Nybegynder
23. januar 2004 - 23:30 #28
Nej. Som jeg skrev i mit indlæg 23/01-2004 16:22:38 skal det bruges til et link.

<a href="......">

Jeg er udemærket godt klar over at browseren får det galt i halsen, hvis du "kun" skriver & og ikke encoder det til &amp;

Her er det link som jeg taler om:

<P><A href="http://www.visitdenmark.com/portal/ViewProductSearchResults.srv?marketId=1%3A29%3A91f7baf8ec2dbf9d0c15&targetGroupId=1%3A83%3A91f7baf8ec2dbfb28815f&siteCategoryId=1%3A79%3A91f7baf8ec2dbfd28332c&pagePoolId=1%3A57%3A91f7baf8ec2dc0e2bb10d9&RegionId=1%3A74%3A91f7baf8ec2ddf244654f&firstProductTypeId=1%3A72%3A91f7baf8ec2ddf85dff2f&firstFacilityRowId=1%3A12%3A91f7baf8ec2e0dbd3bbaa6&secondProductTypeId=1%3A72%3A91f7baf8ec2ddf861df4e&productTypeId=1%3A72%3A91f7baf8ec2ddf861df4e&name=&templateName=SpecialSearch&advanced=true&fg_1%3A13%3A91f7baf8ec2e1bdb006ada=&v_1%3A12%3A91f7baf8ec2e1bdd136b00_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3A91f7baf8ec2e1bddbf6b06_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3A91f7baf8ec2e1be5216b0c_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3A91f7baf8ec2e1be6a86b12_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3Aac100041ecae8da56c5ac_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3Aac100041ecae9016df5bc_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3Aac100041ecae9ccc9860f_1%3A106%3A91f7baf8ec2e1bdca66af7=&v_1%3A12%3A91f7baf8ec2e1be6f66b18_1%3A106%3A91f7baf8ec2e1bdca66af7=" target=_blank>Test</A>&nbsp;ttt</P>

Inde midt i dette link, kan du se parametret regionId, og jeg vil fastholde at den & lige foran ikke skal encodes, for så bliver &amp;regionId lige pludselig en del af det forrige parameters værdi, istedet for et parameter i sig selv med sin egen værdi.
Avatar billede sbm Nybegynder
23. januar 2004 - 23:32 #29
Jeg vil lige omformulere sætningen:

Jeg er udemærket godt klar over at browseren får det galt i halsen, hvis du "kun" skriver & og ikke encoder det til &amp;

til

Jeg er udemærket godt klar over at browseren får det galt i halsen, hvis den skal VISE et & på skærmen, og du "kun" skriver & og ikke encoder det til &amp;
Avatar billede sbm Nybegynder
23. januar 2004 - 23:42 #30
Jeg har kigget og kigget. Jeg kan kun få øje på en enkelt forekomst af regionid i den html der er vist i joch's indlæg, og den ligger i et anchor-tag.

Den vil jeg fastholde ikke skal encodes.

Hvis det selv samme link skal vises i browseren, så det rent faktisk skal læses af brugeren, og ikke "bare" kunne klikkes på, skal tegnet selvfølgelig encodes, som jeg også skrev i mine allerførste indlæg.

*suk* Hvor var det lige det her gik galt?
Avatar billede erikjacobsen Ekspert
23. januar 2004 - 23:48 #31
Man kan tænke sig til at jorden er flad, men har du prøvet at indsætte &amp; i stedet for & i et link, der står i en HTML-streng, og se hvad der sker. Og derefter prøve
hvad der egentlig er lovligt HTML med en HTML-validator?

Der er ingen forskel på almindelig tekst i et HTML-dokument, og en streng i HTML.
Begge skal HTML-encodes.

Jeg kan ikke forstå vi stadig diskuterer det, så jeg tror bare jeg hopper ud
af spørgsmålet.
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