ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
231
231
EMPFEHLEN
-
Hey,
ich möchte gerne mein Download Script um eine Statistik erweitern. Dazu möchte ich gerne erfassen ob, bzw wie oft ein Link geklickt wurde.
Ich hab schon einiges ergoogelt, und auch in Sufu erfahren. Z.b per Java oder Php mit hilfe eines "Zwischen Scripts". So das z.b der link dann so ist >
Code :1
http://url/download.php?p=/pfad/zur/dateixy.gzip
Doch das möchte ich nicht
Ich hab auch was von "onmouseclick event" o.ä gelesen. Doch das ist ja leider java
Hier ist mein DL script >
Kann mir da einer helfen ?Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<?php include ("cfg/functions.php"); loginuser(); echo('<b><font size="+1"><tc>Download-Zone</tc></font></b><br>'); connect(); $menu = mysql_query("SELECT ID, name, path, file FROM downloads ORDER BY ID"); $rows = mysql_num_rows($menu); if(mysql_num_rows($menu)>0) { for($i=0; $i<mysql_num_rows($menu); $i++) { $result = mysql_fetch_object($menu); echo("<table width='100%'><tr><td width='20%' valign='top'><tc><li>$result->name:</li></tc></td><td width='80%' align='left'><a href='$result->path/$result->file'>Download</a></td></tr></table>"); } } ?>
-
08.04.08 14:09 #2
Ich würde die Tabelle downloads einfach um ein Feld namens countdown erweitern.
Und sobald du die Datei download.php mit dem Parameter p öffnest, machst du ein
UPDATE auf die Tabelle und erhöst den countdown um eins.
-
08.04.08 14:09 #3
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
So wäre das ganze aber relativ einfach zu handeln. Musst ja nicht den gesamten Pfad zur Datei dazuhängen, sondern zum Beispiel einfach eine ID oder nur den Namen, und dann bei dem Downloadscript (welches die Datei dann zur Verfügung stellt) mit SWITCH - CASE die Datei auswählen. An der Stelle kannst dann das ganze entweder über Dateien oder per MySQL hochzählen lassen.Code :1
http://url/download.php?p=/pfad/zur/dateixy.gzip
Doch das möchte ich nichtÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Ja, aber wenn ich es richtig verstehe wird alles um 1 erweitert. Und das sobald wenn die Links angezeigt wird.
Hm. So hab ich es noch nicht gedacht
Zitat von Bratkartoffel
Doch statt ID's oder anderes, würde ich dann lieber den Namen haben
Z.b so >
[1]
Code :1
http://url/download.php?p=antivir
Datenkbank "downloads" sieht so aus >
Code :1
ID name path file
Zusammen gesetzt wird es so (am beispiel "mycms") >
Code :1 2 3 4 5
http://192.168.2.4(1)/mycms(2)/downloads(3)/mycms.7z(4) (1): n/a (2): n/a (3): path (4): file
Wie könnte ich also "name" weitergeben?
Also das dann es wie bei [1] aussieht?.Geändert von tomekk228 (08.04.08 um 14:45 Uhr)
-
08.04.08 14:46 #5
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hmm,
als wenn du das zum Beispiel so machst:
Code :1 2 3 4 5
download.php?file=abc oder download.php?fileid=1
und in der mysql tabelle steht:
Code :1 2
ID Name Pfad Downloads 1 abc dl/abc.exe 13
Die download.php würde dann so aussehen:
Der Aufruf von "download.php?file=abc" (genauso wie der Aufruf von "download.php?fileid=1") würde also zur Datei "http://server/dl/abc.exe" weiterleiten.PHP-Code:<?php
$file=$_GET['file'];
$fileid=$_GET['fileid'];
// Verbindung aufbauern
$query="SELECT Pfad, ID FROM files WHERE ID='" . $fileid . "' OR Name='" . $file . "';";
$result=mysql_query($query);
$datei=mysql_fetch_object($result);
$query="UPDATE files SET Downloads=Downloads+1 WHERE ID='" . $datei->ID. "';";
$result=mysql_query($query);
header("location: ./" . $datei->Pfad);
?>
So in der Art würde ich es lösen. (Ungetestet)Geändert von Bratkartoffel (08.04.08 um 14:51 Uhr) Grund: Ein paar Optimierungen
Über eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Das würde dann 2 Dateien benötigen
1, das script und das 2te wo die Links stehen. Ich mache es wie bei meinem Status script >
Nur wenn ich richtig verstehe, ist es dann das selbe wie am anfang auch oder? Also das bei allen ein + gemacht wird sobald die angezeigt werden. Weswegen ich dann 2 Files brauche?PHP-Code:<?php
include ("cfg/functions.php");
loginuser();
echo('<b><font size="+1"><tc>Online Status</tc></font></b><br>');
connect();
$menu = mysql_query("SELECT ID, url, name, port FROM status ORDER BY ID");
$rows = mysql_num_rows($menu);
if(mysql_num_rows($menu)>0)
{
for($i=0; $i<mysql_num_rows($menu); $i++)
{
$result = mysql_fetch_object($menu);
$fp = @fsockopen("$result->url", $result->port, $errno, $errstr, 20);
if (!$fp) {
echo("<table width='100%'><tr><td width='20%' valign='top'><tc><li>$result->name:</li></tc></td><td width='80%' align='left'><img src='$dead'></td></tr></table>");
}
else {
echo("<table width='100%'><tr><td width='20%' valign='top'><tc><li>$result->name:</li></tc></td><td width='80%' align='left'><img src='$live'></td></tr></table>");
}
}
}
?>
Edit: Leider funktioniert die Methode für mich nicht (das mit dem extra file). Da müsste ich mein ganzes CMS system umschreiben
(wegen includes, link aufbau usw).
Daher denke ich mach es per Buttons bzw Formular
Geändert von tomekk228 (08.04.08 um 16:08 Uhr)
-
So, ich habe es geschafft.
Danke an alle die mir geholfen haben und die Inspiration gegeben haben
Wer sehen will wie es geworden ist, kann hier gucken >
http://tomekk228.dyndns.org
login: public
pw: public
Und hier der Source >
Gruß, Tomekk.PHP-Code:<?php
include ("cfg/functions.php");
loginuser();
echo('<b><font size="+1"><tc>Download-Zone</tc></font></b><br>');
connect();
$menu = mysql_query("SELECT ID, name, path, file, counter FROM downloads ORDER BY ID");
$rows = mysql_num_rows($menu);
if(mysql_num_rows($menu)>0)
{
for($i=0; $i<mysql_num_rows($menu); $i++)
{
$result = mysql_fetch_object($menu);
echo("<form id=$result->ID name=$result->ID' method='post' action='index.php?p=download'>");
echo("<table>");
echo("<tr>");
echo("<td><div align='left'><tc>$result->name | $result->counter x Gedownloadet</tc></div></td>");
echo("</tr>");
echo("<tr>");
echo("<td><input name=$result->ID type='submit' class='liteoption' id=$result->ID value='Download' size='15' maxlength='15' /></td>");
echo('<td></td>');
echo("</tr>");
echo("</table>");
echo("</form>");
if(isset($_POST[$result->ID])) {
$icounter = mysql_query("UPDATE downloads SET counter=counter+1 WHERE ID='" .$result->ID. "';");
echo("<meta http-equiv='refresh' content='1; url=$result->path/$result->file'>");
}
}
}
?>
Ähnliche Themen
-
Title-Attribut (title="") von Link (<a href="">) mit Link versehen...
Von seVes im Forum HTML & XHTMLAntworten: 4Letzter Beitrag: 20.01.10, 11:31 -
Fehlermeldung: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt"
Von NotThatJenny im Forum VisualStudio & MFCAntworten: 3Letzter Beitrag: 09.09.07, 21:38 -
Abfrage "Download" oder "Öffnen"
Von bmxvoodoo im Forum PHPAntworten: 3Letzter Beitrag: 16.12.05, 11:17 -
link auf "enter" oder "esc" taste setzen?
Von Atti im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 24.08.05, 01:41 -
"Sub Main" wurde nicht in "LabCalculator.Form1" gefunden?
Von Christoph1972 im Forum .NET ArchivAntworten: 2Letzter Beitrag: 20.05.05, 17:31





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren