madherby
Hallo,
einer meiner Kunden hat Probleme mit seinem Statistik - Programm. Wie auch immer möchte er ein neues um zu erfahren woher seine Kunden auf seine Webseite kommen. Er möchte damit wohl prüfen ob seine bezahlten Addlinks und Suchmaschineneinträge lohnend sind. Solange wir noch keine neue Stats - Software aufgezogen haben, dachte ich mir ich lese den REFERER eines ankommenden Kunden aus und sende diesen per E-Mail an meinen Kunden.
Leider klappt dies nur bedingt. Ich habe hieru das unten stehende Script geschrieben und dieses sende entsprechende E-Mails. Diese sind aber immer leer. MIr ist bekannt, das der REFERER von einigen Browsern nicht mit übergeben wird, aber ich habe das entsprechende Script mit verschiedenen Plattformen (Mac, Win) und diversen Browsern ausgetestet.
Liegt das fehlen eines Inhaltes in den verschickten E-Mails wirklich daran, das der REFERER nicht mit übergeben wird oder versuche ich den Inhalt von: $_SERVER['HTTP_REFERER'] einfach nur falsch auszulesen? Eine vergleichbare Sysntax hat beim Auslesen von Metatags einzelner Webseiten für eine interne Webseite gut funktioniert.
Ich wäre dankbar für Hinweise und Tipps.
Hier mein Quellcode:
<?
//Woher kommt der User?
$a=$_SERVER['HTTP_REFERER'];
//Angaben für die E-Mail
$an="xxx@web.de";
$betreff="HTTP-REFERER";
$nachricht="$a";
$von="herbert.kuboth@web.de";
//E-Mail senden
@mail($an,$betreff,$nachricht,"From: ".$von);
//Bildschirm - Meldung das Script ausgeführt.
echo "Fertig!";
?>
nobody08
hmm ich denke schon, dass das so gehen sollte.. vorallem wenn es lokal ja auch geht.. Schau deshalb vllt im PHP-Manual nocheinmal alle Hinweise und Warnungen dazu an, und prüfe evt noch, ob es bei phpinfo() Informationen z.B. über eine Deaktivierung dieser Variable gibt. Ansonsten weiss ich aber auch nix
Taz
Hallo,
erstelle doch mal bitte eine neue Datei mit den folgenden inhalt:
| php: |
1:
2:
3:
|
<?php
phpinfo();
?> |
|
Speicher die Datei auf deinen Webspace, und schreib den link dazu bitte hier auf, dann wissen wir mehr
ZeitenWandel
Ändern in:
Du definierst $nachricht mit dem Text $a, nicht mit der Variable! Einfach die Anführungszeichen entfernen!
Dann müsste es gehen!
Ansonsten mal anstatt $_SERVER['HTTP_REFERER'] das hier machen: $HTTP_REFERER
madherby
Laut der PHP Info sollte dieser Befehl kein Thema sein. Ich werde aber mal die von ZeitenWandler vorgeschlagene Notation probieren. Allerdings erst nach den Feiertagen ;-) Erst mal danke und frohe Pfingsten.
ZeitenWandel
| OffTopic |
| Wieso nennen mich alle ZeitenWandler? Seh ich aus wie Merlin und wandel durch Zeit & Raum ^^ |
Sry, musste aber sein
Taz
| Zitat: |
Original von madherby
Laut der PHP Info sollte dieser Befehl kein Thema sein. Ich werde aber mal die von ZeitenWandler vorgeschlagene Notation probieren. Allerdings erst nach den Feiertagen ;-) Erst mal danke und frohe Pfingsten. |
Schreib doch mal den Link zu deiner phpinfo datei auf
madherby
Sorry ZEITENWANDEL ich habe mich schlicht und einfach verlesen ;-)
nobody08
| Zitat: |
Original von ZeitenWandel
Ändern in:
Du definierst $nachricht mit dem Text $a, nicht mit der Variable! Einfach die Anführungszeichen entfernen!
Dann müsste es gehen!
Ansonsten mal anstatt $_SERVER['HTTP_REFERER'] das hier machen: $HTTP_REFERER |
hmm wird wohl beides nix bringen
zu 1.: Das müsste er nur, wenn er die einfachen Anführungszeichen (') verwendet hätte
und 2.: $REFERER ist so viel ich weiss noch unkompatibler, weil dann noch register_globals auf on sein muss, damit das klappt
Aber etwas besseres weiss ich auch nicht...

ausser halt das mit phpinfo().
ZeitenWandel
| Zitat: |
Original von nobody08
und 2.: $REFERER ist so viel ich weiss noch unkompatibler, weil dann noch register_globals auf on sein muss, damit das klappt
|
Huch, dann muss ich direkt mal was in meinem Script ändern
madherby
Danke erst einam für die Tipps.
Ich habe mein Script entsprechend umgearbeitet. Ich habe neben dem REFERER nun auch den User Agent miittels einer ähnlichen Notation abgefragt. Dazu habe ich die Variable mal mit "" und mal Ohne "" Zeichen in die entsprechende Variable für die Nachricht der zu versendenden E-Mail geschrieben. Der User Agent ist mir in beiden Fällen mitgeteilt worden, der REFERER nicht.
Das mit der PHPINFO(); ist so eine Sache, das Script läuft noch auf meinem privaten virt. Server und soll aber im Endeffekt auf einem anderen Server laufen. Ein Prüfen der PHPINFO(); erscheint mir hier erst Sinnvoll wenn das Script auch kein Ergebniss betreffend des REFERERS auf dem anderen Server ergibt, wo müßte dann was in der entsprechenden PHPINFO(); stehen?
Nach so vielen "entsprechends" hier der Code, auf Schleifen habe ich verzichtet ;-)
<?
//Woher kommt der User?
$a=$_SERVER['HTTP_REFERER'];
//Welchen Browser nutzt der User?
$b=$_SERVER["HTTP_USER_AGENT"];
//Angaben für die E-Mail
$an="xxx";
$betreff="HTTP-REFERER";
$betreff1="HTTP-REFERER-1";
$betreff2="HTTP-REFERER-2";
$betreff3="HTTP-REFERER-3";
$nachricht="$a";
$nachricht1=$b;
$nachricht2=$a;
$nachricht3="$b";
$von="xxx";
//E-Mail senden
@mail($an,$betreff,$nachricht,"From: ".$von);
@mail($an,$betreff1,$nachricht1,"From: ".$von);
@mail($an,$betreff2,$nachricht2,"From: ".$von);
@mail($an,$betreff3,$nachricht3,"From: ".$von);
//Meldung
echo "Ausgeführt!";
Ich bin für weitere Ideen immer dankbar!
Blacksoul
Hallo..
das soll ja ne Art Statistik werden oder? - (grade kein Bock oben nochma alles zu lesen^^)
Warum speicherst du den Browser und Ref nicht in einer DB, statt es an den Webmaster zu senden...
mfG
madherby
Soll ja nur eine Übergangslösung für einen meiner Kunden sein, bis ein neues Statistik - System auf seinem Server aufgezogen worden ist. Eine Datenbank wäre hier zu viel des Guten. Allerdings wird das neue System wohl Morgen auf den Server aufgespielt. Ich teste aber das Script schon aus Interesse auf diesem Kundenserver. ICh danke für die Tipps und bin so frei das Thema abzuschliessen ;-)
Taz
Sorry, wollte nur noch mal kurz was zu dem Thema sagen und habe mir erlaubt das Thema wieder zu öffnen.
$_SERVER['HTTP_REFERER']
Diese Globale Variable muss nicht zwingend vorhanden sein! Folgende Möglichkeiten ergeben sich da:
- Wenn der User zb. keinen Referer überträgt
- Wenn der User die Seite direkt aufruft
- Wenn ein DeReferer Service genutzt wird
Hier mal ein Praktisches Beispiel. Auf
dieser Seite von mir, wird unter anderem
ggf. angezeigt woher der User kommt.
- MIT Referer
- OHNE Referer
Ich hoffe das ich dir damit weiter helfen konnte
madherby
Jein ;-) Hast du mit einem Ähnlichen Code wie ich gearbeitet und die Variable $_SERVER['HTTP_REFERER'] ausgelesen? Wenn ja, weshalb erhälst du dann ein verwertbares Ergebnis und ich nicht? Aber ich habe zumindest einen Denkanstoß bekommen ;-)
Danke erst einmal.
madherby
Yes, mit einem Link auf die Seite mit dem PHP - Quellcode klappt es! Ich danke, darauf wäre ich nie gekommen!