![]() |
[PHP] Counter erhöhen
Hi,
in mein neustes Programm soll auch ein Online Update rein. Da ich bei meinem Password Saver zum Beispiel keine Ahnung habe ob den irgendjemand nutzt habe ich mir gedacht man könnte vielleicht auf meinem Server einfach nur eine Datei mit einer Zahl drinnen erstellen, die immer wenn jemand updatet um eins erhöht wird. Technisch ist das sicherlich möglich aber ich weiß leider nicht wie. Ich habe mich ein bisschen erkundigt und habe herausgefunden, dass man z.B. mit TIdHttp1 von den Indys per Post Funktion das machen kann. In Delphi müsste ja dann irgendwie der Php Datei gesagt werden, dass die Php Datei einen Counter um eins erhöhen soll. Da ich mich noch nie mit Php beschäftigt habe mir aber dennoch diese Funktion wichtig ist, bin ich auf euch angewiesen. Per Ftp Upload wäre das ganze zwar prinzipiell auch möglich aber dann könnte ja jeder mit seinen Sniffer das Passwort und den Username von meinem FTP Server auslesen, und das will ich nicht :mrgreen: . Ich bitte euch wenn Ihr mir nicht helfen wollt, sondern wieder Kritik über mich verbreiten woll, die nicht in diesem Post zu tun, da das der Übersichtlickeit nicht gut tut. :? MFG Lars Wiltfang |
Re: [PHP] Counter erhöhen
Hi!
Im Prinzip wäre es am einfachsten, wenn die PHP-Datei die ganze Arbeit macht (sprich Einlesen der Zahl, erhöhen, wieder abspeichern) und du diese PHP-Datei dann z.B. mit den Indys einfach nur kurz aufrufen musst. Ist dein Webspace php-fähig? Ciao, Frederic |
Re: [PHP] Counter erhöhen
Genau so habe ich mir das vorgestellt. :thumb:
Ja, ist er. :) |
Re: [PHP] Counter erhöhen
Hi!
Hast du dann noch eine konkrete Frage? Ciao, Frederic |
Re: [PHP] Counter erhöhen
Ja, ich habe mich noch nie mit Php beschäftigt und falls sich hier zufällig damit auskennt wäre es freundlich mir zu erklären wie ich das angehen muss. Ich halte es für übertrieben jetzt ein Gesamtes Einsteigertutrial durchzulesen, da mein konkrektes Beipsiel da wohl auch nicht beantwortet wird und ich keine Zeit habe mir sowas ganz durchzulesen.
|
Re: [PHP] Counter erhöhen
Funktioniert genauso, wie auf Dateien basierende Seitenaufrufszähler mit PHP. Dazu sollte es genug Besipiele im Internet geben.
|
Re: [PHP] Counter erhöhen
Etwas oversized, aber hier ein Beispiel:
![]() |
Re: [PHP] Counter erhöhen
Hallo,
ich würde die Zahl an deiner Stelle in einer Textdatei speichern (per FTP anlegen und ChMod auf 777 setzen). Eine Datenbank wäre etwas übertrieben und da kann man sich leicht Sicherheitslücken einbauen. Die PHP könnte grob so aussehen:
Code:
Nur so aus dem Kopf hingetippselt. Der Aufruf der Datei erhöht dann den Counter. Ein POST-/GET-Parameter muss nicht übergeben werden.
<?php
define('MY_FILE', 'counter.txt'); $counter = 1; if (file_exists(MY_FILE)) { $file_handle = fopen(MY_FILE, 'r'); $counter = fgets($file_handle); fclose($file_handle); $counter = (!empty($counter)) ? $counter + 1 : 1; } $file_handle = fopen(MY_FILE, 'w'); fputs($file_handle, $counter); fclose($file_handle); // evtl. eine Ausgabe für dich zur Kontrolle: echo 'Wert: ' . $counter; ?> Grüße, Matze |
Re: [PHP] Counter erhöhen
Ich habe es jetzt selber hinbekommen aber trotzdem danke, Matze und die anderen. Also in meiner Variante wird einfach nur eine Zeile hinzugefügt in die Textdatei. Wie rufe ich denn jetzt die Php Datei auf? Mit Idhttp1.Post oder geht das anders?
|
Re: [PHP] Counter erhöhen
Dann zeige uns doch mal deine funktionierende Lösung, damit andere auch eine haben, die sie anwenden können.
Meins war ja nur aus dem Kopf und kann ohne weiteres Fehler enthalten. Grüße, Matze Edit: Du kannst sie per Post() oder Get() aufrufen, wenn du keine Parameter auswertest. Aber ich kenne deine PHP-Datei nicht, zeige sie mal bitte. |
Re: [PHP] Counter erhöhen
Code:
Damit nicht so viele doppelte Einträge sind speicher ich einfach die Ip. In Delphi werde ich dann die Anzahl auswerten und die Datei automatisch jeden Tag leeren lassen.
<?
$fp=fopen("diedatei.txt","a+"); fwrite($fp,$_SERVER['REMOTE_ADDR']."\n"); fclose($fp); ?> Edit: Und ich habe die Lösung nicht einfach aus irgendeiner Website kopiert sondern sebler erarbeitet. |
Re: [PHP] Counter erhöhen
Wieso schreibst Du nicht einfach die Zahl rein? So bliebe die Datei schön klein.
|
Re: [PHP] Counter erhöhen
Das mit dem "einfachen" Post kriege ich irgendwie nicht richtig hin. Idhttp erwartet ja noch weitere Paramter aber ich will ja einfach nur die Datei aufrufen.
Delphi-Quellcode:
IdHttp1.post('http://wiltfang.wi.funpic.de/meinipskript.php');
klappt nicht. |
Re: [PHP] Counter erhöhen
Ich habe keine Indys installiert, aber statt Post sollte Get doch klappen, wenn ich nicht irre (das Script muss ja nur aufgerufen werden).
|
Re: [PHP] Counter erhöhen
Es können auch mehrere Leute mit der gleichen externen IP unterwegs sein. Also dafür die IP zu speichern ist in meinen Augen großer Quatsch.
Wie Detlef schrieb: Speicher die Zahl und gut ist. Die könntest du mit Delphi und Get() auch leicht und schnell auslesen, falls du das willst. Edit: Post() erwartet mind. einen 2. Parameter, soweit ich weiß. Doch das müsste dir doch Delphi mitteilen. :roll: Get() reicht für das Skript vollkommen aus. |
Re: [PHP] Counter erhöhen
Du gehörst wahrscheinlich auch zu den Leuten, die sich einen zweiten Monitor kaufen, wenn man auf dem ersten vor lauter Postit Zetteln, das Bild nicht mehr sehen kann oder? Aber gut, deine Lösung funktioniert natürlich auch, nur brauchst du jetzt ein zweites Programm oder Skript, welches dir die Anzahl der zeilen anzeigen kann, wenn du wissen willst, wie viele Leute dein Programm benutzen.
Also ich würde es auch für sinnvoller halten die Zahl in die Datei zu schreiben. Wie as geht, hat die Matze gezeigt. Und zum Erhöhen reicht einfaches aufrufen der Datei. Probier es im Browser aus. |
Re: [PHP] Counter erhöhen
Ok, jetzt geht alles. Hat sich geklärt.
|
Re: [PHP] Counter erhöhen
Wenn du das Skript von Matze nutzt, kannst du sie einfach löschen. Sie wird neu erstellt, wenn sie nicht vorhanden ist.
|
Re: [PHP] Counter erhöhen
Zitat:
Zitat:
Code:
SCNR :mrgreen:
file_put_contents("counter.txt", intval(file_get_contents("counter.txt"))+1);
Mit freundlichen Grüßen, Valle |
Re: [PHP] Counter erhöhen
Hi Valle,
ich habe schon Ewigkeiten nichts mit Textdateien gemacht. Bei einem früheren Hoster (vor 3 Jahren vllt.) hat es bei mir nur mit 777 funktioniert und meine bisherigen Hoster haben das alle unterstützt. Deine Kurzlösung ist natürlich fein, aber wie gesagt, da ich nie damit arbeite kann das schonmal eine umfangreichere Lösung werden. :mrgreen: Funktionieren tut sie, aber deine ist natürlich eleganter. Grüße |
Re: [PHP] Counter erhöhen
Wie is denn das rechtlich gesehen? Darf ich das jetzt teroretisch einfach in das Programm beim Update mit Reinpacken oder muss man da per Lizenzvertrag o.ä. zustimmen?
|
Re: [PHP] Counter erhöhen
Zitat:
Zitat:
Mit freundlichen Grüßen, Valle |
Re: [PHP] Counter erhöhen
Zitat:
Edit: @valle: Puh irgendein Freehoster war das noch, aber da hatte ich zu viele hinter mir. Shellmaster vielleicht, aber ich weiß es nicht mehr |
Re: [PHP] Counter erhöhen
Also die Datenspeicherung ist ja ein sehr sensibles Thema. Darf ich unbemerkt während der Update Prozedur bspw. meines Password Savers die Ip speichern oder muss da zugestimmt werden. Die Ip wird ja nicht dauerhaft gespeichert sondern auch wieder gelöscht sobald ich "gezählt" habe in meinem Delphi Programm.
|
Re: [PHP] Counter erhöhen
Lass die IP einfach weg, die brauchst du nicht. Nutze einen normalen Counter, dafür wurden 2 Lösungen genannt.
Was willst du denn unbedingt die IP speichern, das ist doch totaler Unsinn. |
Re: [PHP] Counter erhöhen
Zitat:
@Larsi: Warum willst du die IP denn speichern? Denke doch mal genau darüber nach. Du machst dir mehr Arbeit als nötig und gewinnst nichts daraus. Eine IP-Sperre ist sinnlos und verfälscht deinen Download-Counter nur. Setze lieber einen Cookie für 2h, der ein erneutes Zählen verhindert, das macht es wesentlich realistischer. Aber eine IP wirst du niemals brauchen... Mit freundlichen Grüßen, Valle |
Re: [PHP] Counter erhöhen
Ein beispiel zu diesem IP-Quatsch, vielleicht versteht Larsi dann, dass es Unsinn ist:
Wir haben hier im Haushalt 4 Computer, die über einen Router mit dem Internet verbunden sind. Der Router wählt sich ins Internet ein und erhält somit eine einzige externe IP. Intern werden natürlich verschiedene vergeben. Jeder PC, der sich nun ins Internet verbindet ist dort mit exakt der gleichen IP unterwegs. Wenn die 4 PCs nun dein Update herunterladen würden, stünden 4 identische IPs in deinem Log, obwohl es 4 verschiedene PCs/Benutzer waren. |
Re: [PHP] Counter erhöhen
Und die Internetprovider arbeiten auch nach diesem Schema, wenn ein Kunde sich abmeldet, wird die IP nach einer bestimmten Zeit wieder freigegeben und dann dem nächsten Kunden zugewiesen.
|
Re: [PHP] Counter erhöhen
Ich habe ja nur gefragt ob das ganze erlaubt ist und nicht ob es Sinn macht.
|
Re: [PHP] Counter erhöhen
Zitat:
Mit freundlichen Grüßen, Valle |
Re: [PHP] Counter erhöhen
Bevor du dir unsicher bist und dich in rechtliche Schwierigkeiten begibst lass doch den Blödsinn weg und freu dich, dass du eine 100% erlaubte Lösung hast, die zudem wenig Traffic erzeugt, wenig Webspace verbraucht, performant und kinderleicht auszulesen ist.
Oder bist du IP-Sammler? Dann kann ich dir auch einen IP-Generator schreiben ... |
Re: [PHP] Counter erhöhen
Gibt es einen mutigen unter euch, der das ganze mal testet? Ich verspreche euch hiermit das eure Ip sofort wieder lösche und nichts damit anstell. Im Anhang ist eine Exe, die einfach nur das mit dem Idhhtp1.get aufruft in Verbindung mit dem Ip Skript.
|
Re: [PHP] Counter erhöhen
Es geht.
Habe die Ips schong gelöscht. |
Re: [PHP] Counter erhöhen
Dass du so unvernünftig bist, kann ich nicht nachvollziehen. Was nun, wenn es rechtlich verboten ist und das rauskommt?
Aber gut, dass ist deine Sache. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz