-
|
Hallo, gibt es eine Möglichkeit die Cookie-Zustimmung über PHP zu erfragen? Nun benötige ich aber noch eine Möglichkeit, irgendwie via PHP auf die Cookie-Zustimmung zu prüfen. Besteht eine solche Möglichkeit? Vielen Dank bereits für die Mühe! |
Beta Was this translation helpful? Give feedback.
Replies: 18 comments
-
|
Du kannst über das PS: Die |
Beta Was this translation helpful? Give feedback.
-
Gute Idee, dann versuche ich das mal mit dem CookieLogModel. PS: Oh, dann habe ich da vielleicht gerade einfach etwas verwechselt :D |
Beta Was this translation helpful? Give feedback.
-
|
@doishub Wenn ich das richtig verstehe, dann müsste ich in diesem Fall über folgende Methode gehen: Nun meine Frage bezüglich der Anonymisierung: Bei der Cookiebar wird ja das letzte Oktett der IPv4 Adresse maskiert. Edit, ich ziehe die Frage, wie an die IP gekommen wird zurück. $strIp = $ip ?? Environment::get('ip');
if(System::getContainer()->getParameter('contao_cookiebar.anonymize_ip'))
{
$strIp = IpUtils::anonymize($strIp);
} |
Beta Was this translation helpful? Give feedback.
-
|
Ich bin mir unsicher, ob das ein so guter Weg ist. Ich denke, damit könntest du schon zum Ziel kommen, je nachdem, was genau deine Anforderungen sind und wann du die Informationen serverseitig abfragst. Solltest du den Besucher direkt nach dem Akzeptieren identifizieren wollen, wird es womöglich gehen. Wenn du deinen use-case beschreibst, findet man ggf. eine bessere Lösung, wenn es allerdings so für deine Zwecke ausreicht - umso besser 😉 |
Beta Was this translation helpful? Give feedback.
-
|
@doishub Ja, da mache ich mir gerade auch meine Gedanken. Also kurz zum Use-Case: Dies wäre eigentlich über Javascript super einfach und hatte ich bereits so implementiert. Beim dynamischen Nachladen via Javascript passiert dann folgendes:
Daraus folgt, dass dann nur noch das externe Javascript Tool auf der Seite ausgegeben wird. Hätte ich eine Möglichkeit das ganze serverseitige zu prüfen, könnte ich es so implementieren, dass die Funktionalität noch während des Streamaufbaus aufgerufen wird und diesen Stream dann nicht überschreibt. Ich hoffe das war einigermaßen verständlich. |
Beta Was this translation helpful? Give feedback.
-
|
Ich denke du solltest lieber das client seitige Problem lösen. |
Beta Was this translation helpful? Give feedback.
-
Also ein anderes Tool verwenden oder gibt es noch andere Möglichkeiten? |
Beta Was this translation helpful? Give feedback.
-
|
Ich hatte auch bereits mit Widgets zu kämpfen (von Verkehrsnetzen o.ä.) und hatte ein ähnliches Problem. Das Widget wollte sich einfach nicht nachladen lassen, weswegen ich einen kleinen Umweg gegangen bin. Ich habe mir einfach einen neuen iFrame-Typen erzeugt und eine leere Seite angelegt, wo ausschließlich das Skript des Drittanbieters lag. Diese habe ich dann wie YouTube und andere iFrames behandelt und über die Cookiebar geblockt. Vielleicht kannst du es auch so machen. |
Beta Was this translation helpful? Give feedback.
-
Ist ja lustig, genau das gleiche hatte ich quasi auch als "Notlösung" gemacht :D |
Beta Was this translation helpful? Give feedback.
-
Nein, analysieren was genau das Problem mit dem Script ist. |
Beta Was this translation helpful? Give feedback.
-
Naja das Problem ist, dass die Cookies abgefragt werden und dann, wenn die Zustimmung vorliegt, das Script geladen wird. Einzige Lösung an dieser Stelle wäre dann, dass man es irgendwie schafft, dass das Script vor dem fertigstellen des Dokument-Streams geladen wird. Oder übersehe ich etwas? Aber das wirkt z.B recht schwierig, wenn man es dynamisch auf der Seite nachladen will. |
Beta Was this translation helpful? Give feedback.
-
Wie bindest du das Script ein? |
Beta Was this translation helpful? Give feedback.
-
|
Generell gibt es für JavaScripts, die (leider) |
Beta Was this translation helpful? Give feedback.
-
|
@fritzmg Das ist ja mal stark, wusste ich gar nicht. Vielen lieben Dank für den Input :) |
Beta Was this translation helpful? Give feedback.
-
Sorry, den vorherigen Kommentar übersehen. <script>
document.addEventListener("DOMContentLoaded", function() {
cookiebar.addModule(18, function(){
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://widget.simplybook.it/v2/widget/widget.js';
script.onload = initialize;
document.getElementById('simplybooktool').append(script);
document.getElementById('simplybooktool').classList.remove('blockedScreen');
}, {
selector: '#simplybooktool',
message: 'Durch einen Klick können Sie das Laden von SimplyBook ermöglichen.',
button: {
show: true,
text: 'Laden',
type: 'button',
classes: 'button'
}
});
});
</script><div style="width: 500px; height: 500px;" id="simplybooktool" class="block blockedScreen">
</div>
<script>
function initialize() {
var widget = new SimplybookWidget('Hier sind dann die Daten für das Widget drin');
}
</script> |
Beta Was this translation helpful? Give feedback.
-
Ja, das ist wirklich nicht die beste Lösung. 😀 |
Beta Was this translation helpful? Give feedback.
-
|
@doishub Hey, ich wollte mich nochmal melden, da dir die Erkenntnisse ja auch wichtig waren. <script>
document.addEventListener("DOMContentLoaded", function() {
cookiebar.addModule(18, function() {
const simplybooktool = document.querySelector('#simplybooktool');
simplybooktool.classList.remove('blockedScreen');
postscribe('#simplybooktool', '<script src=//widget.simplybook.it/v2/widget/widget.js><\/script>');
postscribe('#simplybooktool', '<script>var widget = new SimplybookWidget('Hier sind dann die Daten für das Widget drin');<\/script>');
}, {
selector: '#simplybooktool',
message: 'Durch einen Klick können Sie das Laden von SimplyBook ermöglichen.',
button: {
show: true,
text: 'Laden',
type: 'button',
classes: 'my-btn'
}
});
});
</script>Nun wird es nur nachgeladen, wenn der Cookie akzeptiert wurde und überschreibt mir nicht mehr meinen Dokument-Stream. |
Beta Was this translation helpful? Give feedback.
-
|
Danke fürs Teilen :) |
Beta Was this translation helpful? Give feedback.
@doishub Hey, ich wollte mich nochmal melden, da dir die Erkenntnisse ja auch wichtig waren.
Also ich habe nun einfach folgendes gemacht: