Avatar billede koden12 Nybegynder
31. januar 2004 - 16:55 Der er 14 kommentarer og
1 løsning

COPY PASTA dur ikke ?

Jeg har en almindelig asp kode der med post sætter nogle ting fra nogle tekst og tekstarea tabeller ind i en access tabel .. det går også helt fint ... hvis jeg skriver det ... MEN... hvis jeg bruger noget copy med ctrl C  og ctrl V  , så fjeler den ? hvorfor er det sådan ? tekst er vel tekst ? eller hvad ?
Jeg har været ude for det samme med php så det må være noget generelt fejl..
Har nogle en løsning ? og meget gerne en forklaring ?
Der gives point for en løsning : )

VH
Koden12
Avatar billede steen Nybegynder
31. januar 2004 - 23:27 #1
Kan du komme med lidt flere detaljer...

/Steen
Avatar billede koden12 Nybegynder
31. januar 2004 - 23:43 #2
<td align="center">
<textarea  name="som" rows="10" cols="30"></textarea>

******
dim som
OSV
Men da jeg har brugt COPY PASTA til at sætte det ind i <textarea name="som"  osv
så kommer det ikke ind i databasen ?

Jeg har leget lidt med et JavaScript men det virkede kun en gang ? mærkeligt ?




<script language="JavaScript">
<!--
function AllowTabCharacter() {
if (event != null) {
if (event.srcElement) {
if (event.srcElement.value) {
if (event.keyCode == 9) {  // tab character
if (document.selection != null) {
document.selection.createRange().text = '\t';
event.returnValue = false;
}
else {
event.srcElement.value += '\t';
return false;
              }
            }
          }
      }
  }
}
--->
</script>

Jeg kan ikke komme det nærmere

VH
koden12
Avatar billede nmh Nybegynder
01. februar 2004 - 12:55 #3
Mon ikke dit problem er, at du får indsat tekst, som indeholder "usædvanlige" tegn.
Når du siger, at det fejler, så er det vel ikke hver gang det går galt?
Prøv at komme med et eksempel på noget tekst, hvor det går galt.
Avatar billede koden12 Nybegynder
01. februar 2004 - 13:42 #4
Ja men det er nemt for jeg satte denne kode ind :

<script language="JavaScript">
<!--
function AllowTabCharacter() {
if (event != null) {
if (event.srcElement) {
if (event.srcElement.value) {
if (event.keyCode == 9) {  // tab character
if (document.selection != null) {
document.selection.createRange().text = '\t';
event.returnValue = false;
}
else {
event.srcElement.value += '\t';
return false;
              }
            }
          }
      }
  }
}
--->
</script>

Så fejlede den..

VH
koden12
Avatar billede nmh Nybegynder
01. februar 2004 - 19:24 #5
Jeg er ikke helt med.
Jeg troede dit problem var, at ting indsat i en tekstbox ikke blev gemt i din database.
Du har anbragt spørgsmålet under asp, men er det i virkeligheden et javascript-problem?

Hvad er formålet med din funktion AllowTabCharacter?

(jeg er ikke JavaScript-ekspert)

Hvordan får du funktionen aktiveret?
Hvordan fejler den?
Avatar billede koden12 Nybegynder
01. februar 2004 - 21:19 #6
Jeg har snakket med en ekspert og du har ret , det er et "tegn" problem, access læser tegnene og  stopper.

VH
koden12
Avatar billede nmh Nybegynder
01. februar 2004 - 21:52 #7
Men så kan du blot sørge for at fjerne alle de ulovlige tegn, inden du gemmer i din access-database.
Er du interesseret i en rutine, der f.eks. fjerner alle tegn med ascii-nummer mindre end 32 med mindre det er tegn 13 og tegn 10?
Avatar billede koden12 Nybegynder
01. februar 2004 - 22:01 #8
Meget intresseret : )  Tak, for sådan kan jeg ikke lave (eller gider ikke : )
Send med et svar

VH
koden12
Avatar billede nmh Nybegynder
01. februar 2004 - 22:12 #9
Du skal i din asp-side tilføje følgende funktion:
function fjerntegn(s)
  dim t, n, ch
  n=len(s)
  for i=1 to n
    ch=mid(s,i,1)
    if asc(ch)>31 then
      t=t & ch
    elseif ch=chr(10) or ch=chr(13) then
      t=t & ch
    end if
  next
  fjerntegn=t
end function

Hvis din tekst er gemt i tekststrengen txt, vil ordren

txt=fjerntegn(txt)

sørge for, at tekststrengen txt nu kun inddeholder helt sædvanlige tegn samt linieskift.
Avatar billede koden12 Nybegynder
01. februar 2004 - 22:51 #10
Hvordan bliver den Stratet ?
Avatar billede nmh Nybegynder
02. februar 2004 - 09:51 #11
Jeg har forstået, at du har en asp-kode, der henter data fra nettet via post.
I den kode er der en ordre af typen

txt=Request.form("tekstområde")

Her er tekstfelt navnet på det tekstområde, hvor teksten indsættes af brugeren, og det er åbenbart her, problemerne opstår.

Hvis du nu skriver txt=fjerntegn(txt) lige efter ordren
txt=Request.form("tekstområde")
så vil alle uheldige tegn blive fjernet.

Du kan vise noget af asp-koden her, så kan jeg præcist fortælle dig, hvor du skal ændre.
Avatar billede koden12 Nybegynder
02. februar 2004 - 13:34 #12
Ja men det er bare sådan en helt almindelig en. :

<tr>
<td align="center">
<b>
<font face="Arial" size="2">
Bruges Som:
</td>
</tr>
<tr>
<td align="center">
<textarea  name="brugessom" rows="10" cols="30"></textarea>

************

if brugessom="" then brugessom=Cstr(Request.Form("brugessom"))


Den virker OK jeg satte den oppe i HEAD men den fjerne alt ? : )

VH
koden12
Avatar billede nmh Nybegynder
02. februar 2004 - 14:26 #13
Du skriver
"Den virker OK jeg satte den oppe i HEAD men den fjerne alt ?

Hvad satte du op i head?

Du har en asp-side, hvor et VBscript-program er placeret i mellem tegn af form <% og %>.

Det er den side, der står som action i den form, der sender de indtastede data til serveren.

Det er her funktionen fjerntegn skal placeres.

Det er den variable brugessom, der skal "renses".

Det sker således:
brugessom=fjerntegn(brugessom)
Avatar billede koden12 Nybegynder
02. februar 2004 - 15:59 #14
OK

Tak

VH
koden12
Avatar billede nmh Nybegynder
02. februar 2004 - 21:19 #15
Selv tak. Du skal endelig ikke holde dig tilbage, hvis du har flere spørgsmål. Og jeg vil da gerne høre, om du nu får klaret dit problem.
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