Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Registreerimine märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
TrrT
HV vaatleja

liitunud: 19.04.2009




sõnum 10.07.2009 20:05:49 Registreerimine vasta tsitaadiga

Tere,

Kuidas keelata registreerimisel, et kasutajanimes ei saaks sümboleid ega numbreid kasutada ehk ainult tähti


Tänan
tagasi üles
vaata kasutaja infot saada privaatsõnum
Absona
Lõuapoolik
Lõuapoolik

liitunud: 17.09.2008




sõnum 10.07.2009 20:45:24 vasta tsitaadiga

Selleks on olemas regulaaravaldised. Natuke lugemist: http://en.wikipedia.org/wiki/Regular_expression.

Näide 1: {^[[:alpha:]]+$}
Näide 2: {^[A-Za-z]+$}
Näide 3 (kui tahad ka eesti tähti kasutada): {^[A-Za-züõöäÜÕÖÄ]+$}

Muidu kui kasutad C#, siis on selline lihtsam võimalus olemas aga koodiridu tuleb rohkem:


private static void valideerimine(string s)
{
  foreach(var c in s)
  {
     if (!char.IsLetter(c))
       // Viska mingi viga
     return s;
  }
}


C# kood kasutades regulaaravaldisi:

private static void reg_avaldis(var s)
{
    Regex regex = new Regex("^[a-zA-ZüõöäÜÕÖÄ]+$"); // Siia võid igasuguse mustri sisse kirjutada
    if (!regex.IsMatch(s))
       // Viska viga
    return s;
}


PHP's regulaaravaldise kasutamine

<?php
$string = 'mingi string';

    if(preg_match("/^[a-zA-ZüõöäÜÕÖÄ]+$/", $string))
    {
       echo 'Korras';
    }
    else
    {
        echo 'Natuke valesti läks';
    }
?>


Jne, võimalusi on sadu. Anna parem meile teada mis keeles tegutsed.

_________________
Veebilehed, veebiprogrammeerimine, veebilahendused
Erinevad rakendused ja skriptid.
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
TrrT
HV vaatleja

liitunud: 19.04.2009




sõnum 10.07.2009 22:25:40 vasta tsitaadiga

Mul üks nii

