'versteckter' Downloadzähler

Ich habe ein ZIP hochgeladen, darin befindet sich keine test.php


Dass PHP-Code idR. nur in PHP-Dateien funktioniert, ist hoffentlich klar, falls du das mit einer HTML-Datei probierst.

Ja klar, mit diesen Dateien geht bei mir alles perfekt.. es wird auch alles schön in die MySQL-Tabelle geschrieben.. nur die ausgabe funktioniert nicht.. die Datei heißt downloads.php und sieht wie schon gepostet so aus.. nur funktioniert sie nicht (so wie ich gesagt habe dass nur ein weißes Fenster und der halbe Titel angezeigt wird) :(

PHP:
<?php
error_reporting(E_ALL);
include("download.php");
?>  
<html>
<head>
<title>Der Remix wurde <?php echo counter('Remix.mp3');?> mal runtergeladen.</title>
<style type="text/css">
<!--
body,td,th {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px;
	color: #000000;
}
body {
	background-color: #000000;
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
.Stil1 {color: #FFFFFF}
-->
</style>
<head>
</head>
<body>
<table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  <!--DWLayoutTable-->
  <tr>
    <td width="100%" height="100%" align="center" valign="middle"><span class="Stil1">Der Remix wurde </span><?php echo counter('Remix.mp3');?><span class="Stil1"> mal runtergeladen.</span></td>
  </tr>
</table>
</body>
</html>

gruß
 
nur funktioniert sie nicht

Das kannst du jetzt von mir aus noch 20 mal schreiben, Punkte bringt das keine :rolleyes:

Der Aufruf von counter() bringt in jedem Fall eine Ausgabe,

PHP:
function counter($arg)
        {
          $field=(is_numeric($arg))?'`id`':'`file`';
          
          $sql=mysql_query('SELECT `anzahl_downloads` 
                              FROM `tabellenname` 
                                WHERE '.$field.' = "'.mysql_real_escape_string($arg).'"')
              or die('ERROR:SELECT');
          
          return (@mysql_result($sql,0)*1);
        }
  1. counter() existiert nicht->PHP-Fehlermeldung
  2. $arg existiert nicht->PHP-Fehlermeldung
  3. SELECT schlägt fehl->"ERROR:SELECT"
  4. SELECT liefert kein Ergebnis->0
  5. Ergebnis vorhanden->Ergebnis
 
Das kannst du jetzt von mir aus noch 20 mal schreiben, Punkte bringt das keine :rolleyes:

Der Aufruf von counter() bringt in jedem Fall eine Ausgabe,

PHP:
function counter($arg)
        {
          $field=(is_numeric($arg))?'`id`':'`file`';
          
          $sql=mysql_query('SELECT `anzahl_downloads` 
                              FROM `tabellenname` 
                                WHERE '.$field.' = "'.mysql_real_escape_string($arg).'"')
              or die('ERROR:SELECT');
          
          return (@mysql_result($sql,0)*1);
        }
  1. counter() existiert nicht->PHP-Fehlermeldung
  2. $arg existiert nicht->PHP-Fehlermeldung
  3. SELECT schlägt fehl->"ERROR:SELECT"
  4. SELECT liefert kein Ergebnis->0
  5. Ergebnis vorhanden->Ergebnis

Ich bin hier nicht wegen den Punkten ;) Habe ich es denn falsch aufgerufen oder so? Ein Fehler im Code?

crix
 
Keine Ahnung, was du da gemacht hast, eines ist nur klar: du hast nicht das gemacht, was du vorgibst, gemacht zu Haben, denn dann hättest du wie gesagt in jedem Fall irgendetwas dort im title zu stehen(ungeachtet dessen, was dies sein mag).

Mit folgendem Code kannst du dich gerne davon überzeugen:jeder der Schritte bis zur erfolgreichen Ausgabe von counter() erzeugt im Fehlerfall eine Ausgabe, es kann also definitiv nicht sein, dass dort nichts ausgegeben wird.

PHP:
<?php
error_reporting(E_ALL);
function testen($test){}
?>

<hr>
<strong><u>Fehlende Datei einbinden:</u></strong>
<?php
include('nix');
?> 
<hr>
<strong><u>Funktion ohne erwartete Parameter aufrufen:</u></strong>
<?php
testen();
?> 
<hr>
<strong><u>Fehlerhaftes Query:</u></strong>
<?php
$sql=mysql_query('SELECT nix');
if(!$sql)echo('ERROR:SELECT'); 
?>
<hr>
<strong><u>Fehlendes Ergebnis:</u></strong>
<?php
echo @mysql_result($sql,0)*1;
?>
<hr>
<strong><u>Fehlende Funktion aufrufen:</u></strong>
<?php
funktion('nix');
?>


Ich verabschiede mich aus diesem Thema ;)
 
Keine Ahnung, was du da gemacht hast, eines ist nur klar: du hast nicht das gemacht, was du vorgibst, gemacht zu Haben, denn dann hättest du wie gesagt in jedem Fall irgendetwas dort im title zu stehen(ungeachtet dessen, was dies sein mag).

Mit folgendem Code kannst du dich gerne davon überzeugen:jeder der Schritte bis zur erfolgreichen Ausgabe von counter() erzeugt im Fehlerfall eine Ausgabe, es kann also definitiv nicht sein, dass dort nichts ausgegeben wird.

PHP:
<?php
error_reporting(E_ALL);
function testen($test){}
?>

<hr>
<strong><u>Fehlende Datei einbinden:</u></strong>
<?php
include('nix');
?> 
<hr>
<strong><u>Funktion ohne erwartete Parameter aufrufen:</u></strong>
<?php
testen();
?> 
<hr>
<strong><u>Fehlerhaftes Query:</u></strong>
<?php
$sql=mysql_query('SELECT nix');
if(!$sql)echo('ERROR:SELECT'); 
?>
<hr>
<strong><u>Fehlendes Ergebnis:</u></strong>
<?php
echo @mysql_result($sql,0)*1;
?>
<hr>
<strong><u>Fehlende Funktion aufrufen:</u></strong>
<?php
funktion('nix');
?>


Ich verabschiede mich aus diesem Thema ;)

Vielleicht versuche ich es einfach mit einer seperaten Datei.. ohne download.php zu includen.. die einfach die Downloadanzahl des gewünschten Songs ausgibt.. Hoffe dort lässt sich was finden..

Danke!!
 
Warum machst du''s dir nicht einfach?

Downloadlink:
http://deine-seite.de/musikpage.php?file=download

dann innerhalb der musikpage.php

PHP:
if ($_GET['file']=='download'){
   //Code für den Zähler
   header ("Location: //link zur mp3");
}

also so wie es jetzt ist ist es perfekt :) nur mit dem Ausgeben.. da wäre halt cool wenn ich da was hätte wo ich in der Datei die ID des Songs eingeben muss und die Anzahl der Downloads dann ausgegeben werden kann, in Form einer extra Seite (Code steht weiter oben)

gruß
 
Dann mach doch ein Eingabefeld, wo du die ID einträgst.
Beim klick auf 'nen Submitbutton, wird die Anzahl der Downloads ausgegeben

also in etwa so

download.php
PHP:
echo '<form name="count" method="post" action="download.php?link=count" />';
echo '<input type="text" name="songid" />';
echo '<input type="submit" value="Anzahl Downloads" />';

if ($_GET['link']=='count'){
    $songid = $_GET['songid'];
    $sql = "SELECT * FROM songs WHERE songid = ".$songid."";
    $result = mysql_query($sql);
    $echo = mysql_fetch_array($result);
    echo $echo;
}

Musst du nurnoch entsprechend auf deine Datenbank zuschneiden ^^
 
Zuletzt bearbeitet:
Zurück