Entwickler-Ecke
Off Topic - Download-Counter
Kussi - Do 14.07.05 15:52
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| //counter.php | counter.txt <?php $file = "counter.txt"; // Dateizuweisung
$ftp = @fopen($file,"r+"); // Öffnet die Datei $count = (int)fgets($ftp,10); // Holt die ersten 10 Zeichen
$count++; // Addiert eine 1
rewind($ftp); // Setzt Zeige auf 0. Position
fwrite($ftp,$count); // Schreibt
fclose($ftp); // Schließt die Datei
header('Location: http://www.url.de/deinedownloaddatei.exe'); ?> |
das ist ein einfacher textcounter....
Beim Download gibst du dann einfach
http://www.url/counter.php als Downloadlink ein...fertig!
Oder wenn du mehrere Dateien mit dem Counter zählen willst:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| <?php $file = "logs/" . $datei . ".txt"; // Dateizuweisung
$ftp = @fopen($file,"r+"); // Öffnet die Datei $count = (int)fgets($ftp,10); // Holt die ersten 10 Zeichen
$count++; // Addiert eine 1
rewind($ftp); // Setzt Zeige auf 0. Position
fwrite($ftp,$count); // Schreibt
fclose($ftp); // Schließt die Datei
header('Location: http://www.url.de/' . $datei); ?> |
Dann kannst du mit
http://www.deineurl.de/counter.php?datei=test.exe zählen!
StefanH - Do 14.07.05 17:25
aber auch nur, wenn
RegisterGlobals an ist.. ich benutze prinzipiel
$_GET['somefoo'];. Damit kann man auch keinen Mist bauen :)
Kussi - Do 14.07.05 19:45
ok, dann sieht das script zwangsläufig anders aus....ich hab register_globals immer auf on...wieso auch nicht....die sicherheit wird dadurch nur unwesendlich beeinträchtigt wenn du vernünftig mit deinen variablen arbeitest!
sango - Do 14.07.05 20:09
Kussi hat folgendes geschrieben: |
ok, dann sieht das script zwangsläufig anders aus....ich hab register_globals immer auf on...wieso auch nicht....die sicherheit wird dadurch nur unwesendlich beeinträchtigt wenn du vernünftig mit deinen variablen arbeitest! |
hmm das ist so nicht ganz richtig, da es eine reihenfolge gibt welche der globals genommen werden kann es sein, das zum beispiel einer im get eine anderen user einträgt, und der z.b. im session übergebener überschrieben wird und schon ist man ein anderer user.
http://de3.php.net/manual/de/ini.sect.data-handling.php#ini.variables-order
deswegen sollte man immer auch bei register_globals on die $_GET["foo"] ... etc verwenden.
Kussi - Do 14.07.05 20:14
ich hab ja gesagt, wenn du vernünftig mit deinen variablen umgehst...also bleibts doch dabei und deine
aussage ist unnötig!
sango - Do 14.07.05 20:28
1. ist keine aussage unnötig.
2. was meinst du mit vernünftig mit variablen umgehen?
register_globals on ist grundsätzlich eine tür, fenster, tor, welches man nicht absichert.
Kussi - Do 14.07.05 21:34
sango hat folgendes geschrieben: |
1. ist keine aussage unnötig.
2. was meinst du mit vernünftig mit variablen umgehen?
register_globals on ist grundsätzlich eine tür, fenster, tor, welches man nicht absichert. |
ja dann erklär mir mal wieso!!!!
sango - Do 14.07.05 23:39
danke, den link hab ich gesucht :)
Kussi - Fr 15.07.05 13:03
das erklärt noch garnichts.....
sango - Fr 15.07.05 13:38
was willst du den noch mehr? wenn du globals on hast, kann jeder sich mit der in dem link gezeigte methode einloggen obwohl er keine rechte dafür hat.
vielleicht war das bei deinen scripten noch nie ein problem, aber bei uns wäre das ein mega problem!
sag uns lieber mal was du mit
Zitat: |
wenn du vernünftig mit deinen variablen arbeitest! |
meintest.
Kussi - Fr 15.07.05 22:05
die probleme die in dem auf der seite gezeigten link auftreten zu umgehen!
MrSaint - Fr 15.07.05 22:24
*räusper* ich glaube ihr kommt grad etwas Off Topic ;)
sango - Fr 15.07.05 23:01
die art das zu umgehen ist globals OFF zu machen.
sag mir doch mal wie du das auf den seiten gezeigten scripts machen würdest um die sicherheitsprobleme zu umgehen?
ja das ist offtopic, aber sind ja auch im offtopic forum :)
das thema phpsicherheit ist aber auch schon oft genug besprochen worden so das es sogar extra welch wunder internet seiten zu dem thema gibt.
http://phpsec.org/
ich sag zu dem thema nix mehr, alles meiner meinung wichtige wurde gesagt, und solang da kein workaround für den sicheren umgang mit variablen bei globals on kommt bringt das auch nix.
its weekend, hf
blackbirdXXX - Sa 16.07.05 00:01
Kussi hat folgendes geschrieben: |
das erklärt noch garnichts..... |
Mal sehen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| <?php
session_start();
$access_level = 0; $access_list = array( 'blackbird' => 255, 'someone' => 1 );
if (isset($login_username) && $login_username !== false) { if (isset($access_list[$login_username])) { $access_level = $access_list[$login_username]; } }
print $access_level;
?> |
nimm an, $login_username kommt von $_SESSION.
Aber es würde von $_GET überschreiben werden.
JayK - So 25.09.05 18:03
*ausgrab* :mrgreen:
Wenn man das Script einfach nur zum Zählen von Downloads brauch, ohne irgendeine andere Statistik oder sonstwas zu erzeugen zu wollen, ist dann Kussis zweites Script aus dem
2. Post dieses Threads [
http://www.delphi-forum.de/viewtopic.php?p=272695#272695] nicht okay? :?
Ich kann kein PHP und suche nach einer einfachen Lösung zum Zählen von Downloads... Das Script verstehe sogar ich annährungsweise. :rofl:
JayK - So 30.10.05 12:25
Kussi hat folgendes geschrieben: |
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| <?php $file = "logs/" . $datei . ".txt"; // Dateizuweisung
$ftp = @fopen($file,"r+"); // Öffnet die Datei $count = (int)fgets($ftp,10); // Holt die ersten 10 Zeichen
$count++; // Addiert eine 1
rewind($ftp); // Setzt Zeige auf 0. Position
fwrite($ftp,$count); // Schreibt
fclose($ftp); // Schließt die Datei
header('Location: http://www.url.de/' . $datei); ?> | |
Das Script funzt bei mir auf meinem Localserver nicht :(
Der Zähler funzt, aber das "redirecten" mit header(...) klappt nich (natürlich hab ich url.de durch meine Localhost-Adresse ersetzt ;)) --> meine EXE-Datei wird im Browser geöffnet statt zu downloaden (also sehe ich vieeeel kryptisches Zeuch im Browser). :(
Liegt das nur daran, dass es aufm localhost is, und wenn ich es ins Inet stelle, geht's? Oder was muss ich im Script ändern, damit er es downloaded? BTW: Ich bin ein blutiger Anfänger in PHP also wünsche ich mir auch Code und nicht nur: versuch mal <befehl> ;)
Onlinekatastrophe - So 30.10.05 12:29
ich denke online würd es gehen...ansonsten gibst du vorher noch nen anderen header mit!
OK²
JayK - So 30.10.05 13:27
Es is jetzt online, (Location Adresse durch die richtige ersetzt) und nu passiert überhaupt nix mehr von wegen öffnen oder gar download. :cry:
Zähler klappt wieder, aber weiter is nix. :?
Was denn für nen zusätzlichen header? Bitte Code, da ich von headern nich viel Ahnung habe! :flehan:
Andreas L. - So 30.10.05 18:01
Wo hast du das Script in deinen HTML-Source platziert? Wenn es unter dem Header (<head> bla bla ... </head>) bzw. in diesen steht wurde bereits ein anderer Header gesendet.
Du solltest das Script ganz am Anfang deiner HTML-Datei einfügen.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| <?php .... ... ?> <html> <head> ... ... ... </html> |
Wenn ich so recht überlege ist es eh quatsch in die Datei HTML-Source einzufügen, sieht eh niemand.
JayK - So 30.10.05 23:42
Vorher wars im <head> Tag drinne, un jetzt isses ganz am Anfang.
Und haha siehe da: es klappt! :D
Vielen Dank onlinehome!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!