Avatar billede martin_dalgaard Nybegynder
18. december 2004 - 23:12 Der er 35 kommentarer og
2 løsninger

Load og save variabler

ok mit spørgsmål er både flash asp og database men det starter i
flash..
ok det hele er en del af et større projekt, jeg har en login hvor jeg
via asp og database logger ind det virker helt fint... mit
problem er at jeg gerne når logget ind henter nogle personlige
oplysninger fra database ,og at man så kan ændre dem (save) til
database.

PS.Jeg ved godt hvordan man henter variabler eller oplysninger fra database via ASP ,men problemet er hvordan man henter specificte oplysnigner om den der logget ind...

HÅBER i kan hjælpe mig

MARTIN DALGAARD

***DRAGONSANDSLAYERS***
Avatar billede pyroman Nybegynder
18. december 2004 - 23:30 #1
tjaa - det er jo nok mest et ASP spørgsmål - men du sender vel bare bruger id'et til asp'en, sammen med en streng der beskrver hvad der skal hentes - så finder ASP'en ud hvad der skal hentes fra db'en, henter det og udskriver det....
Avatar billede martin_dalgaard Nybegynder
18. december 2004 - 23:34 #2
jaa.. men jeg kan jo ikke skrive et id, der er jo mange bruger.
Avatar billede pyroman Nybegynder
18. december 2004 - 23:55 #3
Jo - men som alle andre steder kan der ikke være flere brugere med samme navn vel?

Det er jo også sådan det fungerer her på eksperten, når du kigger på bruger-siderne: http://www.eksperten.dk/bruger.phtml?navn=pyroman


Det er simpelthen "the way to do it"
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 00:02 #4
ja ja... jeg kan jo ikke bruge det til så meget. du besvare jo ikke mit spørgesmål.
kan du ikke sige mig. "HVORDAN" man går det... hæhæ
Avatar billede mat Nybegynder
19. december 2004 - 00:16 #5
Som pyroman siger er det her jo ikke et spørgsmål om flash. Hvis du vil vide hvordan man laver en database skal du nok spørge i en kategori, der omhandler den database teknologi du bruger.
Hvis du ikke allerede kontrollerer om brugere har en eller anden form for unik data (f.eks brugernavn) så burde du nok gøre det ;)
Så baserer du bare alle dine forespørgsler på denne. Men det er stadig ikke flash.
Avatar billede barklund Nybegynder
19. december 2004 - 00:16 #6
Jamen, når du logger ind sørger du bare for, at din asp bagefter svarer, hvilket id brugeren så har, og så kan du efterfølgende sige "stik mig lige alle oplysninger for brugeren med id X" - for det er den bruger, man er logget ind som.
Avatar billede pyroman Nybegynder
19. december 2004 - 00:17 #7
Nej - kan ikke en pind ASP - der må du nok over i ASP kategorien...

Jeg kan fortælle dig stort set alt der har med flash at gøre også hvordan du sender og henter variabler fra flash - men serverside delen kan jeg sgu ikke...

Sorry mate ;)
Avatar billede pyroman Nybegynder
19. december 2004 - 00:19 #8
Netop - tænkte på det som morten

Du får et brugernavn ind i ASP-scriptet, finder alle de værdier der vedrører dette id i db'en og returnere det - egentlig ret simpelt tror jeg (hvis man kan asp og en database - hvilket ikke lige er mig)
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 00:19 #9
ja.. jeg må jo prøve mig frem, men tak fordi i viste interresse...
Avatar billede pyroman Nybegynder
19. december 2004 - 00:21 #10
Ja prøv dig frem i ASP delen, de giver nok lidt bedre svar... og kan sikkert henvise til en masse tutorials osv...

Held og lykke - og glædelig jul...! :)
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 00:23 #11
ja GLÆDELIG JUL. --- selvom det ikke ligner jul udenfor---
Avatar billede baitianlong Nybegynder
19. december 2004 - 01:04 #12
Ham der er logget ind, har du formodentlig skrevet en session cookie hos. Når flashen så er i sving, har du brug for at hente denne sessioncookie. Det vil sige din første asp side skal skrive:

<%
response.write("hamder=" & session(hamder))
%>

Den henter du i flash med:

hentsession = new LoadVars();
hentsession.load("aspsidemedhamdererloggetind.asp");
_root.hamder = hentsession.hamder;

Så har du en variabel, der hedder hamder i _root, som indeholder det aspsiden skrev. Nu vil du gerne hente hans info:

hentinfo = new LoadVars();
hentinfo.onLoad = function(s) {
  if(s) {
  trace("Det gik fint!");
  _root.hamder = hentinfo.hamder;
  _root.alder = hentinfo.hansalder;
  _root.tlfnr = hentinfo.hanstelefonnummer;
  } else {
  trace("det gik i fisk!");
  }
};
hentinfo.load("aspsidemedinfoomhamder.asp?hamder="+_root.hamder);

