Avatar billede metza Nybegynder
05. marts 2004 - 20:20 Der er 7 kommentarer og
3 løsninger

arrays som skal bruges til check

Hejsa
er fuldstændig nybegynder i dette her og leger med noget login
Jeg vil bruge nogle arrays til at checke om der eksisterer en bruger og hvis han eksisterer går den så videre til password.
Alt virker fint med undtagelse af at jeg ikke kan få hevet værdierne ud af de arrays jeg specificerer i toppen af min Sub.

Sub login()
    Const s_password As String = "pass"
    Dim count As Integer
    Dim brugere(5) As String
        brugere(0) = "jajaj"
        brugere(1) = "jens"
        brugere(2) = "jørgen"
        brugere(3) = "jeppe"
        brugere(4) = "julle"
        brugere(5) = "ejnar"

****** HERUNDER VIL JEG HOLDE MIN INPUTBOX OP IMOD***************
****** DE ARRAYS JEG SPECIFICEREDE OVENOVER *********************



Do

    input_user = InputBox("Indtast brugernavn", "Brugernavn")
        If input_user = ******HVAD SKAL DER STÅ HER**** Then
       
        Next
              count = 0
        Do

      input_pass = InputBox("Indtast dit kodeord", "Password")
              If input_pass = s_password Then
                  MsgBox "Velkommen " & input_user
                    count = 4
                Else
                    count = count + 1
                End If
          Loop Until count >= 3
        Else
            count = count + 1
        End If
  If count = 3 Then
      MsgBox "Du har forsøgt for mange gange", vbCritical
  End If
Loop Until count >= 3
End Sub
Avatar billede metza Nybegynder
05. marts 2004 - 20:23 #1
under ""If input_user = ******HVAD SKAL DER STÅ HER**** Then""
står der ""next"" ... det må i gerne se bort fra da det er nogle rester af det jeg selv prøvede ... Havde en ide om at jeg kunne smide det ind i en for løkke ... men nej
Avatar billede nmh Nybegynder
05. marts 2004 - 20:33 #2
Du skal vel både have et array af brugernavne og et array af password.
Det, der skal ske, er vel, at når brugernavnet er indtastet, skal det findes i tabellen af brugere. Derefter skal brugerens password hentes og sammenlignes med det password, der er knytte til den pågældende bruger.

Jeg er nødt til at smutte nu, men kommer igen senere iaften (ret sent).
Så har jeg et forslag til dig.
Avatar billede metza Nybegynder
05. marts 2004 - 20:38 #3
Ja brugerne skal også have et password, som det er nu har jeg bare specificeret en constant med password som alle bruger men det holder naturligvis ikke.

Ser frem til at du kommer tilbage :)
Avatar billede sjh Nybegynder
05. marts 2004 - 21:54 #4
Her er den du selv har gang i..

Public Sub Login()
Dim i As Integer
Dim strUser As String
Dim strPass As String
Dim blnLogin As Boolean
Dim intCount As Integer
Dim arrBrugere(5) As String

Const strDefPass As String = "pass" '<- password for alle bruger

  arrBrugere(0) = "jajaj"
  arrBrugere(1) = "jens"
  arrBrugere(2) = "jørgen"
  arrBrugere(3) = "jeppe"
  arrBrugere(4) = "julle"
  arrBrugere(5) = "ejnar"

  Do

    strUser = InputBox("Indtast brugernavn", "Brugernavn")
    strPass = InputBox("Indtast dit kodeord", "Password")

    For i = 0 To 5
      If strUser = arrBrugere(i) And strPass = strDefPass Then
        blnLogin = True
        Exit For
      End If
    Next

    If blnLogin Then
      intCount = 4
        Else
      intCount = (intCount + 1)
    End If

  Loop Until intCount >= 3

  If blnLogin Then
    MsgBox "Du er nu logget ind."
      Else
    MsgBox "Du har indtastede forkert brugernavn eller kodeord."
  End If

End Sub
Avatar billede sjh Nybegynder
05. marts 2004 - 21:55 #5
Her er så en med både brugernavn og password..

Public Sub Login()
Dim i As Integer
Dim strUser As String
Dim strPass As String
Dim blnLogin As Boolean
Dim intCount As Integer
Dim arrAdgang(5) As String
Dim arrBrugere(5) As String

  arrBrugere(0) = "jajaj"
  arrBrugere(1) = "jens"
  arrBrugere(2) = "jørgen"
  arrBrugere(3) = "jeppe"
  arrBrugere(4) = "julle"
  arrBrugere(5) = "ejnar"

  arrAdgang(0) = "pjajaj"
  arrAdgang(1) = "pjens"
  arrAdgang(2) = "pjørgen"
  arrAdgang(3) = "pjeppe"
  arrAdgang(4) = "pjulle"
  arrAdgang(5) = "pejnar"

  Do

    strUser = InputBox("Indtast brugernavn", "Brugernavn")
    strPass = InputBox("Indtast dit kodeord", "Password")

    For i = 0 To 5
      If strUser = arrBrugere(i) And strPass = arrAdgang(i) Then
        blnLogin = True
        Exit For
      End If
    Next

    If blnLogin Then
      intCount = 4
        Else
      intCount = (intCount + 1)
    End If

  Loop Until intCount >= 3

  If blnLogin Then
    MsgBox "Du er nu logget ind."
      Else
    MsgBox "Du har indtastede forkert brugernavn eller kodeord."
  End If

End Sub
Avatar billede nmh Nybegynder
05. marts 2004 - 22:13 #6
Nå, jeg fik alligevel tid til at se på det inden, det blev for sent.
Her er et forslag:

sub login
  Dim BrNavn(3), PassW(3), BrN, PaW, i
  Dim EjFundet, OK

  BrNavn(1)="Kurt": PassW(1)="Kurt"
  BrNavn(2)="Else": PassW(2)="Else"
  BrNavn(3)="Tom": PassW(3)="Tom"

  for i=1 to 3
    BrN=InputBox("Brugernavn")
    PaW=InputBox("Password")

    EjFundet=True: OK=False
    For j=1 to 3
      if BrN=BrNavn(j) then
        EjFundet=False: OK=True
        if PaW<>PassW(j) then
          OK=false
          exit for
        end if
      end if
    next

    if OK then
      MsgBox "Bruger er godkendt"
      exit for
    else
      if EjFundet then
        Msgbox "Brugernavnet kendes ikke. Prøv igen."
      else
        MsgBox "Forkert adgangskode. Prøv igen."
      end if
    end if
  next
  If not OK then
    MsgBox "Nu får du ikke flere forsøg!"
  end if
end sub


Du skal også beslutte, hvad der skal ske, når brugeren har opbrugt sine forsøg. Evt. kunne login-proceduren være en funktion, som blev sand, hvis brugeren blev godkendt og ellers blev sat til falsk.
Avatar billede nmh Nybegynder
05. marts 2004 - 22:23 #7
Function login()
'Samme indhold, som ovenfor
'men til sidst er der denne linie:
login=OK
End Function

Så kan login-kontrollen være således:
if login then
  'nu er der en bruger, der er godkendt
else
  'brugeren blev ikke godkendt
  'og så skal du beslutte, hvad der så skal ske
end if
Avatar billede nmh Nybegynder
05. marts 2004 - 22:40 #8
Du skal også tænke på, om det er en god ide at skelne mellem små og store bogstaver i brugernavnet.
Her kan funktionen Lcase benyttes.
Lcase("Tom") er tekststrengen "tom"
Avatar billede metza Nybegynder
06. marts 2004 - 00:36 #9
Jeg har accepteret begge jeres svar da begge løsninger virker ... Jeg takker for endnu en genial hjælp her på eksperten :)
Avatar billede nmh Nybegynder
06. marts 2004 - 10:23 #10
selv tak, det var så lidt. Takker for point.
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