[flash] Default url gebruiken bij getURL()

Pagina: 1
Acties:

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Ik ben aan het werken aan een simpel flash "filmpje" om een site met een paswoord te beveiligen.
De reden waarom ik flash gebruik is omdat de ruimte waar het uiteindelijk op komt te staan geen php of dergelijke ondersteund en dit dus zowat de veiligste manier is. Ik gebruik flash ipv java/javascript omdat ik het resultaat net iets mooier vind :)

Op zich niet zo een groot probleem en ik heb al iets dat werkt. Het werkt dus met 2 waarden die ingelezen worden en daaruit naar een pagina gaan met als naam "<gebruikersnaam>_<paswoord>.htm".

Het probleem is nu als er verkeerde gegevens ingegeven worden krijg ik een lelijke error dat de pagina niet gevonden is en moet ik op "OK" klikken. Dit zou ik willen vervangen door naar een pagina te linken waar iets op staat zoals: Gebruikersnaam en/of paswoord verkeerd.
Dit is de code aan de knop zoals hij gewoon werkt.
code:
1
2
3
this.submit_btn.onRelease = function(){
  getURL(userName.text + "_" + Password.text + ".htm");
};
Wat ik geprobeerd heb is kijken of getURL een waarde gaf bij een fout. (in c/c++ werkt dit soort filosofie dus wel O-) )

Iets in de aard van:
code:
1
2
3
4
5
this.submit_btn.onRelease = function(){
    if (getURL(userName.text + "_" + Password.text + ".htm")==0)
    { getURL("error.htm");
    }
};
Als ik dit probeer geeft hij ofwel alleen de error pagina (dus ook als de waarden juist zijn) ofwel alleen de juiste pagina (en een foutmelding bij een verkeerde input)

Nu weet ik niet of de getURL een fout geeft bij een pagina die hij niet kan vinden en welke fout hij zou geven als hij het wel doet.
Wat ook zou kunnen is dat er een andere foutmelding gegeven wordt die ik zelf kan aanpassen.

Ik was nog vergeten te vermelden dat ik Macromedia flash MX professional 2004 gebruik.

[ Voor 12% gewijzigd door kluyze op 04-02-2006 01:02 ]


Verwijderd

Als je site xhtml compatible is, zou je kunnen proberen om met xml.load de site binnen te halen. Als de connectie mislukt weet je waar je aan toe bent.

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
Om te beginnen, ik weet niet hoe gevoelig de info is die je username/pw-protect want op zich is dat vrijwel direct uit je swfje te peuteren, ook al istie protected from import.

getURL(userName.text + "_" + Password.text + ".htm")==0 slaat natuurlijk helemaal nergens op.
Je zou kunnen kijken wat userName.text + "_" + Password.text + ".htm" oplevert maar dat kan al nooit 0 zijn laat staan undefined want minimaal is het _.htm

Ik weet niet hoeveel userNames en Passwords er zijn (ik zou trouwens passWord schrijven, dan lijkt het nog een beetje op hoe je userName schrijft) maar als er maar 1 stel van is kun je dit schrijven:
code:
1
2
3
4
5
6
7
validUserName = "deGebruikersNaam";
validPassword = "hetWachtWoord";
if (userName == validUserName && Password == validPassword) {
    // ga naar de pagina
} else {
    getURL("error.htm");
}
Mochten er meer van die paren zijn dan zet je ze in een array en loop je daar doorheen om te kijken of de waardes voorkomen.

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Inderdaad dit zou werken, en je hebt gelijk wat je aanhaalt van paswoord en zo. Maar ik heb er al aan gedacht.
Zoals jij het maakt is inderdaad mogelijk de gebruikersnaam en paswoord uit de file te halen. Maar ik doe het op een andere manier.
Misschien was het niet zo duidelijk uit mijn TS dus maar een voorbeeldje.
Stel de gebruikersnaam en ook het paswoord is "kluyze" dan geeft dit:
code:
1
getURL("kluyze_kluyze.htm");

Die userName.text en Password.text zijn de waarden uit tekstvakken die op de site komen te staan. Het paswoord en de gebruikersnaam staan dus niet in het bestand. Dat is toch iets veiliger.

Maar nu het probleem: als ik de verkeerde waarden ingeef dan zoekt hij een bestand dat niet bestaat. En dan geeft die een foutmelding in de vorm van zo een lelijk bericht en moet ik 2 keer op "OK" klikken. Nu zou ik willen dat er in plaats van zo een foutmelding een site open gedaan wordt die de gebruiker wijst op zijn fout en de keuze geeft om terug te keren.

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
Dat is idd wel iets veiliger. Je zou kunnen overwegen met .htaccess gewoon rechtstreeks de userName+passWord te laten invullen. Wat jij wilt is dit volgens mij:
code:
1
2
3
4
5
6
7
8
9
myLoadVars = new loadVars();
myLoadVars.load(userName.text + "_" + Password.text + ".htm");
myLoadVars.onLoad = function(success) {
    if (success) {
        trace("Deze pagina bestaat.");
    } else {
        getURL("error.htm");
    }
};

  • LB Back
  • Registratie: November 2004
  • Laatst online: 14-03 23:22
Link waar je misschien iets aan hebt.

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Jep dit werk. Beetje aangepast maar het doet zijn werk.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
this.submit_btn.onRelease = function()
{
    myLoadVars = new loadVars();
    myLoadVars.load(userName.text + "_" + Password.text + ".htm");
    myLoadVars.onLoad = function(success) {
    if (success)
    {
        getURL(userName.text + "_" + Password.text + ".htm");
    } else
    {
        getURL("error.htm");
    }
}
Pagina: 1