php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 16-02-2014, 23:06
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard GET übergabe von JS zu PHP und mit Cookie Problemen

Hallo,

ich baue aktuell an einer Tracking Möglichkeit für Shops.
Es ist möglich ein JavaScript in einen Shop einzubinden, welches dann an meinen Server an eine PHP Datei Daten per GET sendet und dann ein Cookie erstellt, welches den Nutzer immer wieder identifizieren kann.

Leider habe ich Probleme beim anlegen von Cookies in der PHP.
Ich möchte möglichst kein jQuery (wegen der performance) für einen ajax Request benutzen, aber damit hat es aktuell funktioniert.. nur mit einen normalem HTTP Request nicht..

Das ist mein JavaScript welches in den Shop eingebunden wird
PHP-Code:
<script type="text/javascript">
//<![CDATA[
var client = {
identifier'1'
};
var 
product = {
identifier"123456789"
};
(function() {
var 
document.createElement("script");
s.id "ccretartg";
s.type "text/javascript";
s.async;
s.src = ("https:" == document.location.protocol "https://" "http://") + "www.website.de/test/tracking.js";
var 
document.getElementsByTagName("script");
var 
l[l.length-1];
x.parentNode.insertBefore(sx);
})();
//]]>
</script> 
Das Script bindet dann folgende Datei ein, welche dann die Parameter an meinen Server per GET sendet.

PHP-Code:
var products_array=[];
products_array.push(product);
var 
products={};
products.product products_array;
json_str_products JSON.stringify(products);

json_str_client client.identifier;

var 
url "http://www.website.de/test/php/tracking.php";
var 
data 'c='+json_str_client+'&p='+encodeURIComponent(json_str_products);

//funktioniert
$.ajax({
    
type"GET",
    
urlurl,
    
datadata
    
dataType"jsonp"
});

//funktioniert nicht!!!
$.ajax({
    
type"GET",
    
urlurl,
    
datadata
    
dataType"html"
});

//funktioniert auch nicht!!!
var xmlHttp null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open"GET"url+"?"+datafalse );
xmlHttp.sendnull );
return 
xmlHttp.responseText
Wenn ich die Scripte alle auf der selben Domain teste, dann funktioniert alles super und das Cookie wird auch von der PHP angelegt und korrekt ausgelesen.

Wenn ich aber die JS Scripte von einer anderen Domain auslese, dann funktioniert es nur mit der ersten jQuery AJAX Variante.. bei der zweiten jQuery Variante bekomme ich im CROME Debugger immer den Status "canceled"

und bei der dritten mit xmlHttp wird die PHP zwar korrekt aufgerufen und ich erhalte auch eine korrekte Response Cookies Mitteilung im Chrome, allerdings wird bei jedem Aufruf immer ein neuer Cookie angelegt, weil der zuvor angelegte nicht erkannt wird... O_o

Kann mir jemand erklären wieso das nicht geht und wie ich die Parameter noch anders übergeben kann außer mit jQuery...

Geändert von BananaJo (16-02-2014 um 23:13 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 16-02-2014, 23:37
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Cross-Domain AJAX-Request sind nicht erlaubt. Diese Beschränkung wird mittels JSONP-Technik umgangen.
Mit Zitat antworten
  #3 (permalink)  
Alt 17-02-2014, 10:25
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard

danke für die Antwort h3ll!

Also ist diese Möglichkeit nur gebeben, wenn man JSONP verwendet? Oder hat das auch etwas mit den Server Einstellungen zu tun wo die PHP Datei liegt die den Cookie erzeugt?

Es gäbe ja noch die Möglichkeit mir einem Pixel zu arbeiten, was auch sehr gut funktioniert, nur wollte ich komplett mit Javascript arbeiten und möglichst kein Framework wie jQuery für den Aufruf der PHP benutzen.

Such bitte mal im Quellcode hier LTB NOPOC - Langarmshirt - navy - Zalando.de nach "sociomantic".. arbeiten die auch mir JSONP ?? Hier ist das selbe Prinzip was ich auch verwenden möchte.. dort wird auch der Nutzer getrackt und ein Cookie angelegt... Wie gehen die dort vor?
Mit Zitat antworten
  #4 (permalink)  
Alt 17-02-2014, 10:28
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von BananaJo Beitrag anzeigen
Also ist diese Möglichkeit nur gebeben, wenn man JSONP verwendet?
Nein, Stichwort CORS.

Zitat:
Such bitte mal im Quellcode hier […] nach "sociomantic".. arbeiten die auch mir JSONP ?? Hier ist das selbe Prinzip was ich auch verwenden möchte.. dort wird auch der Nutzer getrackt und ein Cookie angelegt... Wie gehen die dort vor?
Wie wär’s wenn du das mal selber rausfindest?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 17-02-2014, 11:37
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard

Wenn ich wüsste wonach ich da Suchen soll um heraus zu finden was die benutzen würde ich das ja auch machen... geht schließlich auch schneller als das hier zu posten und auf eine Antwort zu warten..

Leider weiß selbst ich nicht alles
Mit Zitat antworten
  #6 (permalink)  
Alt 19-02-2014, 12:58
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard JS Cookie über mehrer Domains gültig anlegen

Hallo,

Ich daue aktuell an einer Tracking Möglichkeit und nutze dafür JavaScript Cookies.

Über ein eingebundenes JS Script von TRACKING-WEBSITE-1 im SHOP-2 wird das Cookie entweder angelegt oder ausgelesen, falls es schon vorhanden ist.

Mein Problem ist folgendes. Wenn ich das Script auf TRACKING-WEBSITE-1 aufrufe auf der das eigentliche Script auch liegt, kann ich das Cookie auch auf SHOP-2 und SHOP-3 usw problemlos auslesen und weiter benutzen.

Wenn ich das erste Cookie aber auf SHOP-2 anlege, wird auf SHOP-3 und allen anderen immer wieder ein neues Cookie angelegt.

Nur wenn ich das Script auch von der Domain aufrufe, wo das Script gepeichert ist, kann ich es auch auf anderen Domains weiter verwenden.

Kann mit jemand sagen wieso das so ist?
Ich habe mir als Vorbild andere Trackingscripts genommen, bei denen das Problemlos funktioniert.. nur leider bei mir nicht.

so erstelle ich das Cookie wenn es noch nicht vorhanden ist.
PHP-Code:
function setCookie(value){
    var 
domain '';    
    
console.log('4 - '+value);
    
    if (
value 0) { //cookie value
        
var host window.location.hostname.split('.').reverse();
        if (
host.length && host[1].length <= && host[0].length <= 2) {
            
domain '.' host[2] + '.' host[1] + '.'host[0]
        } else {
            
domain '.' host[1] + '.' host[0]
        }
        
        
console.log('domain: '+domain);
        
        var 
futdate = new Date();
        var 
expdate futdate.getTime();
        
expdate += cookie_lifetime;
        
futdate.setTime(expdate);
        
        
document.cookie '__sonar='+value+'; domain='+domain+'; expires='futdate.toUTCString()+'; path=/';
    }


als reales Beispiel könnt ihr z.B. auf Zalando.de gehen und einen Artikel angucken. Wenn ihr nun im debugger unter sociomantic sucht ist dort das cookie "sonar" mit der cookie ID gespeichert die einen bestimmtem Nutzer zugeordnet wird. Wenn ihr nun auf Esprit.de geht, ist dort ebenfalls die selbe ID vorhanden. Wie machen die das?

Geändert von BananaJo (19-02-2014 um 13:10 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 19-02-2014, 13:19
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Cookies sind immer an eine Domain (oder Subdomains davon) gebunden.
„Domain-übergreifende” Cookies gibt es nicht.

Und wie der Browser Cookies behandelt, die von Scripten/Ressourcen von anderen Domains gesetzt werden als der, von der die eigentliche Webseite geladen wurde, ist Einstellungssache – Stichwort third-party cookies.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.

Geändert von wahsaga (19-02-2014 um 13:22 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 19-02-2014, 13:56
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard

ist das dann eine Einstellungssache von dem Server der Website auf dem das Script geladen wurde oder wie?
Mit Zitat antworten
  #9 (permalink)  
Alt 19-02-2014, 13:59
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

In erster Linie natürlich im Browser.

Die Einflussmöglichkeiten des Servers beschränken sich auf eine P3P-Policy.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #10 (permalink)  
Alt 19-02-2014, 15:56
Benutzerbild von BananaJo BananaJo
 Registrierter Benutzer
Links : Onlinestatus : BananaJo ist offline
Registriert seit: Aug 2008
Beiträge: 344
BananaJo kann nur auf Besserung hoffen
Standard

Also ich habe festgestellt, das wenn ich den SHOP-2 lade wenn im SHOP-1 zuvor das Cookie angelegt wurde, dass im SHOP-2 die ursprüngliche Cookie ID im Request Header angezeigt wird. Leider kann ich diese nicht abgreifen, so dass ein neues Cookie angelegt wird. Die ID im Request Header bleibt aber trotzdem die alte... ich bin verwirrt

Was mache ich denn Falsch?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Vergleich von GET Übergabe und SQL Übergabe derspoon PHP Developer Forum 23 20-06-2008 11:26
http->get in http->file DrWeb PHP Developer Forum 9 08-05-2008 15:58
PHP Script GET-Request (parallel / Threat) an anderen Server senden?? j.laub PHP Developer Forum 4 23-08-2007 16:20
Problem mit Variablen übergabe bei POST und GET seballa PHP Developer Forum 1 12-01-2004 00:06
PHP und JavaSkript - Übergabe von Variablen michak PHP Developer Forum 3 05-12-2003 11:34

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:37 Uhr.