Avatar billede dero Nybegynder
19. april 2005 - 15:11 Der er 34 kommentarer og
1 løsning

Tjekke om der er et ord på over 25 tegn

Hey. Er det muligt at lave et tjek om der er et ord på over 25 tegn i feltet "besked" ??
Avatar billede barklund Nybegynder
19. april 2005 - 15:14 #1
Ja, men i hvilken forbindelse? Har du i forvejen et script, der tjekker nogle ting inden du submitter?
Avatar billede thesurfer Nybegynder
19. april 2005 - 15:21 #2
Noget i stil med:

txt = document.FormensNavn.TekstFeltetsNavn.value;
txt = txt.Split(" ");

for (i=0; i<txt.length;i++)
  if (txt[i].length > 25) {
    // ordet er over 25 tegn langt
  }
}
Avatar billede dero Nybegynder
19. april 2005 - 15:25 #3
Jeg bruger allerede denne her:

<script language="JavaScript">
function Check() {
    if (document.post.navn.value == "") {
      alert("Du skal skrive dit navn");
      return false;
    }
    if (document.post.overskrift.value == "") {
      alert("Du skal skrive en overskrift");
      return false;
    }
    if (document.post.besked.value == "") {
      alert("Du skal skrive en besked");
      return false;
    }
   
    if(document.getElementById('navn').value.toLowerCase().indexOf('admin') > -1) {
    var password = prompt("Adgangskode:", "");
    if (password == "---") {
    var login = "rigtig";
    }
    else {
    alert("Forkert password - Du kan kun kalde dig admin med et password");
    return false;
    }
  }

Kan jeg bare sætte den overstående ind i det?
}
Avatar billede barklund Nybegynder
19. april 2005 - 15:28 #4
<script type="text/javascript">
function Check() {
    if (document.post.navn.value == "") {
      alert("Du skal skrive dit navn");
      return false;
    }
    if (document.post.overskrift.value == "") {
      alert("Du skal skrive en overskrift");
      return false;
    }
    if (document.post.besked.value == "") {
      alert("Du skal skrive en besked");
      return false;
    }
    // tjek ordlængder
    var txt = document.post.besked.value.split(" ");
    for (i=0; i<txt.length;i++)
      if (txt[i].length > 25) {
        alert("Ikke sådanne lange ord - tror du at du er på universitetet?");
        return false;
      }
    }
    if(document.getElementById('navn').value.toLowerCase().indexOf('admin') > -1) {
      var password = prompt("Adgangskode:", "");
      if (password == "---") {
        var login = "rigtig";
      }
      else {
        alert("Forkert password - Du kan kun kalde dig admin med et password");
        return false;
      }
    }
  }
</script
Avatar billede thesurfer Nybegynder
19. april 2005 - 15:30 #5
Hvad skal der ske, hvis ordet er over 25 tegn?

<script language="JavaScript">
function Check() {

    if (document.post.navn.value == "") {
      alert("Du skal skrive dit navn");
      return false;
    }
    if (document.post.overskrift.value == "") {
      alert("Du skal skrive en overskrift");
      return false;
    }
    if (document.post.besked.value == "") {
      alert("Du skal skrive en besked");
      return false;
    }

        txt = document.post.besked.value;
        txt = txt.Split(" ");

        for (i=0; i<txt.length;i++)
          if (txt[i].length > 25) {
            // ordet er over 25 tegn langt
                alert("ordet er over 25 tegn langt");
                return false;
          }
        }
   
    if(document.getElementById('navn').value.toLowerCase().indexOf('admin') > -1) {
    var password = prompt("Adgangskode:", "");
    if (password == "---") {
    var login = "rigtig";
    }
    else {
    alert("Forkert password - Du kan kun kalde dig admin med et password");
    return false;
    }
  }
Avatar billede barklund Nybegynder
19. april 2005 - 15:31 #6
Okay, jeg snød og klippe-klistrede bare :)
Avatar billede thesurfer Nybegynder
19. april 2005 - 15:33 #7
Hvis du bruger onsubmit="Check()", kan du bruge onsubmit="Check(this)"..
Så kan du bruge "function Check(f) {" og derefter erstatte "documnet.post" med "f":

