Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Wie HTTP_REFERER von HTML-Seite an PHP übergeben?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
WilliWusel
PostRank 9
PostRank 9
Beiträge: 1257
Registriert: 21.08.2006, 14:55

Beitrag von WilliWusel » 18.04.2007, 12:40

Hallo zusammen,

ich möchte auf jeder unserer Seiten einen Link "Seite empfehlen" einbauen (kein Problem). In dem sich öffnenden PopUp möchte ich den Referrer HTTP_REFERER retten (Problem) und später in einem PHP-Skript verwenden (der Referrer soll in der eMail angegeben werden).

Was muss ich in das PopUp (HTML) schreiben, was in das PHP-Skript? Bin absoluter Laie auf diesem Gebiet, daher bitte genau beschreiben. :roll:

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

semtex
PostRank 6
PostRank 6
Beiträge: 381
Registriert: 25.04.2007, 22:50

Beitrag von semtex » 25.04.2007, 23:35

Du brauchst doch den Referer nur in einer Session deklarieren und kannst ihn dann überall wieder ausgeben und auch verabeiten.

d0nut
PostRank 5
PostRank 5
Beiträge: 201
Registriert: 19.08.2004, 10:35
Wohnort: Nidderau

Beitrag von d0nut » 26.04.2007, 07:27

oder eben als GET Variable

Code: Alles auswählen

window.open('popup.php?ref='+document.referrer, "Popup", "width=300,height=200");
https://www.easy-coding.de | Das Coder Forum

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


WilliWusel
PostRank 9
PostRank 9
Beiträge: 1257
Registriert: 21.08.2006, 14:55

Beitrag von WilliWusel » 21.08.2007, 11:34

So, jetzt habe ich mal wieder etwas Luft, um das Thema nochmals aufzugreifen. :roll:

Antwort 1) hilft mir leider überhaupt nicht weiter, da ich auf diesem Gebiet Laie bin, wie schon in meinem Eingangsposting erwähnt. Antwort 2) führt mich in die richtige Richtung. :D Ich schaffe es jetzt immerhin schon, mittels

refer = document.referrer;

den richtigen Referrer zu retten. Ist das so überhaupt optimal? Dieses PopUp wiederum ruft ein Skript mit folgendem Inhalt auf:

Code: Alles auswählen

<?
$content="
$absender hat diese Seite empfohlen&#58;

» http&#58;//www.seite.de

$kommentar
";
if&#40;mail&#40;$empfaenger,$betreff,$content,"From&#58;$absender"&#41;&#41; &#123;
header&#40;"Location&#58; ../html/d/empfehlen-ok.html"&#41;;
&#125;
?>
Statt der fixen Adresse » https://www.seite.de sollte da der ursprüngliche Referrer stehen, wie mache ich das? Please help! Bild

Airport1
PostRank 10
PostRank 10
Beiträge: 4489
Registriert: 16.08.2004, 18:50
Wohnort: Backnang / bei Stuttgart

Beitrag von Airport1 » 21.08.2007, 11:44

> Ist das so überhaupt optimal?

naja die ganzen counter dienste arbeiten meist genau so. fuer deinen anwendungsfall - du sagst es muss auf ner html seite integriert werden - ist es wohl die "beste wahl", und nach den letzten umfragen haben die meisten user javascript aktiviert.

Den "refer" kannst Du holen mittels $referer = $_GET['refer'];
Wuerde aber noch ein paar Pruefungen machen, damit da niemand was Boeses ins Script reinschmuggelt, denn Du musst Dir bewusst sein dass ein jeder den "refer" so ganz leicht manipulieren kann.
Linktauschanfragen zwecklos
https://www.bot-trap.de/ Spamschutz fuer Webmaster - zentrale Meldestelle fuer Web Spam
https://www.airport1.de/blog/ Lombagruschd Blog mid Gardadierle
https://www.ranking-hits.de/ Counter & PR Service

WilliWusel
PostRank 9
PostRank 9
Beiträge: 1257
Registriert: 21.08.2006, 14:55

Beitrag von WilliWusel » 21.08.2007, 13:42

Danke, jetzt kommen wir der Sache schon näher. :wink: Das Skript sieht nun so aus:

Code: Alles auswählen

<?
$referer = $_GET&#91;'refer'&#93;;
$content="
$absender hat diese Seite empfohlen&#58;

» http&#58;//www.seite.de

=> $referer

$kommentar
";
if&#40;mail&#40;$empfaenger,$betreff,$content,"From&#58;$absender"&#41;&#41; &#123;
header&#40;"Location&#58; ../html/d/empfehlen-ok.html"&#41;;
&#125;
?>
Leider ist die Zeichenkette hinter "=>" leer, d.h. der Referrer fehlt. :( Was mache ich falsch? In dem aufrufenden Dokument steht weiterhin:

refer = document.referrer;

Airport1
PostRank 10
PostRank 10
Beiträge: 4489
Registriert: 16.08.2004, 18:50
Wohnort: Backnang / bei Stuttgart

Beitrag von Airport1 » 21.08.2007, 18:28

komisch, heisst es in javascript wirklich refeRRer mit einem doppel-r?
dann waere es ja ausnahmsweise mal richtig geschrieben!?!
sonst ist es naemlich meist nur mit einem r falsch geschrieben, "refeRer".
mehr zur falsch/richtig-schreibweise im kleinen kasten auf
https://www.rtrev.com/articles/attacks-2.html (englisch)
Linktauschanfragen zwecklos
https://www.bot-trap.de/ Spamschutz fuer Webmaster - zentrale Meldestelle fuer Web Spam
https://www.airport1.de/blog/ Lombagruschd Blog mid Gardadierle
https://www.ranking-hits.de/ Counter & PR Service

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 21.08.2007, 21:07

Mal ganz kurz eingehakt:

Wenn Du den Javascript-Code von D0nut einsetzt, musst Du den Referrer dann über $referer=$_GET["ref"]; holen, nicht über $_GET["refer"];

Zweites Problem: Du willst auf der HTML-Seite, die weiterempfohlen werden soll, ja nicht den Referrer auslesen, sondern die Seitenurl selber, oder? Dann müsste D0nuts Zeile für das Popup in

Code: Alles auswählen

window.open&#40;'popup.php?ref='+self.location.href, "Popup", "width=300,height=200"&#41;;
geändert werden.

Zudem ist dabei zu beachten, dass nicht alle User Javascript erlauben bzw. aufgrund der Einschränkungen mancher Browser document.referrer nicht unbedingt mit einem Wert gefüllt wird. Daher als Empfehlung:

Code: Alles auswählen

<?
$referer = $_GET&#91;'ref'&#93;;
if&#40;empty&#40;$referer&#41;&#41;
&#123;
$referer="deinehaupturl.de";
&#125;
$content="
...
Zudem sollte man noch beachten, dass eine solche einfache Abfrage einer Get-Variable immer Sicherheitslücken schaffen kann, insbesondere, wenn bei Deinem Server/Webhosting-Paket nicht z.B. magic_quotes_gpc auf on gestellt ist.

WilliWusel
PostRank 9
PostRank 9
Beiträge: 1257
Registriert: 21.08.2006, 14:55

Beitrag von WilliWusel » 22.08.2007, 08:32

Erst mal vielen Dank für eure Mühe, aber die Mimik funktioniert leider immer noch nicht! :oops: Ich habe den Code jetzt so geändert wie von Chris21 vorgeschlagen, dann steht in $referrer (Schreibweise angepasst) immer "deinehaupturl.de" bzw. in diesem Fall "https://www.kohlschein.de". Ich könnte mir jetzt noch vorstellen, dass

refer = document.referrer;

an der falschen Stelle im PopUp steht und daher die Info nicht weitergibt. Ohne jetzt Werbung machen zu wollen, könntet ihr vielleicht mal die Seite https://www.kohlschein.de aufrufen und auf einer beliebigen Unterseite unten rechts auf "Seite weiterempfehlen" klicken. Schaut euch dann bitte mal den Quellcode dieses PopUps empfehlen.html an, ob ihr da einen Fehler sehen könnt. Der Code des Skriptes lautet jetzt im Original:

Code: Alles auswählen

<?
$referrer=$_GET&#91;'refer'&#93;;
if&#40;empty&#40;$referrer&#41;&#41;
&#123;
$referrer="http&#58;//www.kohlschein.de";
&#125;
$content="
$absender hat diese Seite empfohlen&#58;

Kohlschein. Kreative Lösungen aus Pappe und Karton.
» $referrer

$kommentar
";
if&#40;mail&#40;$empfaenger,$betreff,$content,"From&#58;$absender"&#41;&#41; &#123;
header&#40;"Location&#58; ../html/d/empfehlen-ok.html"&#41;;
&#125;
?>
Ihr könnt euch die Empfehlung auch mit einem fiktiven Absender selbst zuschicken (die Daten werden nirgendwo gespeichert), um zu sehen, dass da etwas schiefläuft. :roll:

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 22.08.2007, 09:38

Hallo WilliWusel,

habs mir angeschaut und gesehen und das Problem vermutlich gefunden:

Der (/Das?) Popup wird geöffnet über

Code: Alles auswählen

<a href="#" title="Seite weiterempfehlen" class="txt2" onClick="MM_openBrWindow&#40;'empfehlen.html','Weiterempfehlen','width=610,height=425'&#41;"> Seite weiterempfehlen</a>
Daraus musst Du

Code: Alles auswählen

<a href="#" title="Seite weiterempfehlen" class="txt2" onClick="MM_openBrWindow&#40;'empfehlen.html?refer='+self.location.href,'Weiterempfehlen','width=610,height=425'&#41;"> Seite weiterempfehlen</a>
machen. Dadurch würde auf der Unterseite Messen + Projekte das Popup unter der URL empfehlen.html?refer=https://www.kohlschein.de/html/d/messen-projekte.html aufgerufen werden, wodurch erst PHP durch die Abfrage des $_GET["refer"]; den string "https://www.kohlschein.de/html/d/messen-projekte.html" als empfohlene Seite bekommt.

Das "refer = document.referrer; " im Quelltext des Popups ist leider nutzlos, da der Popup über Javascript aufgerufen wird und dadurch keinen Referrer übergibt. Du musst also den Code zum Aufruf des Popup wie oben abändern, wodurch dann der Referrer als Parameter mit übergeben wird.

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 22.08.2007, 14:00

Ok, nachdem ich mir Deine Seiten mal genauer angeschaut habe, bin ich jetzt etwas weitergekommen:

(und jetzt verstehe ich auch die Überschrift hier besser)

Es gibt dabei drei (bzw. mit der empfehlen-ok.html sogar vier) relevante Dateien:

1. eine Unterseite, die empfohlen werden soll (z.B. messen-projekte.html)

2. das Seite empfehlen Popup (empfehlen.html)

3. das Seite empfehlen Skript (empfehlen.php)

Lösung:

1. von der zu empfehlenden Unterseite wird das Popup empfehlen.html mit

Code: Alles auswählen

<a href="#" title="Seite weiterempfehlen" class="txt2" onClick="MM_openBrWindow&#40;'empfehlen.html?refer='+self.location.href,'Weiterempfehlen','width=610,height=425'&#41;"> Seite weiterempfehlen</a> 
geöffnet

2. Mit Javascript wird dieser an die Datei empfehlen.html übergebene Parameter ausgelesen und den Formulardaten hinzugefügt:

Code: Alles auswählen

var seitenurl=window.location.search;
document.forms&#91;0&#93;.Seitenurl.value = seitenurl;
In das Formular muss dann noch eine Zeile:

Code: Alles auswählen

<input type=hidden name="Seitenurl" value="http&#58;//www.kohlschein.de">
3. und die empfehlen.php muss diese Information jetzt auslesen:

d.h. mit PHP:
$seitenurl=$_POST["Seitenurl"];
$seitenurl=explode("=",$seitenurl);
$referrer=$seitenurl[1];

Dann endlich könntest Du mit $referrer in dem Emailtext die tatsächlich empfohlene Seite angeben.

Ich bin leider in javascript nicht so bewandert, daher habe ich z.B. den String seitenurl erst in php auseinandergenommen (Anfangs beinhaltet dieser ja z.B. "?refer=https://www.kohlschein.de/html/d/messen-projekte.html", Du könntest diesen natürlich auch schon im Javascript der empfehlen.html verarbeiten, um den relevanten Teil zu extrahieren (z.B. über substring).

Insgesamt muss ich aber feststellen, dass Du hier einen sehr komplizierten Weg gehst, der sich z.B. vereinfachen lassen könnte, wenn Du direkt empfehlen.php aufrufst und dieses Skript erst den Inhalt in der Art der Datei empfehlen.html mit Formular aufruft und dann nach selbstreferentiellen absenden z.B. auf die empfehlen-ok.html weiterlenkt. Würde viel Mühe ersparen und zugleich den Vorteil bringen, dass man eine "Seiten empfehlen" Routine auch für Nutzer bereitstellen könnte, die kein Javascript eingeschaltet haben.

WilliWusel
PostRank 9
PostRank 9
Beiträge: 1257
Registriert: 21.08.2006, 14:55

Beitrag von WilliWusel » 22.08.2007, 14:58

chris21 hat geschrieben:Ok, nachdem ich mir Deine Seiten mal genauer angeschaut habe, bin ich jetzt etwas weitergekommen:
Danke für Deine Geduld, ich hoffe, der Tee hat geschmeckt! :wink:
und jetzt verstehe ich auch die Überschrift hier besser
Habe mir größte Mühe gegeben. :wink:
Es gibt dabei drei (bzw. mit der empfehlen-ok.html sogar vier) relevante Dateien:
1. eine Unterseite, die empfohlen werden soll (z.B. messen-projekte.html)
2. das Seite empfehlen Popup (empfehlen.html)
3. das Seite empfehlen Skript (empfehlen.php)
Das stimmt. Habe das so gemacht, weil ich es nicht anders / besser kann.

Ich habe den geänderten Aufruf testweise mal in die Seite "Kontakt" eingebaut und auch die anderen Ergänzungen vorgenommen, das Ergebnis ist leider immer noch suboptimal. :( Kannst Du bitte noch mal prüfen, ob ich die Änderungen an den richtigen Stellen eingebaut habe? Danke! :D

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 22.08.2007, 15:50

Hallo WilliWusel, ja, Du hast es richtig eingebaut.

Es gibt allerdings noch einen (von mir produzierten) Fehler, den wir ausmerzen müssen:

Das Popup wird inzwischen richtig aufgerufen.

Aber leider wird die Info aus dem window.location.search noch nicht ins Formular geschrieben. Die Javascript-Error-Konsole meldet: document.forms[0] has no properties. Liegt wohl dummerweise daran, dass hier das Formular noch gar nicht aufgebaut war. Ergo kann da auch nicht die Referrer-Url reingeschrieben werden :(

Ähem, da ich mich mit Javascript eben nicht so gut auskenne, sind meine Ideen hier vielleicht etwas humpelig:

Vielleicht würde es einfach helfen, würde man den JavaScript-Einschub (oben unter 2.) im Head der empfehlen.html wieder zu vergessen und einfach im Formular

Code: Alles auswählen

<script type="text/javascript">
document.write&#40;'<input type="hidden" name="Seitenurl" value="' + window.location.search + '">'&#41;;
</script>
statt

Code: Alles auswählen

<input type="hidden" name="Seitenurl" value="http&#58;//www.kohlschein.de">
einfügen?

WilliWusel
PostRank 9
PostRank 9
Beiträge: 1257
Registriert: 21.08.2006, 14:55

Beitrag von WilliWusel » 23.08.2007, 11:38

chris21 hat geschrieben:Vielleicht würde es einfach helfen, würde man den JavaScript-Einschub (oben unter 2.) im Head der empfehlen.html wieder zu vergessen und einfach im Formular ... einfügen?
Überraschung! :o Das klappt! Bild Mein Dank wird Dir ewig hinterherschleichen... :wink:

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 23.08.2007, 11:58

Freut mich. :wink:

Wollen wir jetzt die ganze Routine nochmal so lösen, dass es ganz ohne JavaScript funktioniert, damit auch User ohne eingeschaltetes JavaScript eine spezielle Seite empfehlen können? Dafür müsste man aber einiges umstellen, u.a. die empfehlen.html ganz rauswerfen und in die empfehlen.php eingliedern... Wäre aber alles recht einfach machbar.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag