layer nur einmal beim Besuch anzeigen

Begonnen von onkel, 24 März 2006, 10:25:39

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

onkel

Hallo,

Ich habe bei mir auf der Seite einen Layer eingebunden, jetzt möchte ich das er nur einmal beim besuch der Seite angezeigt wird.

Wie kann ich das am besten bewikstelligen?

mfg
Onkel



<script language="javascript" type="text/javascript">
//toggles layer visibility on and off

function show(id) {
document.getElementById(id).style.visibility = "visible";
}
function hide(id) {
document.getElementById(id).style.visibility = "hidden";
}
</script>

</head>

<body leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" bgcolor="#FFFFFF" text="#000000" link="FFFFFF">
<div style="position:absolute;margin-top:160px;margin-left:150px;border:1px;" id="werbe" onClick="hide('werbe')">

<p><a href="javascript:void(0)" onClick="hide('werbe')"><img src="machzu.jpg" border="0"></a>
    </td>
</p>
<p><img src="layer.jpg" border="0" alt='Werbung' title='Werbung' width='500' height='355'>
  </p>
</body>

</html>

D-Lee

Ich bin zwar nicht so der große coder doch ich hatte mal ein script wo das in verbindung mit cookies ging.

Hier zu : http://de.selfhtml.org/javascript/objekte/document.htm#cookie

dort wirst du fündig wie man bei javascript cookies setzt.

Wenn ich mein script finde dann schicke ich es dir per pn. Muss suchen hoffendlich finde ich es...

Ich würde sagen versuch deins mit den cookies zu kombienieren

Grüße
D-Lee
Wahrheit ist die Erfindung eines Lügners...(deutsch)
Dürüstlük yalancının icadıdır...(türkçe)
Rastiyen qeseyi jurekero...(zazaki)

onkel

HI D-Lee,

Das hier blicke ich nicht so ganz, dafür bin ich zu blöd.

http://de.selfhtml.org/javascript/objekte/document.htm#cookie

Kannst es mir mal schicken, aber werde es hier anhängen, damit andere auch was davon haben.


Mit freundlichen Grüßen
Onkel

onkel

So ähnliches hatte Musicman75, aber irgendwie hat er die Lösung unterschlagen ....

http://www.pragmamx.org/modules.php?name=Forum&topic=12102.0


onkel

Ich habe was gefunden für popup's, vielleicht kann mir jemand helfen es für  layer umzubauen ?




Zitat<script language="JavaScript">
<!-- Begin
var expDays = 1; // number of days the cookie should last

var page = "popup.php";
var windowprops = "width=300,height=200,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=yes";

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.open(page, "", windowprops);

}
else {
count++;
SetCookie('count', count, exp);
   }
}
//  End -->
</script>

<!-- den onLoad event handler in den BODY tag  -->

<body OnLoad="checkCount()">

onkel

::) schade das niemand eine Idee hat, die Webeform mit dem Layer ist eigentlich gut es seiden die layer erscheinen nicht bei jedem Reaload der Seite, was sie bei mir aber machen :( .......................



onkel

<?php

$morgen 
mktime(0,0,0,date("m"),date("d")+1,date("Y")); //naechster Tag 00:00 Uhr

setcookie ("INFOLAYER""OK"$morgen);
$infocookie $_COOKIE["INFOLAYER"];

if (
$infocookie != 'OK') {
?>

<script language="javascript" type="text/javascript">
//toggles layer visibility on and off

function show(id) {
document.getElementById(id).style.visibility = "visible";
}
function hide(id) {
document.getElementById(id).style.visibility = "hidden";
}
</script>

</head>

<body leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" bgcolor="#FFFFFF" text="#000000" link="FFFFFF">
<div style="position:absolute;margin-top:160px;margin-left:150px;border:1px;" id="werbe" onClick="hide('werbe')">

<p><a href="javascript:void(0)" onClick="hide('werbe')"><img src="machzu.jpg" border="0"></a>
    </td>
</p>
<p><img src="layer.jpg" border="0" alt='Werbung' title='Werbung' width='500' height='355'>
  </p>
</body>

</html>
<?php
}
?>


Ich bin es wieder, der allein unterhallter.

Ich habe da mal was zusammengebastelt und dies Funktioniert auch, wie kann ich den Cookie beim schließen des Browsers löschen und wo packe ich den Code am besten hin ?

munzur

Hi!


So sollte es nur eine Stunde gültig sein.

setcookie ("INFOLAYER", "OK", time()+3600);



Zum löschen musst du soweit ich verstehe nochmal das setzen.

setcookie ("INFOLAYER");



Wieter diese Ino:

Auf php.net wird empfohlen, es ohne Wertangaben (also nur "") und mit negativer Geltungsdauer aufzurufen, damit es auch sicher gelöscht wird. Das sieht dann so aus:

setcookie("INFOLAYER","",time()-3600);



Hoffe das hilft dir


L.g
"Debug-Mode" einschalten.
"SQL-Fehler anzeigen" einschalten
und evt. auftauchende Fehlermeldungen posten .

onkel

Hi,


Ich wollte den Cookie nachm Browser schliessen löschen, aber damit tut es auch nicht.

http://joomla-portal.de/layer2.php

Wo kann ich denn diesen Code in Pragmamx am besten plazieren ?

mfg



NeMeSiSX2LC

Bekomme ich einen Fehler aber denke mal. im my_header.php ist ein guter Platz.....
CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1

onkel


Jetzt müsste es gehen

http://joomla-portal.de/layer2.php

Zitatdenke mal. im my_header.php ist ein guter Platz.....

Das ist schonmal etwas, jetzt müsste ich nur den Cookie beim Browser schließen löschen.

Ist schon Peinlich das sich so eine einfache frage hier so lange hinzieht  :o wenn man bedenkt was für fähige Leute unter uns sind.


munzur

Hallo,

Hab für dich mich mal umgesehen und bin auf diese Layer-Werbungen gestossen, die find ich genial :)
Hab danach ca 3-4 Stunden lang versucht rauszufinden wie die das machen aber hat leider nicht geklappt.
Hab heute, aus deinem Cookie und einen Layerscript was gebastelt scheint zu functionieren. Das (gute) ist dass PopupBlocker diese Layer nicht Blocken können. Es gibt schon möglichkeiten aber die kennt kein Windows User, ich hätte sicher auch danach suchen müssen.