aspsiden siger:

<%
'connect og alt det der
'udskriv hamder's data
response.write("hamder=" & navn & "&hansalder=" & alder & "&hanstelefonnummer=" & tlfnr) 'og så videre
%>

...så ændrer han sine informationer i flash og vil gemme:

gemdata = new LoadVars();
gemdata.sendAndLoad("aspsidedergemmerinfo.asp?navn=" + _root.navn + "&alder=" + _root.alder + "&tlfnr=" + _root.tlfnr);

asp-siden:

<%
navn = request.querystring("navn")
alder= request.querystring("alder")
tlfnr = request.querystring("tlfnr")
'connect til database
conn.execute("UPDATE tabel SET alder='" & alder & "', tlfnr='" & tlfnr & "' WHERE navn='" &navn & "'")

Sådan gør du det :)
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 10:36 #13
hej legende.
jeg er desværre bange for at jeg ikke har nogen session.
jeg vil gi dig point hvis du lige hurtig kan skrive hvordan du lave session i Flash???
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 11:17 #14
jo jeg kan godt lave session men hvad skal den indholde..
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 11:18 #15
;)
Avatar billede barklund Nybegynder
19. december 2004 - 12:26 #16
Jeg kan simpelthen ikke se, hvad dit problem er længere. Du har fået tusind hints til, hvodan du kan strukturere det - det eneste du ikke har fået er at nogen har foræret dig løsningen - men det kan du sgu ikke forvente :P

Logger du ind via Flash (altså en formular i flash der sender til asp'en) eller i html (en almindelig html-formular)? Hvis det er det første, skal du gøre som jeg forklarede dig - få asp'en der logger dig ind til at returnere dit login-id. Hvis det er det sidste, så skal du efter du er logget ind gemme dit loginid i en session og derefter gøre som legende siger.

Det er sådan set ret nemt.

--
Morten Barklund
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 13:21 #17
jo ,men hvordan vil du sende det tilbage ,min login ser sådan ud "i asp"
<%@Language=Vbscript%>
<%Option Explicit%>
<%
    '''''''Først, få tingene fra flash
    Dim inUserName, inPassword
        inUserName = Trim(Request("username"))
        inPassword = Trim(Request("password"))

    '''''''nu, lav forbindelsen
    Dim myConnection
    Set myConnection=Server.CreateObject("ADODB.Connection")
        myConnection.ConnectionString="DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & Server.MapPath("login.mdb")
        myConnection.Open
   
    '''''''her er vores SQL statement når vi åbner Recordset
    Dim loginSQL
        LoginSQL = "SELECT * FROM loginTable WHERE userName = '" & inUserName & "'"
    '''''''lav, og åben Recordset
    Dim myRS
        Set myRS=Server.CreateObject("ADODB.Recordset")
            myRS.Open loginSQL, myConnection
   
   

'''''''tjek om vi overhodet har noget, og hvis vi har tjek om password passer
    Dim mainMessage
    If myRS.EOF Then
        mainMessage="userInfo=false"
    Else
        If(StrComp(myRS("password"), inPassword, vbTextCompare) =0) Then
            mainMessage="userInfo=true"
        Else
            mainMessage = "userInfo=false"
        End If
    End If
    '''''''Clean up everything
    myRS.Close
    Set myRS=Nothing
    myConnection.Close
    Set myConnection=Nothing
   
    '''''''send det tilbage til flash
    Response.Write(mainMessage)
       


%>
og i flash er min login sådan:
stop();

login_lv = new LoadVars();


login_lv.onLoad=function(){


    if(this.userInfo == "true"){
play();


        }else{

        trace("Invalid data");
        login_txt.text="wrong";
        password_txt.text="";
    }
}


onLogin=function(){

    if(login_txt.text.length<1){
        trace("please provide a login name");

    }else if(password_txt.text.length<5){
        trace("invalid password");

        password_txt.text="";
    }else{

   

        login_lv.username=login_txt.text;
        login_lv.password=password_txt.text;

        login_lv.sendAndLoad("login.asp", login_lv, "POST");
    }
}


OG JO JEG HAR BRUGT LEGENDENS TING DER HVOR DE SKULLE IND
Avatar billede barklund Nybegynder
19. december 2004 - 13:34 #18
Når du kan finde ud af at sende userInfo=true|false tilbage, så kræver det vel ikke den store opfindsomhed og udvide det med også at sende login-id'et med tilbage, hvilket kræver den minimalistiske udvidelse:

mainMessage="userInfo=true&mit_fantastiske_nye_brugerid="&myRS("id")

Du kan selvfølgelig selv vælge hvad variablen skal hedde og "id" skal erstattes med navnet på den kolonne i db'en, der indeholder det unikke id.

--
Morten Barklund
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 13:52 #19
den gir kun ERRORS.
man kan slet ikke gøre det du skrev
Avatar billede barklund Nybegynder
19. december 2004 - 14:15 #20
Hvilke errors?

Og måske ikke _præcis_ det jeg skrev hvis der er en fejl - og som nævnt skal du jo også rette til din tabel...
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 14:58 #21
hvad???
ok lad mig lige se om jeg forstår dig rigtig.
jeg har sat "***" der hvor jeg forstod på det du sagde at "&mit_fantastiske_nye_brugerid="&myRS("id")" skulle stå

<%@Language=Vbscript%>
<%Option Explicit%>
<%
    '''''''Først, få tingene fra flash
    Dim inUserName, inPassword
        inUserName = Trim(Request("username"))
        inPassword = Trim(Request("password"))

    '''''''nu, lav forbindelsen
    Dim myConnection
    Set myConnection=Server.CreateObject("ADODB.Connection")
        myConnection.ConnectionString="DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & Server.MapPath("login.mdb")
        myConnection.Open
   
    '''''''her er vores SQL statement når vi åbner Recordset
    Dim loginSQL
        LoginSQL = "SELECT * FROM loginTable WHERE userName = '" & inUserName & "'"
    '''''''Create, and open the Recordset
    Dim myRS
        Set myRS=Server.CreateObject("ADODB.Recordset")
            myRS.Open loginSQL, myConnection
   
   

'''''''tjek om vi overhodet har noget, og hvis vi har tjek om password passer
    Dim mainMessage
    If myRS.EOF Then
        mainMessage="userInfo=false"
    Else
        If(StrComp(myRS("password"), inPassword, vbTextCompare) =0) Then
            mainMessage="userInfo=true" "***"

        Else
            mainMessage = "userInfo=false"
        End If
    End If
    '''''''Clean up everything
    myRS.Close
    Set myRS=Nothing
    myConnection.Close
    Set myConnection=Nothing
   
    '''''''send det tilbage til flash
    Response.Write(mainMessage)
       


%>

prøv at gå til www.das.dragonsandslayers.dk/login.asp,
der "står siden kan ikke vises" men hvis jeg fjerner det du siger jeg skulle skrive, kommer det rigtige, som er
"userInfo=fales"
Avatar billede barklund Nybegynder
19. december 2004 - 15:05 #22
Jamen du har jo ikke skrevet hvad jeg sagde til dig ;)

