Avatar billede jespernerd Nybegynder
20. november 2009 - 16:14 Der er 20 kommentarer

Ikke vise siden uden den er i en popup

Hejsa,
Hvordan laver jeg enten via PHP eller Javascript således, at min fil GameWindow.php ikke må vises når man går direkte til URL'en, men kun vises hvis den køres i en POPUP? (Så folk ikke kan aflæse kildekoden)

På forhånd tak.

Evt noget med

if ( vindues størrelse er større end 200) {
  exit
} else {
  @show
}

Eller noget session værk? Hvad ved jeg - har i nogle idéer?
Avatar billede dkfire Nybegynder
20. november 2009 - 16:28 #1
At den kører i et popup vindue, er bestemt ikke det samme som at man ikke kan finde frem til kildekoden!
Avatar billede jespernerd Nybegynder
20. november 2009 - 16:29 #2
Det var ikke spørgsmålet:-)
Avatar billede zips Juniormester
20. november 2009 - 16:33 #3
Du kan ikke undgå at folk kan aflæse din kildekode, som dkfire også skriver.
Avatar billede jespernerd Nybegynder
20. november 2009 - 16:34 #4
Nej, men man kan gøre det mere svært for dem. Og det var heller ikke mit spørgsmål du svarede på.
Avatar billede Slettet bruger
20. november 2009 - 16:57 #5

<script>
function alertSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerHeight ) == 'number' ) {
    //Non-IE
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientHeight) ) {
    //IE 6+ in 'standards compliant mode'
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientHeight ) ) {
    //IE 4 compatible
    myHeight = document.body.clientHeight;
  }

if (myHeight > 200) {
  window.close()
} else {
  @show
}

}
</script>
<body onload="alertSize()">
</body>

Avatar billede repox Seniormester
20. november 2009 - 17:05 #6
Dit spørgsmål indeholder faktisk det postulat at en popup skulle umuliggøre aflæsning af kildekoden; med et sådan postulat er det klart at de andre her giver deres besyv med om sådan en påstand.

Ikke desto mindre er det ikke noget du kan klare med PHP.
Det kan løses med JavaScript - prøv at spørge i den kategori.
Avatar billede mclemens Nybegynder
20. november 2009 - 17:16 #7
- Det gør du ikke.

Du kan ikke gøre det serverside, da du serverside ikke kan måle på, hvad det du skal outputte vil blive vist i.

Gør du det clientside vil du jo ikke kunne gøre noget, da js blot kan undlade at vise spillet (spillet er jo allerede leveret i kildekoden for gamewindow.php) - du kan ikke fjerne kildekoden igen.

...

Så, opdel spillet i filer (hent evt. ind via. ajax og eval på kryds og tværs) og krypter endelig også numsen ud af skidtet ... men du gør det jo kun svært for dem, der ikke kender til it.
Avatar billede mclemens Nybegynder
20. november 2009 - 17:20 #8
Glemte at opdatere.
Zeska -> De fleste får en advarsel op om at siden forsøger på at lukke sig selv ... ergo kan de fleste (læs: 99,99%) der vil hugge noget finde ud af at trykke på nej.
Avatar billede mclemens Nybegynder
20. november 2009 - 17:22 #9
Zeska (fortsættelse)
- Du kan selvfølgelig skifte window.location.href, men du skal stadig lave et eller andet med kryptering/skjulning af kildeindholdet, da en clientside viderestilling ikke er svær at undgå ... for slet ikke at tale om at man kan deaktivere js inden man går ind for at nappe kilden.
Avatar billede Slettet bruger
20. november 2009 - 17:29 #10
mclemens-> Jeg svarede jo bare på spørgsmålet.
Avatar billede repox Seniormester
20. november 2009 - 17:33 #11
#10
Det er et dårligt svar i så fald. Basalt set kontrollerer du bare om vinduestørrelsen er lille nok og hvis ikke forsøges der at lukke vinduet.
Avatar billede Slettet bruger
20. november 2009 - 17:36 #12
Var det ikke også det som han ville have ?

Han skrev:

"
Evt noget med

if ( vindues størrelse er større end 200) {
  exit
} else {
  @show
}
"

Og han skrev:
"
Nej, men man kan gøre det mere svært for dem. Og det var heller ikke mit spørgsmål du svarede på.
"
Avatar billede mclemens Nybegynder
20. november 2009 - 17:37 #13
Zeska -> Ja, og jeg kommenterer jo bare dit forslag, og giver et tillægs forslag om at man evt. kan benytte sig af window.location.href og kryptering istedet for blot at lukke vinduet (hvilket nok ikke vil virke effektivt).
Avatar billede repox Seniormester
20. november 2009 - 17:38 #14
#1
Problemet er når du vil forsøge at lade klienten kontrollere noget for dig - så vil det altid være klienten der bestemmer om (og hvordan) kontrollen overhovedet udføres.
Avatar billede Slettet bruger
20. november 2009 - 17:41 #15
mclemens -> Det er helt okay.

Enlig virker det dumt overhovedet at prøve at holde kilden hemmelig.

Er det ikke i teorien umuligt ?
Avatar billede mclemens Nybegynder
20. november 2009 - 17:44 #16
Zeska-> Det er i teori og praksis umuligt. Browseren skal kunne læse og forstå kildekoden, og kan den det - så kan du altid spørge den om hvad den arbejder med at kildemateriale.
Avatar billede mclemens Nybegynder
20. november 2009 - 17:44 #17
*af
Avatar billede Slettet bruger
20. november 2009 - 17:45 #18
Præcis. Selv når du ser resultatet kan man jo sagtens genskabe kilden. Det tager bare lidt længere tid.
Avatar billede jagdos Nybegynder
20. november 2009 - 18:34 #19
Du kunne også bare skrive så grim spaghetti kode and ingen ville forstå noget af det! :-)
Avatar billede Slettet bruger
20. november 2009 - 18:49 #20
Det gør de fleste helt uden at tænke over det :D
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