mysqldumper
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 22.11.2004, 16:22   #1
TP-Junior
 
Registriert seit: Nov 2004
Ort: Esslingen
bdarwin macht alles soweit korrekt
Question

Klickzähler.php wird bei IE 2 Mal ausgeführt?


Hallo,

auf einer Homepage im Musikbereich bieten wir den Besuchern an, RealAudio- bzw. mp3-Ausschnitte anzuhören. Da wir registrieren möchten, welcher Titel wie oft gehört wird, rufen wir bei den Links zum Anhören der Musik ein php auf, welches mittels header(...) und readfile(...) die Musikdatei an den Browser ausliefert und anschließend in der MySql-Datenbank den jeweiligen Zähler um 1 erhöht. Nun ist es jedoch dummerweise so, dass offensichtlich bei Aufruf über den IE irgendwie 2 hochgezählt wird. Dies kann ja eigentlich nur sein, wenn das php 2 Mal hintereinander aufgerufen wird - aber aus welchem Grund? Vom NS aus, funktioniert das Ganze wie gewünscht (zählt also nur 1 Mal hoch). Hat jemand eine Idee, woran das liegen könnte?

Hier der entscheidende Ausschnitt aus der php-Datei zum Zählen der Klicks (Quelltext sieht wegen Tests vielleicht etwas umständlich aus):