"f.navn.value", "f.overskrift.value", osv..
Avatar billede barklund Nybegynder
19. april 2005 - 15:33 #8
Har du dit admin-kodeord liggende dit javascript? Det er sgu ikke for smart :/
Avatar billede thesurfer Nybegynder
19. april 2005 - 15:34 #9
barklund> hehe.. smilede også da jeg så det.. men det er en god kode.. så'n da.. :-)
Avatar billede dero Nybegynder
19. april 2005 - 15:44 #10
He he... Det er bare sådan så folk ikke lige skriver Admin i deres navn.. Men kan ikke finde ud af at kryptere i javascript, og ellers så skal jeg tjekke i php, det gider jeg ikke.. :-)

Men jeg kan ikke helt forstå det sidste.. Hele mit script ser nu sådan her ud (men den komemr en fejl);

<script language="JavaScript">
function Check() {
    if (document.post.navn.value == "") {
      alert("Du skal skrive dit navn");
      return false;
    }
    if (document.post.overskrift.value == "") {
      alert("Du skal skrive en overskrift");
      return false;
    }
    if (document.post.besked.value == "") {
      alert("Du skal skrive en besked");
      return false;
    }
    if(document.getElementById('navn').value.toLowerCase().indexOf('admin') > -1) {
        var password = prompt("Adgangskode:", "");
    if (password == "lol") {
    var login = "rigtig";
    }
    else {
    alert("Forkert password - Du kan kun kalde dig admin med et password");
    return false;
    }
  }
    var txt = document.post.besked.value.split(" ");
        for (i=0; i<txt.length;i++)
          if (txt[i].length > 25) {
            // ordet er over 25 tegn langt
                alert("Ikke sådanne lange ord - tror du at du er på universitetet? Max 25 tegn i samme ord!");
                return false;
          }
        }
function makeBold() {
sT = document.selection.createRange();
sTxt = sT.text;
if(!sTxt.length > 0) { return( false); }
sT.text = "[B]" + sTxt + "[/B]";
}

function makeItalic() {
sT = document.selection.createRange();
sTxt = sT.text;
if(!sTxt.length > 0) { return( false); }
sT.text = "[I]" + sTxt + "[/I]";
}

function makeLink() {
sT = document.selection.createRange();
sTxt = sT.text;
if(!sTxt.length > 0) { return( false); }
sT.text = "[url=]http://" + sTxt + "[Link]" + sTxt + "[/Link]";
}
</script><table width="330" cellspacing="0" cellpadding="1">
<form method="post" action="../sider/forum/func.php?function=reply&id=<? echo "$id" ?>" name="post" onsubmit="return Check()">
<tr>
<td width="165">Navn: <input type="text" name="navn" value="<? echo "$c_navn"; ?>" style="width: 119px"></td>
<td width="165">Email: <input type="text" name="email" value="<? echo "$c_email"; ?>" style="width: 119px"></td>
</tr><tr>
<td width="330" colspan="2">
    <table border="0" cellpadding="0" cellspacing="0">
    <tr>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':7:'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/smiley-supermad.gif" width="33" height="31"></td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+'@-)'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/rolleyes.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+'/star'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/star.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+'/bad'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/thumbdown.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+'/great'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/thumbup.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+'/sick'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/smiley.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':||'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/angry.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+'8-0'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/eek.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+'|-I'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/sleep.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':-)'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/smiley.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':4:'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/smiley-fuck.gif" width="37" height="21"></td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':9:'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/smilie-bowdown.gif" width="27" height="22"></td>
