Moin!
Jetzt möchte ich aber auch zählen wie oft auf eine eMail-Adresse geklickt wurde und übergebe in $url eine eMailadresse mit mailto:email@adresse.de.
Das ist für HTTP nicht definiert. Du machst da Müll. Nett, dass sich bei dir überhaupt was tut, aber das ist wohl eher Glückssache.
Leider klappt das dann nicht so gut, da ein neues Fenster geöffnet wird und dann der eMail-Client. Das Fenster bleibt dann offen mit er dem Wert von $url in der Adresszeile. Das Fenster sollte sich natürlich wieder automatisch schließen bzw. garnicht öffnen.
Es ist das typische Verhalten eines normalen Mailto-Links, dass der (wenn vorhanden) Mailclient geöffnet wird, wenn man den Link klickt. Der Browser fängt das Laden einer neuen Seite ab, indem er den Mailclient startet. Die angezeigte Seite verändert sich nicht.
Jetzt hast du etwas gebastelt, was diesen Mechanismus außer Kraft setzt. Es wird ein Weblink geklickt. Dieser lädt vom Server eine Ressource. Das bedeutet: Fenster leeren, Platz für die neue, kommende Seite machen.
Als "Seite" kommt jetzt aber eine Weiterleitung auf "mailto:". Dein Browser startet daraufhin den Mailclient, und kriegt (weil es technisch nicht geht - es gibt keine Weiterleitung mit _zwei_ Zieladresseb) ansonsten keine Information, was denn als HTML-Seite anzuzeigen ist.
Also bleibt das Browserfenster leer.
Kann mann da irgendwas in Header("Location: " . $url); übergeben, damit das Fenster nicht geöffnet wird?
Nein. HTTP hat keinerlei Einfluß auf Fenster. Es weiß noch nicht einmal, dass soetwas wie Fenster überhaupt existieren.
- Sven Rautenberg
"Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
(fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)