Parool ei tohi olla väiksem kui 3 tähte


} elseif ( strlen( $password1 ) < 3 ) {
echo "<font color=red>Parool liiga väike!<br></font>";
tagasi üles
vaata kasutaja infot saada privaatsõnum
Absona
Lõuapoolik
Lõuapoolik

liitunud: 17.09.2008




sõnum 10.07.2009 22:57:21 vasta tsitaadiga

TrrT kirjutas:
Mul üks nii

Parool ei tohi olla väiksem kui 3 tähte


} elseif ( strlen( $password1 ) < 3 ) {
echo "<font color=red>Parool liiga väike!<br></font>";


If ja else'dega ei tasu üldse jamada.
Mina lahendaksin selle probleemi niimoodi:


function reg_avaldis($tekstMidaKontrollida)
{
   if (preg_match("/^[a-zA-ZüõöäÜÕÖÄ]{3,}$/", $tekstMidaKontrollida)) { // Lubatud eesti tähestik, ja sümboleid peab olema rohkem kui kolm.
      return true;
   }
   else
       {
      return false;
   }
}

_________________
Veebilehed, veebiprogrammeerimine, veebilahendused
Erinevad rakendused ja skriptid.
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 10.07.2009 22:59:22 vasta tsitaadiga

Elseif'i/if'i boonus on see, et kasutaja saab täpsema veateate.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Absona
Lõuapoolik
Lõuapoolik

liitunud: 17.09.2008




sõnum 10.07.2009 23:20:44 vasta tsitaadiga

mikk36 kirjutas:
Elseif'i/if'i boonus on see, et kasutaja saab täpsema veateate.


Aga regulaaravaldistega saab ka selle välja võtta kui mingit üleliigset asja sisaldab, siis annab konkreetse vea (match'i kaudu saab välja võtta). Näiteks leiab numbri, tagastatakse viga, et leiti number. Leitakse punkt, tagastatakse viga, et üleliigne sümbol (või sisaldab numbrit ja punkti mõlemat - siis tuleb foreach/for tsükliga iga char läbi lapata, täpselt nagu tegin C# näites) jne.

Näiteks paned kogu asja tsüklisse, match'iga võtad illegaalse sümboli välja ja veateate kuvad niimoodi: |"Sellist {0} sümbolit pole lubatud paroolis!", keelatudSümbol[i]|

_________________
Veebilehed, veebiprogrammeerimine, veebilahendused
Erinevad rakendused ja skriptid.
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mark11
HV vaatleja

liitunud: 28.01.2006




sõnum 11.07.2009 09:38:49 vasta tsitaadiga

regulaaravaldisi tuleks kasutada ainult seal kus neid tegelikult vaja on, hetkelisel juhul pole vaja.

ctype_alpha()
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
AMD
HV veteran
AMD

liitunud: 29.07.2003




sõnum 11.07.2009 10:30:32 vasta tsitaadiga

Absona, kas C#'s võib tõesti funktsioon, mis on defineeritud kui private static void, midagi tagastada?

mark11, ctype_alpha'ga võib täpitähtedega jamasid tekkida.(vist icon_redface.gif )

_________________
From now on, the forum is owned by AMD.That means that you are NO LONGER allowed to talk about, or even mention *ntel.
Kommentaarid: 335 loe/lisa Kasutajad arvavad:  :: 145 :: 3 :: 12
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Absona
Lõuapoolik
Lõuapoolik

liitunud: 17.09.2008




sõnum 11.07.2009 12:55:02 vasta tsitaadiga

AMD kirjutas:
Absona, kas C#'s võib tõesti funktsioon, mis on defineeritud kui private static void, midagi tagastada?

mark11, ctype_alpha'ga võib täpitähtedega jamasid tekkida.(vist icon_redface.gif )


Minu viga, õige on nii private static string. See on see kui Intellisense'ga oled juba ära harjunud ja enam ei oska nii öelda "notepad" stiilis koodi kirjutada.

_________________
Veebilehed, veebiprogrammeerimine, veebilahendused
Erinevad rakendused ja skriptid.
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Negaal
HV vaatleja
Negaal

liitunud: 03.10.2008




sõnum 11.07.2009 13:02:31 vasta tsitaadiga


<?
    function validate($str){
        $len = strlen($str);
        for($i=0;$i<$len;$i++){
            $a = ord($str[$i]);
            if(!(($a>47 && $a<58) || ($a>64 && $a<91) || ($a>96 && $a<123))){
                return false;
            }
        }
        return true;
    }
   
    echo (validate('supppayee69')) ? 'Correct' : 'Incorrect';
    echo '<br />';
    echo (validate('supppa & yee')) ? 'Correct' : 'Incorrect';
?>


esimese puhul correct, teine incorrect. Aga ei tea kas kiirem kui regex..
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
TrrT
HV vaatleja

liitunud: 19.04.2009




sõnum 12.07.2009 01:17:08 vasta tsitaadiga

Kas keegi oskaks öelda, et kuidas siis see on icon_confused.gif


Tänan.
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga

sõnum 12.07.2009 03:53:12 vasta tsitaadiga

TrrT, no kui sa eelneva jutuga kaasa ei suuda mõelda siis tee teema töövahenduse alafoorumisse ja leia omale inimene kes selle vastava tasu eest ära teeb.
_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 12.07.2009 08:58:25 vasta tsitaadiga

tsitaat:
Kuidas keelata registreerimisel, et kasutajanimes ei saaks sümboleid ega numbreid kasutada ehk ainult tähti

Muide, siin on täpselt sinu tingimustele kood antud. Mõista mõista nüüd, kus see küll on?
On lubatud ainult tähed ja nimi ei tohi olla lühem kui 3 tähemärki.

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
TrrT
HV vaatleja

liitunud: 19.04.2009




sõnum 12.07.2009 19:50:30 vasta tsitaadiga

Nüüd kõik korras, ei pannud tähele seda.


Tänan ja võite teema kinni panna.
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Registreerimine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.