Einbindungen eines iframes zählen

Hallo liebe Community,

ich stelle ein täglich wechselndes Zitat bereit, dieses wird von einer PHP-Datei ausgegeben.

Nutzer können nun einen iframe-code kopieren der auf die PHPDatei zurück führt.

Nun meine Frage - Ist es möglich zu zählen auf wie vielen (oder sogar auf welchen) Internetseiten die Datei eingeblendet wird?

Die Datei gibt auch einen Link aus könnte man einen Backlinkzähler verwenden?

Mit freundlichen Grüßen

MaxT :wink:

Damit müsste jede Seite, am besten per GET-Verfahren, also mittels der URL, ihre URL beim Aufruf mitgeben. Der Link zum Einbinden auf bplaced.net müsste also so lauten: domain.com/zitat.php?back=bplaced.net

Dann kannst du mit PHP und MySQL die Einbindungen registrieren (in den Kopf der PHP-Datei):

[code]/*
MySQL-Verbindung herstellen…
*/

$res = mysql_query(“SELECT * FROM integrations WHERE domain=’” . $_GET[‘back’] . “’”);
if($row = mysql_fetch_array($res)) {
$res = mysql_query(“INSERT INTO integrations(domain, added) VALUES(’” . $_GET[‘back’] . "’, "’ . time() . “’)”);
}[/code]

Die MySQL-Tabelle integrations sollte dann so aussehen:

id: INT(11), Extras: auto_increment, Schlüssel: Primärschlüssel. domain: VARCHAR(255). added: TIMESTAMP.

du kannst das ganze auch noch als txt datei speichern
da hab ich was für dich: php-kurs.com/dateien-mit-php … aehler.htm

Ist das nicht überflüssig?
Da das Zitat per PHP erzeugt wird, hat man doch dort $_SERVER[“HTTP_REFERER”] zur Verfügung.

nö dann kommt das trotzdem von deinem server weil es ja ein IFRAME ist …
ein iframe funzt nicht wie include oder so ein iframe ruft eine seite auf und diese seite wird dann in ein kleines fenster reingepackt …
also hier ein passendes script:

<?php
if($_GET['iframe'] == "true")
{
// Lesen der Datei
$dateinamen = "iframeviews.txt";
$handle = fopen ($dateinamen, "r");
$inhalt = fread ($handle, filesize ($dateinamen));
fclose ($handle);
$inhalt = $inhalt + 1; 
// Schreiben des neuen Wertes
$handle = fopen ("iframeviews.txt", "w");
fwrite ($handle, $inhalt);
fclose ($handle);
}
HIER STEHT DER SCRIPT DER BIS JETZT DRINNE IST !!!
?>

das iframe bettest du so ein:
deinusername.bplaced.net/link/zu … einame.php?iframe=true

PHP als Browser-Header (unsicher):

oder ein Javascript (mögl. deaktiviert):

wobei ich sagen muss, dass die Javascript-Methode eindeutig üblicher ist (Werbeanbieter, Youtube, etc…)

Vielen lieben Dank für die vielen Lösungen. :slight_smile:

Also ich hab’ nun miniurls Lösungsansatz versucht umzusetzen. Doch das will nicht so ganz wie es soll.

Meine index.php welche das Zitat ausgibt sieht nun so aus:

<table>
 <tr>
  <td><a href="http://meine.bplaced.net/" target="_blank"><img src="bild.png" border="0"></a></td>
  <td valign="middle"><font size=-1 face=arial>
  
  
  <?php
if($_GET['iframe'] == "true")
{
// Lesen der Datei
$dateinamen = "iframeviews.txt";
$handle = fopen ($dateinamen, "r");
$inhalt = fread ($handle, filesize ($dateinamen));
fclose ($handle);
$inhalt = $inhalt + 1;
// Schreiben des neuen Wertes
$handle = fopen ("iframeviews.txt", "w");
fwrite ($handle, $inhalt);
fclose ($handle);
}
  
  
/*
* Die Zitate werden alle in einem Array gespeichert.
*/
$zitate = Array(
"Meditation bedeutet Weisheit. Mangelnde Meditation bedeutet Ignoranz. Wisse, was dich voranbringt oder hemmt.<br /><b><a href='http://de.wikipedia.org/wiki/Buddha target='_blank'>Buddha</a></b>",
"Zu viele Herrscher sind nicht gut. M&ouml;ge ein Herrscher als K&ouml;nig regieren!<br /><b><a href='http://de.wikipedia.org/wiki/Herodot target='_blank'>Herodot</a></b>",
"Innerhalb der letzten 3.500 Jahre gab es insgesamt nur 230 Jahre ohne Krieg in der zivilisierten Welt.<br /><b><a href='http://zitat.bplaced.net/unbekannt/' target='_blank'>Unbekannt</a></b>"
);
/*
* Nun wird die Nummer des Zitates vom aktuellen Tag berechet.
* Hierzu wird die Modulu Operation (%) benutzt.
* Modulo ist der Rest der Ganzahldivison. 12/10 gibt 1 Rest 2, also ist der Modulowert 2.
* 20/10 gibt 2 Rest 0. Also ist der Modulowert 0.
* 
* date('z')ist der Tag im Jahr. Die Zitate werden also immer wieder durchgewandert.
*/
$zitate_nr = date('z') % sizeof($zitate);
echo $zitate[$zitate_nr];
?></font></td>
 </tr>
</table>

Im selben Verzeichnis habe ich auch noch die Datei “iframeviews.txt” angelegt und das ganze natürlich gleich mal getestet, allerdings ist die Textdatei noch immer leer.

Was mache ich falsch?

Mit freundlichen Grüßen

MaxT :wink:

Du musst in die iframeviews.txt als Ausgangswert “0” eintragen, denn zum Inhalt der Datei wird 1 addiert ($inhalt = $inhalt + 1;). Dass bei der Erhöhung von NULL (also kein Inhalt) nichts herauskommt, ist klar, sofern PHP da jetzt nicht besonders gütig ist und aus nichts+1 1 macht.

Du weißt allerdings, dass so alle Aufrufe und nicht nur die Seiten, die das iFrame beinhalten, gezählt werden, oder?

Edit: Nein, das ist nicht das Problem. Es geht mit 0 nicht. Ich werde mal weiterprobieren.

in die textdatei wird nichts reingeschrieben weil du ein ?iframe=true hintendran an die adresse hängen musst :wink:

/Edit: du musst die iframeviews.txt natürlich erst erstellen …
has mal lokal getestet
habs 9 mal aufgerufen
da drinne stht jetz: 9
in der txt muss nix drinnenstehen
die kann leer sein
nur die txt datei muss existieren und die variable ?iframe=true muss aktiviert sein :wink:

Es hat aber auch so erst nicht funktioniert - er ist am Auslesen hängengeblieben… Keine Ahnung, was da falsch war, jetzt geht’s auf jeden Fall komischerweise.

na dann viel spaß mit dem script und du auch MaxT

Echt mysteriös… Ich hab da rumprobiert und alles - aber ich hab den Code, den ich jetzt hab mit dem alten verglichen, da ist wirklich nichts anders dran. Trotzdem wurde für fread ein Fehler ausgegeben - als ob die Datei erst noch nicht erkannt worden wäre…

Vielen lieben Dank, funktioniert alles.

Gerade kommt mir Google Analytics in den Sinn. Ist zwar etwas neugierig. Aber müsste doch eigentlich funktionieren.

Gleich mal ausprobieren. :slight_smile: