Javascript includieren und Werte an PHP übergeben

OrderMax

Grünschnabel
Ich bin mit JavaScript leider etwas auf Kriegsfuß. Deshalb will ich die Daten mit PHP weiter verarbeiten.
Ich will mir ein einfaches Counter/Statistik Script programmieren. Aber es funktioniert leider nur sporadisch und ich weiß nicht an was es liegt. Auf der einen Domain funktioniert es, auf der anderen wieder nicht.

Ich füge mein Script im footer ein:
Javascript:
<script src="http://meinedomain.net/counter/ct.js"></script>


Das ist die ct.js Datei. Hier frage ich paar Werte ab und gebe sie an ct.php weiter
Javascript:
var reff = document.referrer;
var page = document.location;
var browser = navigator.appCodeName;
var browser_lang = navigator.language;
var system = navigator.platform;
var aufloesung = screen.height + "x" + screen.width;
 

var request = new XMLHttpRequest();
request.open('post', 'ct.php', true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send(   '?reff='+reff+
                '&page='+page+
                '&browser='+browser+
                '&browser_lang='+browser_lang+
                '&system='+system+
                '&aufloesung='+aufloesung
    );


PHP Code nimmt die Daten entgegen und schickt sie per Email an mich, hatte noch kein Bock eine DB zu erstellen, bevor ich das mit dem JavaScript nicht auf die Reihe bringe.
PHP:
<?php
header('Content-Type: text/html; charset=utf-8'); // sorgt für die korrekte Kodierung
header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0'); // ist mal wieder wichtig wegen IE


$mail  = $_POST['reff']."\n";
$mail .= $_POST['page']."\n";
$mail .= $_SERVER['REMOTE_ADDR']."\n";
$mail .= $_POST['browser']."\n";
$mail .= $_POST['browser_ver']."\n";
$mail .= $_POST['browser_lang']."\n";
$mail .= $_POST['system']."\n";
$mail .= $_POST['browser_id']."\n";
$mail .= $_POST['aufloesung']."\n";
$mail .= $_SERVER['HTTP_USER_AGENT']."\n";
$mail .= $_POST['mobile']."\n";

mail('system@meinedomain.net', 'ReffererScript',$mail, 'From: SYSTEM <NoReplay@meinedomain.net>');

In Moment funktioniert das Script nur auf der Domain, wo das Script auch liegt. Auf anderen Domains funkioniert es nicht und mir fällt langsam nix mehr ein, was ich noch testen könnte. Wer hat paar Tipps für mich?

Gruß OrderMax
 
denk dran das es noch die CORS gibt,
Die Browser unterbinden das eigentlich das du Daten von einer Homepage zur anderen schickst.
Liegen deine Datein ( index.php und ct.php ) auf der gleichen domain ?
 
Hmm, noch nie was von CORS gehört. Nein, das Script soll ja auf verschiedenen Domains zum Einsatz kommen. Die Counter wie Statscount, Piwik, Google Analystics, werden oft von AddOns und anderen Tools gerne geblockt. Deshalb der Versuch etwas eigenes zu programmieren.
 
sowas habe ich auch schon mal gemacht.Solange die domain die gleiche ist ,ist das kein problem.
Ich meine damit
tutorials.de , und was danach steht ist egal tutorials.de/ab/hier/geht/jede.adresse.de

Nur wenn die domain nee andere ist muss man das anders regeln.
Ansonsten sieht dein Script so aus wie meins .Ich habe das

Javascript:
gg=location.href;
ff=gg.split('/');
dd=ff.length-1;
name=gg.split('/')[dd];
 
         $.ajax({
             type: 'POST',
              url: '<?php echo $rootverzeichniss; ?>admin/besucherzahler.php',
            
             data: {name:name,gg:gg},
             success: function(data){
 //alert(data)
                      }
                  });
im footer eingebunden ,und der footer ist mit php auf jede andere Seite eingebunden.
So werden alle Seiten erfasst und alles weitere kann man da verwerten.

Wenn du was fertiges suchst kann ich das empfehlen
PHP Statistik Counter Webstat Datenbank MySQL Analyse
einmal installieren ,Script einbinden und schon läuft es
 
Danke, das Script kenn ich, ich glaube ich hab sogar noch eine Lizenz hier liegen.
Ich will aber eine Multidomainlösung und es sollte auch mit JavaScript funktionieren, weil ich noch paar alte statische Seiten habe und externe Blogs, wo kein PHP Code erlaubt ist.
 
Zuletzt bearbeitet:
wenn du ja Inhaber der Domain bist müsste das ja auch gehen.
Ich weiß jetzt zwar nicht wie ,aber googel und co läßt es ja auch zu das die user ihre api scripte einbinden und dudurch der request zur fremden Domain zugelassen wird. Es muss da irgendwie nee Einstellung oder sonst was geben der die CORS nicht blockt.

Aber ich werde mich heute auch mal schlau machen weil will das auch mal testen ob das bei mir irgendwie geht. Getestet hatte ich das schon mal doch die CORS ( kann man in der Console sehen ) den Request nicht durch gelassen hat. Hatte da aber auch nicht weiter versucht.

googel ,facebook usw zeigen mit hren Scripten ja das es ja irgendwie gehen muß.
 
Ich hab schon gegoogelt, aber so wirklich verstehe ich das nicht. Vielleicht wäre es mit einem Pixel möglich. Man bekommt vielleicht nicht soviele Informationen, aber immerhin kann ich den User zählen. Weißt du vielleicht wie man den Aufruf eines Pixels zählt?
 
ich weiß nicht was du mit Pixel zählen meinst ?.
Aber du willst ja nur die Daten deiner Besucher zu deiner anderen Domain schicken,
mehr wolltest du ja nicht oder ?
Habe jetzt reichlich gelesen und solangsam verstehe ich das auch besser wie das geht.
Das die CORS nicht mehr blockt habe ich schon hinbekommen doch noch bleibt der Alert leer.
Wollen wir mal sehen ob ich den Rest auch noch hin bekomme weil dann bin ich auch glücklich und werde es gleich auch selber nutzen:)
 
Ja, so wollte ich das. Es soll ja die Möglichkeit geben User per Pixel zu zählen. Man bindet extern eine Grafik ein und lässt sie dann beim abrufen zählen. Das meinte ich mit Pixel. Wäre super wenn du das hinbekommst. Ich versteh das immer noch nicht mit dem headern, wo und was geschickt werden muß.
 
User per Pixel zählen ? Nagut das habe ich noch nicht gehört ,aber goggel ich mal nach.
Das mit den Script soll in 2 verschiedene Variante gehen .
Den Request den du auch schon gemacht hast nur mit den CORS Mist muß man bei Server zugelassen werden. Das habe ich bei mir jetzt hinbekommen . Der Request geht durch und wird nicht geblockt. Ich verstehe nur noch nicht warum das php Script den Request nicht zurück gibt ,bzw speichert ( weil speichern ist ja auch dein Ziel ).
Da muss ich mich wohl noch in den Header Daten kram weiter einlesen , oder hier weiß einer das wie man genau einstellen muß.

Dann soll das auch mit JASON gehen. JJASON hat da irgendwie keine CORS die da zwischen fummelt. Nur das habe ich kurz überflogen weil muß mich erst bei einen durch arbeiten und verstehen.

Auf einer Webseite habe ich auch das gefunden

CSS:
Browser-Unterstützung für CORS ist heutzutage gut.
In der Vergangenheit mussten Sie möglicherweise ActiveXObject oder XDomainRequest
in Internet Explorer verwenden, da dies nur eingeschränkte Funktionen bot.

JSONP kann verwendet werden, um die CORS-Einschränkungen zu umgehen,
hat aber auch eigene Einschränkungen.

Ein anderer Weg um CORS herum besteht darin, die Anforderung über den Server
in Ihrer Domäne zu senden. Dies ist nicht immer eine schlechte Lösung,
insbesondere wenn Sie die Zwischenspeicherung nutzen oder die API anpassen möchten.

Sie können die Überprüfung der CORS-Richtlinien auch in einigen Browsern
deaktivieren. Dies kann bei der Entwicklung hilfreich sein.

Das man das im Browser deaktivieren kann habe ich noch nicht gesehen.
Aber das andere sagt ja das es wohl geht .Bist du in JASON fit?
Vieleicht willst du da ja schon mal kucken? Ich kucke auf jeden fall bei den normalen Request weiter. Irgendwas von den Sachen wird ja gehen müssen.

Auch interesant ist ja das das eine Goggel Script ja auch die Daten abfragt und bei sich speichert.Nur finde ich bei den Script kein Request. Da weiß ich auch noch nicht genau wie die ihre Daten bekommen. Wenn dann irgendein versteckter Code oder funktion ,oder ich übersehe da irgendwas
 
Zurück