</tr><tr>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':-0'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/terrefied.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':-p'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/tongue.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+'8-)'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/cool.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':-D'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/biggrin.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+';-)'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/wink.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':-('; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/frown.gif" align="middle">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':1:'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/smile_new_evil.gif" width="20" height="19">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':2:'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/smiley-confused.gif" width="15" height="22">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':3:'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/smiley-evil.gif" width="15" height="15">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':6:'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/smiley-mad.gif" width="16" height="16">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':5:'; post.besked.value = tilfoej;" valign="bottom" align="center"><img src="sider/forum/img/smiley-jul.gif" width="21" height="24">&nbsp;</td>
<td class="overskrift3" style="cursor: pointer" onclick="var tilfoej=post.besked.value+':8:'; post.besked.value = tilfoej;" valign="bottom" align="right"><img src="sider/forum/img/smiley-thombup.gif" width="25" height="18">&nbsp;</td>
</tr>
    </table>
  <table border="0" cellpadding="0" cellspacing="0">
    <tr>
      <td><input type='button' value='Link' onClick="makeLink()"> <input type='button' value='Kursiv' onClick="makeItalic()"></td>
    </tr>
    <tr>
      <td class="menu">Mærker teksten og tryk derefter på knappen</td>
    </tr>
  </table>
<textarea name="besked" rows="7" style="width: 324px"></textarea><br>
<input type="submit" name="send" value="Send">
<input type="checkbox" name="cookie">Gem navn og email.
</td></tr>
</table>
</form>
Avatar billede dero Nybegynder
19. april 2005 - 15:45 #11
Hov.. Ser vidst lidt rodet ud.. Men Hvad skal jeg gøre? :-)
Avatar billede thesurfer Nybegynder
19. april 2005 - 15:47 #12
Du mangler "}" lige efter ")" i FOR-linien:
        for (i=0; i<txt.length;i++)
          if (txt[i].length > 25) {

Næste gang: Skriv hvilken fejl du får, og hvilken linie.
Avatar billede thesurfer Nybegynder
19. april 2005 - 15:50 #13
Rettelse: "{" og ikke "}" ..
Avatar billede thesurfer Nybegynder
19. april 2005 - 15:52 #14
Du har sgu flyttet koden uden for funktionen..! Hvorfor har du flyttet koden?
Avatar billede dero Nybegynder
19. april 2005 - 15:52 #15
Øhhh.. Skal den se sådan her ud?

    var txt = document.post.besked.value.split(" ");
        for (i=0; i<txt.length;i++)}
          if (txt[i].length > 25) {
            // ordet er over 25 tegn langt
                alert("Ikke sådanne lange ord - tror du at du er på universitetet? Max 25 tegn i samme ord!");
                return false;
          }

p.s. Hvordan kan jeg se i hvilken en linie der er fejl?
Avatar billede dero Nybegynder
19. april 2005 - 15:54 #16
hov..

Sådan så?

function Check() {
    if (document.post.navn.value == "") {
      alert("Du skal skrive dit navn");
      return false;
    }
    if (document.post.overskrift.value == "") {
      alert("Du skal skrive en overskrift");
      return false;
    }
    if (document.post.besked.value == "") {
      alert("Du skal skrive en besked");
      return false;
    }
    if(document.getElementById('navn').value.toLowerCase().indexOf('admin') > -1) {
        var password = prompt("Adgangskode:", "");
    if (password == "lol") {
    var login = "rigtig";
    }
    else {
    alert("Forkert password - Du kan kun kalde dig admin med et password");
    return false;
    }
  }
    var txt = document.post.besked.value.split(" ");
        for (i=0; i<txt.length;i++){
          if (txt[i].length > 25) {
            // ordet er over 25 tegn langt
                alert("Ikke sådanne lange ord - tror du at du er på universitetet? Max 25 tegn i samme ord!");
                return false;
          }
        }
    }
Avatar billede thesurfer Nybegynder
19. april 2005 - 15:54 #17
Se lige 19/04-2005 15:50:42 og 19/04-2005 15:52:20.
Hvis du bruger skod-browsere Internet Explorer, skal du bare kigge i advarsels-popup-boksen.. hvis den ikke kommer frem, dobbelklik på en gule trekant nederes til venstre.
Avatar billede dero Nybegynder
19. april 2005 - 15:58 #18
Jeg har rettet det med {.. Men hvorfor er den uden for funktionen? Den er da indenfor ikke?
Avatar billede thesurfer Nybegynder
19. april 2005 - 16:00 #19
Nej,det er den ikke, fordi du har et ektra "}" her:

    alert("Forkert password - Du kan kun kalde dig admin med et password");
    return false;
    }
  }

