AlterBox nur einmal

MisterSimpson

Simpsons Fan
ID: 50883
L
20 April 2006
2.947
106
Hallo ich möchte eine AlterBox einfügen die nur einmal kommt, nur weiß ich noch nicht so richtig wie ich das machen soll. Möchte das in Typo3 einfügen und dachte erst in MySQL ne Zeile anlegen bei den Usern und der setzt einen Wert wenn die AlertBox da war oder ich setze ein Cookie. Denke das ist einfacher. Habe das hier gefunden:
https://javarea.de/index.php3?opencat=Javascript&subcat=Cookie&id=365

Das könnte ich ja z.B. auf 365 Tage setzen. Wäre auch nicht so schlimm wenn es öfters kommt, weil es soll ne Meldung kommen das die Benutzer ihre Persönliche Daten einmal überprüfen sollen.

Und hier die AlertBox
https://www.jjam.de/JavaScript/Dialogbox/Alert.html

Nur wie verbinde ich das jetzt so das die AlertBox dann nur einmal innerhalb von 365 Tagen erscheint?
 
Naja, wie soll das schon funktionieren?

Du guckst beim Generieren der Seite ins Cookie oder die DB, ob da der entsprechende Wert für "nicht zeigen" gesetzt ist. Davon abhängig zeigst Du's an oder eben nicht. Wenn Du's anzeigst, setzst Du den Wert auf "nicht zeigen", so dass beim nächsten Seitenaufruf halt nix passiert.

Oder habe ich nun den allgemeinen Charakter der Frage missverstanden? :think:
 
Schon nur klappt das irgendwie nicht so richtig. Habe jetzt das hier:
HTML:
<body onload="checkCount()">

<script language="JavaScript">
<!--
var expDays = 2; 		// anzahl der Tage wann der cookie erlischt

function GetCookie (name)
{
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {

var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value)
{
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
function DeleteCookie (name)
{
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
var exp = new Date();
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function amt(){
var count = GetCookie('count')
if(count == null) {
SetCookie('count','1')
return 1
}
else {
var newcount = parseInt(count) + 1;
DeleteCookie('count')
SetCookie('count',newcount,exp)
return count
   }
}
function getCookieVal(offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function checkCount() {
var count = GetCookie('count');
if (count == null) {
count=1;
SetCookie('count', count, exp);

window.location.replace('alert.html'); 

}
else {
count++;
SetCookie('count', count, exp);
   }
}
// -->
</script>
Aber er leitet immer auf alert.html
 
Wenn ich das wüsste... Sitze hier auf der Arbeit und habe nur den IE und sehe im IE nicht, welche Cookies da sind. Im Firefox sehe ich das ja.

Edit: Glaube es geht jetzt warum auch immer.
 
Zuletzt bearbeitet:
Dann buggt das Script vermutlich im IE, im Firefox klappt's wie gedacht.

Aber damit bin ich hier dann raus. Um in dem wustigen Script den IE-Fehler zu finden, braucht's dann doch etwas mehr Zeit als ich grad opfern könnte.
 
Geht jetzt auch im IE ka warum. Nur verhindert das Typo3 jetzt das ich das einbinden kann. Der JavaScript Code muss ja in Head Bereich das geht beim Typo3 nicht. Bzw. er würde es auf jeder Seite machen und das ist ja auch falsch. Muss jetzt mal überlegen wie ich das mache.