Avatar billede NielsErikP Mester
25. marts 2012 - 23:34 Der er 14 kommentarer og
1 løsning

"Capitalize" direkte input uden "CapsLock" ??

Hej...

Jeg har et input felt, hvor der skal intastes en kode, en CaptCha.

Findes der en måde at få input feltet til at angive store bogstaver under indatstningen, selvom der tastes uden "CapsLock" på.

Håber der er en med lidt viden.

På Forhånd tak!!
Avatar billede olsensweb.dk Ekspert
25. marts 2012 - 23:58 #1
jeg tror du skal lave det i js http://javascript.bigresource.com/Convert-LowerCase-to-UpperCase-while-Typing-2Bhedz2j.html

i php findes der en function der hedder strtoupper , men der har du jo allerede sendt siden til serveren
Avatar billede Slettet bruger
26. marts 2012 - 12:23 #2
Ellers kan man bruge en kombination af CSS og PHP..
Når man submitter formularen så brug PHP's strtoupper()-funktion, som @ronols nævner, på dataen.
Og så brug CSS' text-transform: uppercase på indtastningsfeltet.
Avatar billede olsensweb.dk Ekspert
26. marts 2012 - 14:18 #3
#2 nok en pænere løsning
Avatar billede Slettet bruger
26. marts 2012 - 14:51 #4
Det ved jeg ikke helt om den er...
Den ændre jo kun det visuelle, ikke hvad der faktisk står, hvilket en JS-løsning vil kunne opnå.

Men det en simpel løsning, hvis man kun validerer server-side og det ikke har nogen reel betydning hvordan det står i formularen.
Avatar billede olebole Juniormester
26. marts 2012 - 16:51 #5
<ole>

Da det er ligegyldigt, hvad der står i feltet, bør man ikke forvirre brugeren. Konverter indholdet til store bogstaver på serveren - og valider derefter, om strengen er, som forventet

/mvh
</bole>
Avatar billede olebole Juniormester
26. marts 2012 - 16:53 #6
- at det så giver langt større sikkerhed at skelne mellem store og små bogstaver, er en helt anden sag  *o)
Avatar billede NielsErikP Mester
26. marts 2012 - 21:21 #7
Hej..

@ronols: prøvede dette fra dit link i #1 :



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
       
<html>
<head>
    <title> UpperCase Indtastning </title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
   
<script language="javascript" type="text/javascript">
function pulsar(e,obj) {
tecla = (document.all) ? e.keyCode : e.which;
//alert(tecla);
if (tecla!="8" && tecla!="0"){
obj.value += String.fromCharCode(tecla).toUpperCase();
return false;
}else{
return true;
}
}
</script>

</head>
<body>
    <form action="#">
            <input type="text" onkeypress="return pulsar(event,this)">
    </form>   
</body>
</html>



fungerer jo egentligt efter hensigten, skal så bare lige have de implementeret i mit script.

@olebole: Det du siger er det at bruge strtoupper .. kan jeg godt følge, men min Captcha er gengivet i ene store bogstaver og har fået melding om en der har prøvet at lægge indlæg som ikke blev sat ind... Og hvem gider skrive en hel hilsen om og om igen... lidt derfor jeg søgte at få det lavet sådan at forbipasserene var fri for det.


@roxki: #2.. Du mener kører strtoupper på indtastningen, ligeledes på min $_SESSION inden sammenligning.
Avatar billede olsensweb.dk Ekspert
26. marts 2012 - 21:44 #8
her er bække løsninger samlet, med 2 input felter, samt hvordan de kan/skal behandles serverside
tested med også æøå

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title></title>
    <style type="text/css">
    #roxki{
        text-transform: uppercase;
    }
    </style>
    <script type="text/javascript">
    function pulsar(e,obj) {
        tecla = (document.all) ? e.keyCode : e.which;       
        if (tecla!="8" && tecla!="0"){
            obj.value += String.fromCharCode(tecla).toUpperCase();
            return false;
        }
        else{
            return true;
        }
    }
    </script>
</head>
<body>
<form method="POST" action ="test.php">
<input id="roxki" name="roxki" type="text">
<input id="ronols" name="ronols" type="text" onkeypress="return pulsar(event,this)">
<input name="send" type="submit" >
</form>
</body>
</html>


test.php

<?php
echo mb_strtoupper ($_POST['roxki'],  'UTF-8');
echo $_POST['ronols']
?>


men som ole skriver begrænser du dine Captcha muligheder
Avatar billede NielsErikP Mester
26. marts 2012 - 21:54 #9
Hej...
Ser fint ud ronols , kigger jeg lige lidt på, men jeg må jo hellere spørge ole.

@olebole:... #6: noget forslag til, hvordan man griber det an??
Avatar billede olsensweb.dk Ekspert
26. marts 2012 - 22:05 #10
jeg vil da klart anbefale at du ikke begrænser din Captcha til kun store bogstaver, og dropper det JS og CSS her i tråden, og sammenligner det indtasted med din referance serverside.
så deri er her 100% enige med #6

hvad sætter du højest, din sikkerhed eller brugernes bekvemlighed ??
Avatar billede NielsErikP Mester
26. marts 2012 - 22:17 #11
Hej..

Jamen det gør jeg jo min sikkerhed...men der har vel samtidig aldrig været noget i vejen med lidt bruger venlighed, vel?

Jeg tager dit råd til mig, ronols... Ved jo ole ikke er smaler "Smiler".. Så pointene må vel gå til dig ronols, gider du lige smide et svar.
Avatar billede olsensweb.dk Ekspert
26. marts 2012 - 22:26 #12
det må være en deler med roxki

@roxki smid et svar også
Avatar billede olsensweb.dk Ekspert
26. marts 2012 - 22:41 #13
du kunne jo også bare lade brugeren skrive med case han ønsker, og se dette, og bare convaterer til uppercase serverside med mb_strtoupper.
så har du halveret sikkerhed og fejl mulighederne, uden brugeren opdager det

så drop det js og css code her i tråden og bare gør dette
$userinput = mb_strtoupper ($_POST['roxki'],  'UTF-8');
serverside
Avatar billede Slettet bruger
26. marts 2012 - 23:00 #14
Du nupper dem bare @ronols.
Jeg overlever forhåbenligt uden :-)
Avatar billede NielsErikP Mester
26. marts 2012 - 23:25 #15
Hej...

Tak til jer alle!!
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