Avatar billede timmwillum Nybegynder
30. august 2010 - 20:20 Der er 15 kommentarer og
1 løsning

Skifte parent window

Hej alle eksperter

Har behov for et script, der kontrollerer om brugeren af et site har bruger den rigtige url ...

Først skal den indtastede url kontrolleres. Hvis det er brugerens "asp-url" (i mangel af bedre ord ... fx www.mitdomæne.dk/web/1234/default.asp?user=migselv), så skal der redirectes til en ekstern url, så brugeren ser det mere mundrette url www.migselv.dk. Dette domæne er så i virkligeheden bare en 100% frame, der viser det mere kryptiske asp-url.

Beklager hvis det er sort snak ... jeg uddyber gerne.

Stiler spørgsmålet i kategorien javascript, da jeg går ud fra, at det er hvad der skal til ... programmerer selve siderne i asp.
Avatar billede Slettet bruger
30. august 2010 - 22:04 #1
Du mener at der i browserens "adresse" skal stå: http://www.migselv.dk
- selvom dette "domæne" ikke eksisterer ?

Hvis ja, så nej - det kan man ikke.
Avatar billede timmwillum Nybegynder
30. august 2010 - 23:15 #2
Nej ... det er et eksisterende url. Lad mig forsøge at forklare ...

Har et bruger-cms, hvor den enkelte brugers url bliver lidt kryptisk, fordi der skal skrives nogle variabler med i url'en. Samtidig er der for nogle brugere oprettet domæner med redir til cms-systemet. Fint nok.

Problemet opstår så, når fx google finder den lidt kryptiske og lange asp-url direkte ind til cms-systemet. Hvis besøgende kommer ind ad den vej, vil jeg gerne redirecte dem til den mere pæne url (brugerens eget domæne). Og på dette domæne er der så bare en frame, hvor cms-modulet vises i ...
Avatar billede Slettet bruger
31. august 2010 - 00:27 #3
Ahh OK - så kan man godt : )
- med java script:

<head><script>
if (top.location.href.indexOf("default.asp?user=") > -1)
    {
    var user = top.location.href.substring(top.location.href.indexOf("default.asp?user=")+17)
    alert("user:"+user)
    top.location.href.replace("http://www."+user+".dk")
    }
Avatar billede timmwillum Nybegynder
31. august 2010 - 08:37 #4
Tak og ... hmmm. Jeg er ikke helt spiffy til JavaScript, så jeg skal lige have noget hjælp.

Jeg går ud fra at default.as?user= skal erstattes med min fulde url i CMS-systemet? Men vil den være ligeglad med hvad der kommer efter lighedstegnet ... altså så den redirecter uanset brugernavnet?

jeg går ud fra at "+user+" skal erstattes med brugernavnet ... eller domænenavnet. I asp fx "&<%=request("user")%>&".
Avatar billede Slettet bruger
31. august 2010 - 09:20 #5
Nej, den skulle være komplet (dog utestet)

Hvis man "kommer ind" med:
http://www.mitdomæne.dk/web/1234/default.asp?user=migselv

Burde min kode "redirecte" til:
http://www.migselv.dk
Avatar billede timmwillum Nybegynder
31. august 2010 - 09:48 #6
Fantastisk ... det glæder jeg mig til at teste i aften. Foreløbig tak for indsatsen.
Avatar billede Slettet bruger
31. august 2010 - 10:00 #7
problemer opstår dog, hvis der er flere parametre i "den lange" URL
- at den peger på en bestemt side f.eks...

Min kode bruger jo ALT der måtte komme efter "default.asp?user=" som nyt domænenavn..
Avatar billede timmwillum Nybegynder
01. september 2010 - 22:27 #8
Har lige prøvet her til aften ... der sker ikke noget som helst.

Jeg har flere parametre, men heldigvis har jeg næsten konsekvent holdt user som sidste parameter, så det går endda.

Har dog en anden udfordring. For nogle af domænerne, der sende stil indeholder bindestreg. Men det kan brugernavnene ikke. Det vil sige at user=migselv skal kunne redirectes til www.mig-selv.dk. Kan man skille parametren ad med JavaScript ... jeg er med på, at det så nok skal være specifikt for den enkelte bruger.
Avatar billede Slettet bruger
02. september 2010 - 08:48 #9
Hm.. der må da idetmindste komme en alert ?
- ellers er der noget andet galt - bruger du FireFox med FireBug og dennes error console åben ?

"Næsten konsekvent" - LOL

Må jeg ikke se et eksempel på en "lang URL", så jeg kan prøve selv ?
Avatar billede timmwillum Nybegynder
02. september 2010 - 11:09 #10
Avatar billede timmwillum Nybegynder
02. september 2010 - 11:12 #11
Og nej ... ingen reaktion overhovedet. Nu skal det dog siges, at min parameter ikke hedder "user", men UserName. Jeg har derfor tilpasset koden sådan:

<script>
if (top.location.href.indexOf("default.asp?UserName=") > -1)
    {
    var user = top.location.href.substring(top.location.href.indexOf("default.asp?user=")+17)
    alert("user:"+user)
    top.location.href.replace("http://www."+user+".dk")
    }
</script>


Og nu ser jeg pludselig, at jeg nok også skal ændre denne del:

top.location.href.substring(top.location.href.indexOf("default.asp?UserName=")+17) ...

Burde det så ikke gøre forskellen? Prøver igen i aften.
Avatar billede Slettet bruger
02. september 2010 - 12:30 #12
Avatar billede timmwillum Nybegynder
02. september 2010 - 15:35 #13
Det er blot et eksempel på hvordan url'en ser ud. Jeg er ikke interesseret i at lægge den faktiske url til offentlig skue :-)
Avatar billede timmwillum Nybegynder
02. september 2010 - 22:40 #14
Har nu følgende kode (ændret user til UserName):

<script>
if (top.location.href.indexOf("default.asp?UserName=") > -1)
    {
    var user = top.location.href.substring(top.location.href.indexOf("default.asp?UserName=")+17)
    alert("user:"+user)
    top.location.href.replace("http://www."+user+".dk")
    }
</script>


.... INGENTING sker. Hvad gør de +17? Har dt noget med længden af urlen at gøre? For jeg har jo naturligvis forskellige længder forskellige steder afhængig af antal parametre.
Avatar billede Slettet bruger
03. september 2010 - 00:04 #15
17 er længden på "default.asp?UserName=".
Resten af URL'en = Starter 17 tegn efter dér, hvor "default.asp?UserName=" starter.

Men det dur jo ikke hvis der er andre parametre, bagefter.

Og hvis der er en page=xxx parameter, bliver den jo også hugget af, så der redirigeres til sitets "homepage" uanset hvad der er klikket på ude på Google.

Det var derfor jeg gerne ville se "den ægte vare"
- for selvfølgelig kan det løses..
Avatar billede timmwillum Nybegynder
09. marts 2011 - 20:50 #16
svar
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