Im anhang der Code.


L.g

[gelöscht durch Administrator]
"Debug-Mode" einschalten.
"SQL-Fehler anzeigen" einschalten
und evt. auftauchende Fehlermeldungen posten .

Musicman75

ich hab jetzt meine ganzen dateien durchsucht, aber irgendwie finde ich nicht mehr, wo ich das popup eingebaut habe.

:-[

jemand ne ahnung, wo ich das eingebaut haben könnte?

:-\

SOnst hätte ich das schon hier gepostet, wie ich das gemacht habe.
Unaufgeforderte Support PMs & Emails werden ignoriert

Immer erst die Boardsuche verwenden und gegebenenfalls einen neuen Threat eröffnen, wenn das Problem noch nicht behandelt wurde!

RiotheRat

Mal eine bescheidene Zwischenfrage ... warum werkelt Ihr so umständlich mit Cookies und so einem Krams rum? Innerhalb des Mx wird immer eine Session gestartet. Von daher lässt sich die Session doch wunderbar nutzen um mit Timestamps zu arbeiten ...
// Aktuellen Zeitstempel festlegen
$layer_temp = time();

// Die benoetigten Vars sind noch nicht in der Session registriert - in die Session schreiben
if ((!isset($_SESSION['layer_time'])) || (!isset($_SESSION['layer_show']))) {
// Zeitstempel in der Session um 24 h erhoehen
$_SESSION['layer_time'] = time()+86400;
// Layeranzeige einschalten
$_SESSION['layer_show'] = 1;
}

// Es sind mehr als 24 h vergangen oder die Layeranzeige ist eingeschaltet
if(($_SESSION['layer_time'] < $layer_temp) || ($_SESSION['layer_show'] == 1)) {
if ((!isset($_SESSION['layer_time'])) || (!isset($_SESSION['layer_show']))) {
// Zeitstempel in der Session um 24 h erhoehen
$_SESSION['layer_time'] = time()+86400;
// Layeranzeige ausschalten
$_SESSION['layershow'] = 0;
// Ab hier der Code der den Layer anzeigt
...
}

Ist meines erachtens nach die einfachste Möglichkeit ... zumal einem so das ganze Cookiegefrickel erspart bleibt. Zumal sich die mit Cookie-Editoren (z.B. für den Feuerfuchs) auf das einfachste verändern lassen.

RtR
Unaufgeforderte PNs & Emails werden ignoriert

Erst wenn die letzte Zeile Code verhunzt, der letzte Server gehackt und der letzte Script-Kidde befriedigt ist, erst dann, werdet Ihr feststellen, dass Nuke nicht sicher ist...

NeMeSiSX2LC

//OT START
Wenn ich den link grad so sehen. Müsste ich mir auch mal was anderes für den Profilbesucher counnter einfallen lassen.. Sonst kann man da auch besch....en ;)

//OT END
CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1

onkel

@RiotheRat

So wie das sehe erscheint der Layer immer alle 24 std.
Kann man die SESSION fuer den Layer nicht bei jedem Browser schliessen loeschen ?

@munzur

Danke fuer deine muehe, werde ich sobal ich in der BRD bin versuchen.


mfg
Onkel aus dem Sonnigem Sueden und viel spass im verpissten Deutschland.

munzur

Zitat von: munzur am 31 März 2006, 23:39:49
Hallo,

Hab für dich mich mal umgesehen und bin auf diese Layer-Werbungen gestossen, die find ich genial :)
Hab danach ca 3-4 Stunden lang versucht rauszufinden wie die das machen aber hat leider nicht geklappt.
Hab heute, aus deinem Cookie und einen Layerscript was gebastelt scheint zu functionieren. Das (gute) ist dass PopupBlocker diese Layer nicht Blocken können. Es gibt schon möglichkeiten aber die kennt kein Windows User, ich hätte sicher auch danach suchen müssen.

Im anhang der Code.


L.g

Hallo,

INFO: Das Teil functioniert nur LOCAL hab heute mal am Server getestet leider functioniert er dort nciht so wie es sollte.


L.g
"Debug-Mode" einschalten.
"SQL-Fehler anzeigen" einschalten
und evt. auftauchende Fehlermeldungen posten .