-
Falscher Referer?
Hallo liebe Contao Gemeinde,
ich habe ein kleines Problem, bei Besucherherkunft wird nichts angezeigt. Sonst funktioniert das Modul normal. Ich nutze Contao 3.4.5 und Vistors 3.4.1. Ich habe den Debugmodus für Referer aktiviert und im Log erscheint:
Code:
[30-Apr-2015 10:22:34] [35044150] [## START ##] [## DEBUG ##] T0#C0#R1#S0
[30-Apr-2015 10:22:34] [35044150] [ModuleVisitorReferrer::checkReferrer] [97]
Referrer DNS : w
Error Detail: Referrer DNS was not a valid Domain: www.domain.de
Referrer full: http://www.domain.de/referenzen.html
Server Host : www.andere-domain.de
Wieso ist www.domain.de (Beispiel) keine valide Domain? Was kann ich tun, damit unter Besucherherkunft etwas angezeigt wird?
Vielen Dank!
Hagen
-
versuche mal die echte Domain die dort angezeigt wird aufzulösen.
Wrong kommt wenn
a) syntaktisch keine Domain aus dem Referer ermittelt werden kann (parse_url bringt Fehler)
b) aus der Domain keine IP ermittelt werden kann
c) es eine lokale IP/Domain ist
-
Nachtag: "Referrer DNS was not a valid Domain"
kommt nur wenn es eine fake Domain ist bzw. fake Referer.
Genauer kann ich es dir sagen wenn du mir den kompletten Referrer zukommen lässt.
-
Hallo BugBuster,
danke für deine Antworten. Wenn ich die Domain auflöse, erhalte ich
Code:
www.virtuell-real.de has address 80.67.17.87
www.virtuell-real.de has IPv6 address 2a00:1158::300:455b:0:0:1
Stimmt da etwas nicht?
-
das sollte nicht wrong werden, es sein denn da ging vorübergehend die DNS Auflösung nicht oder speziell auf dem Server nicht.
Wie gesagt, zum genauen Test brauche ich den kompletten Referrer.
-
Was meinst du mit kompletten Referer - den Logeintrag?
-
die komplette Zeile "Referrer full:"
-
Ah, so. Die Zeile vollständig:
Code:
Referrer full: http://www.virtuell-real.de/referenzen.html
Kannst du da etwas rauslesen?
-
Nicht wirklich, kann heute abend mal genauer testen.
Schalte mal den "Debugmodus für die Klasse "Visitor Check" noch zusätzlich ein und mache mal den Test nochmal und wenns wieder schiefgeht den kompletten Log von diesem Aufruf.
Danke.
-
Vielen Dank für deine Mühe bisher!
Ich habe den Debugmodus für die Klasse "Visitor Check" aktiviert und noch einmal getestet. Es ging in sofern schief, dass "Besucherherkunft" immer noch leer ist. Im Log steht jetzt
Code:
[30-Apr-2015 13:31:14] [91900575] [## START ##] [## DEBUG ##] T0#C1#R1#S0
[30-Apr-2015 13:31:14] [91900575] [ModuleVisitorChecks::CheckBot] [56] : False
[30-Apr-2015 13:31:14] [91900575] [ModuleVisitorChecks::CheckBE] [128] : True
Schöne Grüße
Hagen
-
Keine Zeile mit [ModuleVisitorChecks::isDomain] ?
-
Hallo BugBuster,
es kann sein, dass ich vorhin noch geblockt war - dat funktioniert natürlich nich....
Hier nun der richtige Eintrag:
Code:
[30-Apr-2015 15:02:54] [87286211] [## START ##] [## DEBUG ##] T0#C1#R1#S0
[30-Apr-2015 15:02:54] [87286211] [ModuleVisitorChecks::CheckBot] [56] : False
[30-Apr-2015 15:02:54] [87286211] [ModuleVisitorChecks::CheckBE] [133] : False
[30-Apr-2015 15:02:54] [87286211] [ModuleVisitorChecks::isDomain] [156] : False
[30-Apr-2015 15:02:54] [87286211] [ModuleVisitorReferrer::checkReferrer] [97]
Referrer DNS : w
Error Detail: Referrer DNS was not a valid Domain: www.virtuell-real.de
Referrer full: http://www.virtuell-real.de/referenzen.html
Server Host : www.susanheise-porzellan.de
Was mache ich da nur falsch?
-
Nix.
"[30-Apr-2015 15:02:54] [87286211] [ModuleVisitorChecks::isDomain] [156] : False"
sagt mir, das PHP die Domain nicht auflösen kann.
lege mal eine Datei an mit diesem Inhalt, schiebe das auf deinen Server und rufe es per Browser auf und zeige das Ergebnis:
PHP-Code:
<?php
echo "<html><body><pre>";
$result = dns_get_record("php.net");
print_r($result);
echo "<hr>";
$ref = 'http://www.virtuell-real.de/referenzen.html';
$referrer_DNS = parse_url( $ref, PHP_URL_HOST );
print_r($referrer_DNS);
echo "<br>";
$result = dns_get_record($referrer_DNS , DNS_ANY );
print_r( $result );
echo "<pre></body></html>";
-
Da wird folgendes angezeigt:
Code:
Array
(
)
www.virtuell-real.de
Array
(
)
-
Tja, damit kannste nun zum Hoster gehen und fragen, warum PHP keine DNS Auflösung durchführen kann.
Da kommt "nichts" zurück, genauso, als wenn man eine nicht existierende Domain versucht aufzulösen.
Bie mir kommt da im zweiten Teil (der erste war nur zum Vergleich ob das Problem domainabhängig ist):
Code:
www.virtuell-real.de
Array
(
[0] => Array
(
[host] => www.virtuell-real.de
[type] => AAAA
[ipv6] => 2a00:1158::300:455b:0:0:1
[class] => IN
[ttl] => 600
)
[1] => Array
(
[host] => www.virtuell-real.de
[type] => A
[ip] => 80.67.17.87
[class] => IN
[ttl] => 600
)
[2] => Array
(
[host] => www.virtuell-real.de
[type] => MX
[pri] => 100
[target] => mxlb.ispgateway.de
[class] => IN
[ttl] => 600
)
)
Da ich nun nicht erkenne ob das eine fake Domain ist (kommt öfters vor als man denkt) oder eine echte, bleibt mir nichts anders übrig als diese als fake zu markieren.
-
Danke für deine Bemühungen und deine Hilfe!
Der Hoster ist United Domains. Ich habe da für die neueste Contao-Version auf PHP 5.4 umgestellt. Vorher mit PHP 5.3 und einer älteren Contao + Visitors Version konnten die Domains noch aufgelöst werden. Da muss ich wirklich mal anfragen.
Die Domain ist übrigens echt.
Schöne Grüße und einen erholsamen Feiertag morgen!
Hagen
-
Rückmeldung
Hallo liebe Contao-Gemeinde,
nach meiner Anfrage beim Support von United Domains wurde dort die PHP Funktion dns_get_record erlaubt und die Referer werde nun auch angezeigt. Kann man nicht meckern, finde ich.
Ein schönes Wochenende!
Hagen