![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Benutzer
Registriert seit: 23.09.2005
Beiträge: 35
|
Hallo,
ich habe mir ein download script programmiert, das auch schon funktioniert. Jetzt wollte ich zum schutz meines Traffics noch eine Sperre mit cookies einbauen. Leider funktioniert die abfrage ob der cookie existiert (isset) nicht. Die Links sehen ungefähr so aus: "..../download.php?file=Eine Datei" hier is mal das komplette script: die download.php PHP-Code:
PHP-Code:
download.php: PHP-Code:
Danke für die Hilfe im vorraus |
|
|
|
|
|
Nach oben #4 |
|
Gast
Beiträge: n/a
|
übrigens hast du ein typisches register-globals-problem... wenn ich den URL mit &cookie=0 (und register-globals=on) aufrufe, hab ich deinen counter bereits umgangen.
immer wieder das selbe: ELSE macht sinn. und dein 'problem' liegt eigentlich nur daran, dass du nicht korrekt eingerückt hast und damit nicht korrekt nachvollziehen kannst, wie die ausführungsreihenfolge des codes ist. halte dich an eine der beiden regeln: http://www.dagbladet.no/development/...tandard/#brace ... und du wirst sehen, dass es gar nicht am $_COOKIE lag. 1. hinweis: netscape-user werden in deinem skript bevorzugt behandelt. 2. hinweis: strings werden in php in einfache oder doppelte anführungszeichen gepackt. 3. hinweis: guck dir ganz genau an, was unter http://us2.php.net/stristr steht: testing if a string is found or not - zähl mal die gleichzeichen. viel spaß Geändert von axo (23.02.2006 um 00:03 Uhr). |
|
|
|
Nach oben #6 | |
|
BIN EIN KRASSA HELD!!!111
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.188
|
Zitat:
einzige effektive lösung für sowas ist es dass user sich anmelden müssen. |
|
|
|
|
|
|
Nach oben #7 |
|
Benutzer
Registriert seit: 23.09.2005
Beiträge: 35
|
Hallo,
@axo, danke für die Hinweise, aber könntest du etwas genauer werden? Und warum werden die Netscape Benutzer bevorzugt, es ist klar das die einen "Rechtsklick" Link bekommen, aber das muss so sein, denn die Videos werden sonst im Browser aufgerufen (mit Zahlen. Buchstaben...) ohne das ein Download Fenster erscheint. Ich habe jetzt alles ein bisschen eingerückt. Aber leider seh ich immer noch nicht wo der Fehler ist. PHP-Code:
PHP-Code:
PHP-Code:
P.S. Es geht mir nicht darum, den Download 100% zu beschränken, sondern nur das ein nicht so erfahrener User wie ihr, nicht gleich mehrfach den Dowload aufruft. @robo47, anmelden finde ich für meine zwecke unnötig und nur zeitaufwendig. |
|
|
|
|
|
Nach oben #8 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.793
|
kleiner tipp:
Einrücken geht in etwa so: PHP-Code:
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #11 | |
|
Irgendwas mit e
Registriert seit: 26.08.2005
Ort: Mannheim
Beiträge: 388
|
Zitat:
Wenn der Cookie schon gesetzt ist, wird die Meldung angezeigt und wenn nicht, wird überprüft, ob der Browser Netscape ist. Und wenn das dann true ist, wird ein Download-Link angezeigt Den Download für andere ermöglicht er ja schon hier: PHP-Code:
@Magicman Hast du schon mal debuggt? Versuch erstmal den Fehler mittels echo, print_r, var_dump und Konsorten einzugrenzen. Also finde heraus, an welcher Stelle bereits etwas schief geht. Ich denke du hast da wahrscheinlich irgend einen Semantikfehler drinne. //edit: Irgendwie find ich die Aufteilung recht verwirrend. Deshalb kanns sein, dass ich jetzt axos Beitrag völlig ungerechtfertigt kommentiert hab.
__________________
In the beginning was the word and the word was content-type: plain/text heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int Geändert von Jojo (23.02.2006 um 16:00 Uhr). |
|
|
|
|
|
|
Nach oben #13 |
|
Benutzer
Registriert seit: 23.09.2005
Beiträge: 35
|
Jojo hat den Code schon richtig interpretiert
Ich habe den Fehler auch schon mit variablen-ausgabe und so eingeschränkt und bin dabei auf das $_COOKIE[$cookiename] gestoßen. Wenn ich z.B. $cookie direkt auf "true" setzte (ohne cookie abfrage) funktioniert das script einwandfrei. |
|
|
|
|
|
Nach oben #14 |
|
Irgendwas mit e
Registriert seit: 26.08.2005
Ort: Mannheim
Beiträge: 388
|
moment.
Lass mich mal nachdenken. Du hast mit einberechnet, dass ein gesetztes Cookie nich so ohne weiteres im selben Script abgerufen werden kann, in dem es gesetzt wird? Aber wie ich das sehe, nutzt du diesen Umstand sowieso aus, damit man die Datei einmal runterladen kann. Hast du mal den Namen des Cookies beim Erstellen und beim Abrufen verglichen? Grüße, Jojo
__________________
In the beginning was the word and the word was content-type: plain/text heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int |
|
|
|
|
|
Nach oben #15 |
|
Benutzer
Registriert seit: 23.09.2005
Beiträge: 35
|
Da mann ja dann auf die download.php (im ordner mit der datei) weitergeleitet wird, hat sich ja das problem mit dem im gleichen script gesetzten cookie erledigt.
Die Namen der cookies stimmen auch (ich habe es auch ohne md5 verschlüsselung versucht). Ist das so ein komisches script |
|
|
|
|
|
Nach oben #16 |
|
Irgendwas mit e
Registriert seit: 26.08.2005
Ort: Mannheim
Beiträge: 388
|
also liegt dein Problem hier?
PHP-Code:
Hast du mal statt 'isset()' mal 'array_key_exists()' probiert? Denn isset liefert dir false, wenn das Element null ist, obwohl der Index existiert? Grüße, Jojo
__________________
In the beginning was the word and the word was content-type: plain/text heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int |
|
|
|