HTML - Schutz vor Download ohne Klick??

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Zu Deinem Bugreport, habe den Code mal funktionstüchtig gemacht :wink:

Code: Alles auswählen

If OpenWindow(0, 0, 0, 600, 530, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))

  StringGadget(1, 0, 0, 300, 20, "Webseite")
  WebGadget(0, 10, 30, 580, 480, "C:\")   
   
  Define.s URL = "http://folker-linstedt.de"
 
  SetGadgetText(0, URL)
 

  Repeat
      Select WaitWindowEvent()
        Case #PB_Event_CloseWindow
          Break
        Case #PB_Event_Gadget
          Select EventGadget()
            Case 0
              If EventType() = #PB_EventType_DownloadEnd
                SetGadgetText(1,GetGadgetText(0))
              EndIf 
          EndSelect
      EndSelect
   
  ForEver
 
EndIf 
SetGadgetText funktioniert erst wenn das WebGadget mit der Darstellung,
dem Download fertig ist, ausserdem nur im Eventloop!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Naja, ich hatte zwischendurch auch mal ein

WindowEvent()

zwischen den SetGadgetText() und dem Aufruf vom zweiten SetGadgetText()

aber auch da kam es halt zu keinem sinnvollen Ergebnis. Also erst, wenn die Seite angezeigt wird.

Das ist eine neue Information für mich. Dank dir :allright:

Dachte, es reagiert wie ein StringGadget()

Code: Alles auswählen

If OpenWindow(0, 0, 0, 600, 530, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
  
  StringGadget(1,0,0,300,20,"Webseite")
  StringGadget(0, 10, 30, 580, 480, "C:\")    
  
  URL.s="http://folker-linstedt.de"
  
  SetGadgetText(0,URL)
  
  SetGadgetText(1,GetGadgetText(0))
  
  Repeat
    Event = WaitWindowEvent()
    
  Until Event=16
  
EndIf
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Dachte, es reagiert wie ein StringGadget()
Auch das StringGadget reagiert erst nach WaitWinowEvent()
Aber natürlich schneller.

Ein einzelnes WindowEvent() ist wohl ziemlich sinnlos, es kommt doch nicht
gerade in dem Moment das Ereignis, was Du erhoffst, ohne Schleife macht
das normallerweise keinen Sinn.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Ja, aber bei dem Code oben enthält das obere StringGadget den Text des unteren.

Es muss dafür also kein Event stattfinden!

Darum ging es nur. Von einer Eingabe von außerhalb mal abgesehen. :|
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Es muss dafür also kein Event stattfinden!
Eigentlich schon, ohne Event wird garnichts angezeigt, nichtmal das Fenster :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Vielleicht hätte ich doch mal eine Ausbildung als Eventmanager machen sollen :lol:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von Programie »

Xaby hat geschrieben:...
Woher weiß also der Server, ob ich klicke oder den direkten Link ansteuere?

wie sieht ein echter Reqeust von einem Browser aus und wo ist der Unterschied zwischen:

>>Link im neuen Fenster öffnen
und
>>Ziel speichern unter

...
Der Server kann rausfinden, von welcher Seite du gerade kommst.
Kommst du von der Seite mit den Smillies, lässt der Server das Anzeigen des Bildes zu. Kommst du aber von einer anderen Seite als der Smillieseite, dann sagt der Server zum Browser "Ey, du kommst hier net rein!" :mrgreen:.
Ich könnte mir vorstellen, dass das so ist.
Es gibt z.B. in PHP ein Befehl, mit dem man das alles rausfinden kann.
Achja, und ob die Seite eine PHP-Seite ist, kannst du nicht so leicht rausfinden, da der Server ja die Daten sendet (Sieh dir z.B. mal das "Atomic Web Server"-Beispiel in PureBasic an (Da kannst du auch bestimmen, was gesendet wird).).
BildBildBildBild
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Die Technik hinter dem ganzen ist folgende: (Fast) jeder Browser schickt, zumindest standardmäßig, mit seinen HTTP-Anfragen auch den "Referrer" mit. Der Referrer ist einfach die URL von der Seite, auf der du zuvor warst. Der Server schaut sich einfach den Referrer an, und kann so rausfinden, von welcher Seite du kommst. Wenn du also von ner "andern" Seite kommst, weisst er, dass du nen Direktlink gekommen bist.
Antworten