• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Zähler zum Downloads zählen

Mopser1969

Neues Mitglied
Hallo an alle,

als erstes muss ich mal sagen das ich absoluter Laie bin bei solchen Sachen und ich Idioten sichere Anleitung brauche. Ich hab schon so viel gelesen aber bekomme es nicht hin.

Erstmal ein paar Fakten.

Habe mir eine HP mit Website X5 gebastelt ( skyline-eschwege.de )
Der Server ist bei Netui gemietet der auch php unterstützt.

Auf dieser HP soll es Freemodelle für EEP geben. Ich möchte eigentlich nur das die Anzahl der Downloads immer auf der Seite des Betreffenden Artikels steht oder die Gesamten Downloads aller Modelle auf der 1 Seite.
Sorry, ist für euch sicherlich eine Kleinigkeit.

Hoffe es hat einer die MUSE mir da unter die Arme zu greifen, gerne auch per SKYPE ( Stefan Orlik )

Danke
Stefan
 
Werbung:
Du benötigst ein Script, dass den Counter in einer DB hochzählt und dann die Datei ausliefert. Ein direkter Link auf die Datei funktioniert nicht, da du sonst nicht mehr dazwischen kommst, um den Counter zu erhöhen.

Hast du denn auch eine Datenbank zur Verfügung, oder müsste man das mühseelig mit einer Textdatei zusammenschreiben?

Ganz so schwer ist dein Vorhaben nicht, aber ohne Grundkenntnisse in PHP wird das nicht funktionieren.

Und nochwas: per Skype würde ich zumindest nicht helfen, und mit dieser Meinung werde ich nicht alleine dastehen.
 
Danke erst mal für die schnelle Antwort, war nur ein Gedanke mit Skype, da ich mit C4D die 3D Modelle erstelle und auch mit Skype anderen Usern helfe. Geht über Skype besser beim Bauen.

Wie gesagt habe davon keine blassen schimmer, in der Config vom Server hab ich das gefunden. Kann dir auch noch ein Bild mit FileZilla machen von der Ordnerstruktur wenn du das benötigst.

Danke schon mal
 

Anhänge

  • PHP LIste.JPG
    PHP LIste.JPG
    48,7 KB · Aufrufe: 8
Werbung:
Grüß dich.

Ich habe eine Skript rumliegen, das ich mal für einen ähnlichen Zweck gebastelt habe. Dort schalte ich zwischen jeden Link und dem Ziel eine Seite dazwischen, die mir eine Datenbank aktualisiert und dann zum Zielverzeichnis weiterleitet. Hierfür musst du aber mysqli benutzen. Aber kurz gegooglet und ratzfatz hast du die Dateien. In der db_connect.php werden die Daten deiner Datenbank gespeichert. In der functions.php sind die Befehle definiert, die mysqli benutzt. Mal ganz grob gesagt.

Du kannst die Datenbank manuell oder per Skript erstellen. Manuell kann ich dir nicht helfen, weil ich deine Umgebung nicht kenne. Ich mache es gerne so:

Code:
include('db_connect.php');
include('functions.php');
 
 $queryCreateUsersTable = "CREATE TABLE IF NOT EXISTS `downloads` (
    `id` int(11) unsigned NOT NULL auto_increment,
    `datei` TEXT NOT NULL default '',
    `aufrufe` int(255) NOT NULL default '0',
    PRIMARY KEY  (`ID`)
)";
if(!$mysqli->query($queryCreateUsersTable)){
    echo "Table creation failed: (" . $dbConnection->errno . ") " . $dbConnection->error;
}

Das Skript erstellt dir eine Tabelle. Die ID brauchst du, weil Datenbank. Das ist mir jetzt zu aufwendig. :D Die Spalte "Datei" soll den Namen beinhalten, der einem Download zugewiesen wird. In "Aufrufe" soll dann der Wert stehen, wie oft die Datei aufgerufen wurde. "int(255)" und "Text" waren von meinem Ursprungsskript übernommen. Habe mich jetzt nicht damit beschäftigt zu schauen, was hier am sinnvollsten ist.

Du hast jetzt eine Datenbank, in der du die Informationen speichern kannst. Für den Download musst du jetzt jedoch noch den Datensatz anlegen, den du dann bei jedem Download aktualisieren möchtest.
Code:
// Einmal ausführen:
$sql = "INSERT INTO downloads (id, datei, aufrufe)

VALUES ('' , 'download', '0')";

if (mysqli_query($mysqli, $sql)) {
echo 'lol';

} else {
  echo "Fehler: <br><br>" . $sql . "<br><br><br>" . mysqli_error($mysqli);
}
 mysqli_close($mysqli);

Das solltest du jedoch nur einmal pro Download durchführen. Jedesmal wenn dieses Skript ausgeführt wird, wird ein neuer Datensatz erstellt, der den Namen des Downloads in die Datei-Spalte schreibt. Das wird dann eklig.

Wenn das bis hierhin geklappt hat, hast du eine Datenbank, in der dein Download mit den Anzahlen der Aufrufe gespeichert werden kann. Zum jetzigen Zeitpunkt steht in der Datenbank dein Produkt namens "Download" mit einer Aufruf-Anzahl von 0.