Du har skrevet:

mainMessage="userInfo=true"&mit_fantastiske_nye_brugerid="&myRS("id")

Jeg sagde du skulle skrive:

mainMessage="userInfo=true&mit_fantastiske_nye_brugerid="&myRS("id")

Start lige med at tjekke, at du i det mindste har skrevet det rigtigt ind :)

--
Morten Barklund
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 15:14 #23
arr... var det virkelig problemet... hæhæ...
Sorry ;)
men hvordan for jeg det nu til at passe sammen med hvad
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 15:15 #24
legende skrev
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 15:16 #25
han gjorde det jo udfra en session
Avatar billede barklund Nybegynder
19. december 2004 - 16:06 #26
Så er eneste jo forskel bare, at du gemmer det unikke id brugt til efterfølgende at hente og gemme data fra dit login istedet for fra det specielle hent-id-fra-session kald. De øvrige funktioner har jo intet med session at gøre men er bare en oversigt over, hvordan man laver siderne og kaldene i flash. Det er ganske ligetil.
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 16:52 #27
kan du ikke skrive svar så kan jeg gi dig point
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 17:15 #28
ok ingen svar
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 17:15 #29
ja ;)
Avatar billede barklund Nybegynder
19. december 2004 - 17:17 #30
Sure, men skal legende og nogle af de andre ikke også have lidt for deres indsats? Og husk på, at ikke alle sidder foran computeren på en søndag :)
Avatar billede baitianlong Nybegynder
19. december 2004 - 17:21 #31
Jeg gør :)
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 19:29 #32
her er pointene
Avatar billede martin_dalgaard Nybegynder
19. december 2004 - 19:30 #33
hey legende fik du 2000 kr jobbet
Avatar billede barklund Nybegynder
19. december 2004 - 19:59 #34
Tark for points ;)
Avatar billede baitianlong Nybegynder
19. december 2004 - 20:05 #35
hvilket 2000 kroner job?
Avatar billede baitianlong Nybegynder
19. december 2004 - 20:06 #36
Jeg mener ikke jeg bad om det, jeg kommenterede blot farvevalget i flashen
Avatar billede martin_dalgaard Nybegynder
20. december 2004 - 14:39 #37
når ok
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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