Avatar billede Ulrich Seniormester
16. august 2021 - 21:30 Der er 5 kommentarer

Response.Write skriv på skærm ændre sig.

Hej
Jeg har en Do while loop som skriver på skærmen.
Men efter præcis 510 gennemløb bliver det hele skrevet i en lang linje, som om den ser bort fra <br>
Er der nogen der kan sige mig hvorfor?
Kode her under er lidt forenklet, men det er syntax, og efter 510 gennemløb bliver udskrift anderledes. Altså fra 511 og frem bliver hvert gennemløb skrevet i en lang linje.

<%
Do while not data.EOF
Response.Write("Mail adresse er fundet og mail er sendt til: " & navn) & "<br>"
AntalSendt=AntalSendt+1
Response.Write data("Fornavn") & " " & data("Efternavn") & "<br>"
Response.Write data("Adresse") & "<br>"
Response.Write data("PostNummer") & " " & data("ByNavn") & "<br>"
Response.Write "Medlemsnummer: " & data("Medlemsnummer") & "<br>"
Response.Write AntalSendt & " stk. E-mail er sendt." & "<br>"
Response.Write "Tid: " & Now() & "<br><br>"
data.movenext
%>
Avatar billede mitbrugernavn Praktikant
17. august 2021 - 06:37 #1
Tjek post 510 og 511 - noget tyder på der er tegnsætning der får koden til at knække.
Avatar billede erikjacobsen Ekspert
17. august 2021 - 08:10 #2
ASP er noget gammelt bras, men derfor kan man jo godt gøre det rigtigt. Man må aldrig bare skrive en tekst ud på en HTML-side. Sådan en tekst kan indeholde tegn, der tolkes som HTML, og som i bedste fald bare får tingene til at se forkerte ud, eller som i værste fald kan bruges til et angreb.

Derfor bør alle alarmklokker ringe, når man ser en linje som:

    Response.Write data("Adresse") & "<br>"

Indrømmet, det så man tit i vejledninger for mange år siden. Men det er så forkert som det kan være. I gammeldags ASP skal det være:

    Response.Write Server.HTMLEncode(data("Adresse")) & "<br>"

som sørger for at der ikke kommer tegn ud, som kan tolkes som HTML. F.eks. bliver tegnet  <  lavet om til &lt;

Og der skal selvfølgelig Server.HTMLEncode(...) rundt om alle dine tekstfelter.

Du kan læse mere om det på https://www.w3schools.com/asp/met_htmlencode.asp  (man kan ikke stole 100% på alt hvad w3schools skriver, men det her er ok)
Avatar billede Ulrich Seniormester
17. august 2021 - 23:59 #3
Hej mitbrugernavn

Det er ikke det der er galt. Hvis jeg sætter flere linjer ind er det fortsat ved 510 og frem det fejler. Det samme er hvis jeg fjerne poster, fortsat ved 510 og frem.
Nogen anden ide?
Avatar billede mitbrugernavn Praktikant
18. august 2021 - 08:54 #4
Hvad med post 510 ??  - har du prøvet Erik Jacobsens forslag 👍👍
Avatar billede Ulrich Seniormester
18. august 2021 - 09:11 #5
Hvis jeg fjerner alt indhold og kun laver et enkelt karakter, sker det stadigvæk.
Så det er ikke indholdet der bliver skrevet ud der gør det.
Hvis jeg sætter flere eller færre poster ind, er det stadig ved 510 det sker, så der flytter jeg også evt. poster der skulle kunne drille.
Ja jeg har prøvet Eriks forslag ved alle Response.Write, det hjælper ikke.
Mystisk....
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

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