Nun kannst du einen Link erstellen. Der Link verläuft jetzt jedoch nicht zum Ziel, sondern auf eine neue php-Seite. In meinem Fall habe ich sie "zehler.php" genannt. (neue Rechtschreibung)

Code:
<a href="zehler.php">Zum Download</a><br>

Die zehler.php ist nun wie folgt aufgebaut. Zunächst sucht sich das Skript in der Datenbank die Zeile raus in der die entsprechende Datei vermerkt ist:

Code:
include('db_connect.php');
include('functions.php');
 
 $sqlX = "SELECT * FROM downloads";
    $resultX = $mysqli->query($sqlX);
 
if ($resultX->num_rows > 0) {
    while($rowX = $resultX->fetch_assoc()) {

Im prinzip seht da "Wähle aus der Tabelle Downloads alle zeilen. Noch funktioniert das, weil wir nur eine zeile haben. Wenn wir mehrere Zeilen drinnen hätten (also verschiedene Downloads) müsstest du bei dem Select * From downloads ein "Where datei = 'download'" hinten dran hängen. Wäre wahrscheinlich sogar noch präziser.. :confused:

Wie dem auch sei. Hier liest du die Anzahl der bisherigen Aufrufe aus (momentan noch 0). Dann soll er den Wert erhöhen.

Code:
$number = $rowX['aufrufe'] + 1;

Und das ganze wieder in der Datenbank abspeichern.

Code:
$sql = "UPDATE downloads
 
    SET
    aufrufe = '$number'
      
     WHERE datei = 'download'";
 
    }}

Der 5-Zeiler aktualisiert dann die Datenabnk und sorgt dafür, dass in der Datenbank der Wert um eins hochspringt. Wenn alles richtig funktioniert, soll er dann automatisch zum Download weiterführen. Gibt es einen Fehler, soll er ihn uns melden.

Den Wert kannst du dir dann aus der Datenbank auslesen.

Code:
$sql = "SELECT * FROM downloads WHERE datei = 'download'";
$result = $mysqli->query($sql);
                        
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
 
$number = $row['aufrufe'];

Du musst der Datenbank dann einfach sagen, dass du aus der Tabelle "downloads" aus der zeile, in der die "datei = download" vermerkt ist, die Aufrufe ($number = $row['aufrufe'];) auslesen und ausgeben möchtest.

Das Skript ist jetzt wahrscheinlich nicht die Krönung der Programmierkunst, aber es funktioniert. 1-2 Sachen sollten dann noch verfeinert werden, wenn es beispielsweise mehrere Downloads gibt. Aber für einen einzelnen Download, klappt das für mich prima.

An sich ist es recht banal.

Lieben Gruß.
 
Ich danke dir für die Erläuterung, das sind alles bömische Dörfer für mich. Recht Banal ,für dich vielleicht, ich bekomme das nicht hin.

Aber trotzdem ein DANKE an alle
 
Werbung:
Danke "JPN" für die mühe die ich gemacht habe, aber alle fragen die ich habe kann mann einfach nicht schreiben da ich es einfach nicht hin bekomme........ Hab schon so viel ausprobiert aber nix rennt, schade
 
Werbung:
Hallo bdt, Danke für die GEDULD mit mir, hab halt keine Ahnung davon.

Erst mal möchte ich das die Downloads auf meiner HP gezählt und Angezeigt werden.
Habe im Internet ja reichlich gefunden dazu.
Einmal das hier...
http://forum.jswelt.de/tutorials-php/58657-einfacher-download-counter-anleitung-f-r-anf-nger.html

das erstellen mit dem Ordner klappt ja und auch die Datei Download habe ich erstellt mit einem PHP Editor. Nur weiss ich nicht wie ich das in meine Homepage einbinde und wo die Eigentliche Download-Datei liegen soll.
Auf meiner HP ( skyline-eschwege ) sollte mann sich den Altkleidercontainer als Freemodell laden können. Hatte mal ein JPG auf mein GOOGLE Drive geladen und einen LINK dahin eingefügt. So konnte mann es sich dann Downloaden.

Auch habe ich das im Tutorial versucht, leider vergebens.

Ich danke dir schon mal für deine erneute Hilfe

https://drive.google.com/open?id=0B4ulSJCiBnaFZmhfUFhqemk2SDg

Das ist der Link zu dem Tutorial. Auf Seite 7-9
 
Wobei hier die Frage ist sind die Dateien Download.php und das Bild da richtig?
 

Anhänge

  • Auf dem Server.JPG
    Auf dem Server.JPG
    56,1 KB · Aufrufe: 2
Werbung:
Hier noch ein paar Bilder.

Danke für eure HILFE.
 

Anhänge

  • Aufbau.JPG
    Aufbau.JPG
    132,2 KB · Aufrufe: 4
  • Download.JPG
    Download.JPG
    73,1 KB · Aufrufe: 3
  • Seitenstruktur_X5.JPG
    Seitenstruktur_X5.JPG
    112,5 KB · Aufrufe: 3
Zurück
Oben