Der skal kun være 1x "}" i det område..
Avatar billede dero Nybegynder
19. april 2005 - 16:02 #20
Men den er da for at lukke den i;

if(document.getElementById('navn').value.toLowerCase().indexOf('admin') > -1) {
Avatar billede thesurfer Nybegynder
19. april 2005 - 16:05 #21
Havde ikke set slutningen af den linie.. sorry mate :-)
Har du stadig problemer? Hvis ja, hvilken fejl + linie?
Avatar billede dero Nybegynder
19. april 2005 - 16:09 #22
tP is not defined - 34

document.post.overskrift has no properties - 244
Avatar billede dero Nybegynder
19. april 2005 - 16:10 #23
siden er her; men det virker slet ikke som om den køret tjekket... For den tjekker heller ikke efter Admin mere..

http://www.downloading.dk/index.php?include=forum/read&id=37
Avatar billede thesurfer Nybegynder
19. april 2005 - 16:17 #24
"tP" findes ikke.. Du har fjernet feltet "overskrift"..
Avatar billede dero Nybegynder
19. april 2005 - 16:19 #25
hov! det var sku min fejl!! havde kommet til at sætte et ekstra tjek ind.. Sorry mate!!

Vil du ikke skrive et lille svar?

1000 tak!!
Avatar billede thesurfer Nybegynder
19. april 2005 - 16:19 #26
Prøv med document.getElementById("tP"):  document.getElementById("tP").innerText=eval(oT);

Ellers, skal du først definere: tP = document.getElementById("tP");

Du bruger nemlig tP.innerText=eval(oT) og den ved ikke hvad tP er..
Avatar billede thesurfer Nybegynder
19. april 2005 - 16:20 #27
jada :-)
Det var da så lidt :-)
Avatar billede dero Nybegynder
19. april 2005 - 16:33 #28
Thanks a lot! :-)
Avatar billede thesurfer Nybegynder
19. april 2005 - 16:33 #29
Og takker for points :-)
Avatar billede olebole Juniormester
19. april 2005 - 22:57 #30
<ole>

"Men kan ikke finde ud af at kryptere i javascript, og ellers så skal jeg tjekke i php, det gider jeg ikke"

Vil det sige, du smilende og glad tillader dine brugere at slette din database? Validerer du ikke brugerinput på serveren, kan du næsten ligeså godt skrive MySQL brugernavn og adgangskode på sitet  :)

Al JavaScript-validering er til for brugerens skyld - men der er nada sikkerhed i det.
Hvis du til gengæld ikke validerer input til _alle_ inserts og/eller updates af DB'en, lader du den stå åben som en ladeport og behøver kun læne dig tilbage og vente på, en ubehagelig bruger sletter hele databasen  ;o)

/mvh
</bole>
Avatar billede dero Nybegynder
19. april 2005 - 23:00 #31
Nej nej..

Det er bare et script som skulle gøre så folk ikke kunne skrive Admin i deres forum navn... Der er slet ingen sammenhæng med noget andet...

Men nu har jeg også fået krypteret det med md5 :-)
Avatar billede olebole Juniormester
20. april 2005 - 00:18 #32
Jomen, på serveren checker du vel alligevel, at strengen, der indeholder brugernavnet, kun indeholder forventede tegn - og ikke noget, der kan skade din database. Så er det jo ikke noget problem at checke for 'Admin' også.
Det var bare det, jeg mente  :)
Avatar billede dero Nybegynder
21. april 2005 - 17:08 #33
øhh. Hvad tjekker jeg efter? Jeg tror da ikke jeg tjekker efter noget :-(
Avatar billede olebole Juniormester
21. april 2005 - 17:15 #34
Nej, det anede mig ... og så er det, du blotter din database  ;o)

Bruger-input, der skal indsættes i og/eller opdatere en DB, skal checkes grundigt for, at indholdet også svarer til det forventede. Ellers risikerer du SQL-injection ... og det er ikke en rar sag at vågne op til en tom DB. Så ærger man sig over, hvad man ikke gad  :)
Avatar billede dero Nybegynder
21. april 2005 - 17:25 #35
Men hvordan skal man tjekke? Er det nogle online artikler om det eller noget?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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