PHP-Code:
if ($typ == "ra")
{
  
header('Content-type: audio/x-pn-realaudio');
  
readfile($audiopath $datei);
  
// Die ra Statistik bei dem angegebenen Mix 1 erhöhen
  
$abfrage="SELECT stat_ra FROM mixe WHERE id='$id'";
  
$result mysql_query($abfrage);
  if (
$result == false)
  {
    
$error "Datenbankfehler: " mysql_error();
    
$errortip "";
    include(
"error.php");
  }
  while(
$reihe mysql_fetch_array($resultMYSQL_ASSOC))
  {
    
$e_stat_ra $reihe["stat_ra"];
  }
  
$e_stat_ra $e_stat_ra 1;
  
$abfrage "UPDATE mixe SET stat_ra='$e_stat_ra' WHERE id='$id'";
  
$result mysql_query($abfrage);
  if (
$result == false)
  {
    
$error "Datenbankfehler: " mysql_error();
    
$errortip "";
    include(
"error.php");
  }

Und hier der Link zum Aufrufen:

HTML-Code:
<a href="../shared/audio.php?typ=ra&id=<? echo $e_mixid; ?>&datei=<? echo $audiodateiname . ".ram"; ?>">
bdarwin ist offline   Mit Zitat antworten


Alt 22.11.2004, 17:51   #2
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
Zitat:
Nun ist es jedoch dummerweise so, dass offensichtlich bei Aufruf über den IE irgendwie 2 hochgezählt wird.
Da php eine serverseitige Skriptsprache ist, ist der Browser auf der Frontend Seite erschreckend egal; ich seh deinem Code (abgesehen davon, dass er sehr unschön ist ) auch nichts an, das dem IE veranlassen würde, die Seite zweimal zu laden.

Generell würde ich erstmal die Reihenfolge ändern: Erst statistik, dann Daten Streamen.

Danach würd ich mal in die access_log schauen, obs wirklich zweimal aufgerufen wird.
__________________
Zwei Dinge sind Unbestreitbar:
  • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
  • Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
Dennis The Menace ist offline   Mit Zitat antworten
Alt 22.11.2004, 18:33   #3
TP-Junior
 
Registriert seit: Nov 2004
Ort: Esslingen
bdarwin macht alles soweit korrekt
Nun ja, es ist definitv so, dass beim Anklicken der Links beim NS nur 1 Mal gezählt wird, und beim IE definitiv 2 Mal. Da in meinem Script definitiv nur 1 weitergezählt wird, kann das ja eigentlich nur daran liegen, dass es vom IE zweimal hintereinander aufgerufen wird - denke ich.

Zuerst hatte ich auch das Streaming ganz am Ende, ändert aber nichts am Resultat.

Das mit dem access_log muss ich noch nachschauen.

Dachte mir, dass es sich hierbei vielleicht um ein bekanntes Phänomen handeln könnte ...
bdarwin ist offline   Mit Zitat antworten
Alt 22.11.2004, 18:35   #4
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
Nicht wirklich bekannt; notfalls mal versuchen, weitere (wichtige) Headerinformationen zu senden. So liebe Sachen wie Cache, Size, Filename usw.

[edit]
Änder mal header('Content-type: audio/x-pn-realaudio'); um, so dass er es als Download sendet, und nicht als realaudio.

PHP-Code:
header('Content-Transfer-Encoding: none');
header("Content-Type: application/force-download");//^^damits auch ja überall klappt
header("Content-Type: application/octet-stream"); //^^damits auch ja überall klappt
header("Content-Type: application/download");    //^^ damits auch ja überall klappt 
__________________
Zwei Dinge sind Unbestreitbar:
  • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
  • Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

Geändert von Dennis The Menace (22.11.2004 um 18:44 Uhr).
Dennis The Menace ist offline   Mit Zitat antworten
Alt 22.11.2004, 20:08   #5
TP-Insider
 
Benutzerbild von loki
 
Registriert seit: May 2003
Ort: Aachen
loki ist auf einem guten Weg
Kann es vielleicht an dem DL Blocker vom neuen IE liegen, der die Dateien analysiert bevor er sie für den DL freigibt?

Ist nur ne Idee, die mir dazu spontan einfällt.
__________________
"Man muss die Welt nicht verstehen, man muss sich nur darin zurechtfinden."
Einstein

loki ist offline   Mit Zitat antworten
Alt 22.11.2004, 20:36   #6
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
Meine Idee war ähnlich, im sinne von, dass der IE beim ersten Aufruf halt den Realplayer öffnet und de rRealplayer selbst nochmal ne Verbindung zum Link aufbaut.
__________________
Zwei Dinge sind Unbestreitbar:
  • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
  • Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
Dennis The Menace ist offline   Mit Zitat antworten
Alt 22.11.2004, 21:57   #7
TP-Insider
 
Registriert seit: Jun 2001
Ort: Berlin
deck16 ist auf einem guten Weg
Warum nicht counter und stream trennen?
Datei mit counter wird aufgerufen und leitet dann weiter an die stream Datei.
__________________
<table> was my first love and it will be my last
deck16 ist offline   Mit Zitat antworten
Alt 23.11.2004, 00:20   #8
TP-Junior
 
Registriert seit: Nov 2004
Ort: Esslingen
bdarwin macht alles soweit korrekt
Zitat:
Zitat von deck16
Warum nicht counter und stream trennen?
Datei mit counter wird aufgerufen und leitet dann weiter an die stream Datei.
Gute Idee. Muss ich mal so versuchen. Kommt aber nur in Frage, wenn außer dem Real/Media-Player kein weiteres Fenster erscheint. Das ist Vorgabe.
bdarwin ist offline   Mit Zitat antworten
Alt 23.11.2004, 00:30   #9
TP-Junior
 
Registriert seit: Nov 2004
Ort: Esslingen
bdarwin macht alles soweit korrekt
Zitat:
Zitat von Dennis The Menace
Nicht wirklich bekannt; notfalls mal versuchen, weitere (wichtige) Headerinformationen zu senden. So liebe Sachen wie Cache, Size, Filename usw.

[edit]
Änder mal header('Content-type: audio/x-pn-realaudio'); um, so dass er es als Download sendet, und nicht als realaudio.

PHP-Code:
header('Content-Transfer-Encoding: none');
header("Content-Type: application/force-download");//^^damits auch ja überall klappt
header("Content-Type: application/octet-stream"); //^^damits auch ja überall klappt
header("Content-Type: application/download");    //^^ damits auch ja überall klappt 
OK. Das hatte den Effekt, dass wenn alle (oder auch nur eine) dieser Zeilen enthalten sind, die .php-Datei selbst zum Download angeboten wird. ABER: Dann wird auch beim IE nur 1 Mal gezählt. Also hat es offensichtlich etwas damit zu tun, auf welche Art der RealPlayer vom IE aufgerufen wird. Denn der NS macht das ja definitiv anders.
bdarwin ist offline   Mit Zitat antworten
Alt 23.11.2004, 00:44   #10
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
Naja, dann würd ich einfach ne 10 Sekunden IP Sperre für den Counter implementieren, oder eine html Weiterleitung von einer count.php zur stream.php

Zitat:
.php-Datei selbst zum Download angeboten wird.
Naja, man gibt ja die restlichen Header wie Dateiname/Größe auch an^^

PHP-Code:
header('Pragma: public');
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Content-Transfer-Encoding: none');
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition: inline; filename="' $selection '"');
header("Content-length: ".filesize($file));
readfile($file);
exit; 
Das scheint mit den meisten Browsern fehlerfrei zu funktionieren
__________________
Zwei Dinge sind Unbestreitbar:
  • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
  • Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

Geändert von Dennis The Menace (23.11.2004 um 00:47 Uhr).
Dennis The Menace ist offline   Mit Zitat antworten
Alt 23.11.2004, 00:47   #11
TP-Insider
 
Registriert seit: Jun 2001
Ort: Berlin
deck16 ist auf einem guten Weg
Mach doch folgendes.
Besorg dir ein Programm was dir alle HTTP header beim Aufruf anzeigt, sowas wie ein kleiner Proxy Server oder so.

Dann rufst du ein realfile mal direkt mit den verschiedenen Browsern auf und notierst dir die header.
Dann baust du entweder eine Browserweiche in dem streamscript, welches die entsprechenden header liefert oder probierst eine Kombination aus, die mit allen Browsern kompatibel ist.
__________________
<table> was my first love and it will be my last
deck16 ist offline   Mit Zitat antworten
Alt 23.11.2004, 00:51   #12
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Das Problem kenne ich z.B. bei dynamischen PDF-Dateien. Am einfachsten kann man das lösen, indem man den count zusätzlich in einer Session "flaggt". Und aufgrund dessen nicht den echten Counter nutzt sondern die session hochzählt. Ist die Session bei 2 wurde das Dokument einmal angezeigt -> Session zurücksetzen und man ist auf dem aktuellen Stand.

Gruss
Jan

EDIT
...ist nurmal ganz grob angerissen... man muss die session natürlich auch in anderen Fällen säubern... z.B. bei der Anzeige der Datei/Linkliste

Geändert von Stuck Mojo (23.11.2004 um 00:53 Uhr).
Stuck Mojo ist offline   Mit Zitat antworten
Alt 23.11.2004, 02:28   #13
TP-Junior
 
Registriert seit: Nov 2004
Ort: Esslingen
bdarwin macht alles soweit korrekt
Problem gelöst:

Ein einfacher Redirekt am Ende des Zählskriptes reichte schon aus:
PHP-Code:
header("Location: $audiodatei"); 
Manchmal denkt man einfach zu kompliziert, habe ich das Gefühl

Trotzdem danke an alle für die Tipps.
bdarwin ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Klickzähler.php wird bei IE 2 Mal ausgeführt? Klickzähler.php wird bei IE 2 Mal ausgeführt?
« Exceldatei öffnen -> editieren -> speichern ??? | PLz zu GeoDaten zuordnen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Probleme bei Darstellung einer Tabelle im IE ossah HTML Puristen 3 16.06.2004 20:14
Bei klick wird Flashdatei geladen, anstatt ausgeführt. Sin Flash 15 16.06.2004 12:11
else wird nicht ausgeführt g-star Traum-Dynamik 2 20.05.2003 00:16
Bei "meinFilm.loadMovie();" -> wird der Film nicht geladen...!? Pitti Platsch Flash 2 16.09.2002 19:44
Var Text wird mal Angezeigt und mal nicht the0bone Flash 3 28.08.2001 12:18


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:31 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67