als ik op mijn site kom laat ik een popup zien met een waarschuwing.
Dit is code in de "head:
<script language="JavaScript">
<!--
var msg="tekst"
if(!confirm(msg)){window.top.popup=0;window.top.location.replace("http://www.google.be/");}//
-->
</script>

Dit staat in de "body":
<BODY onLoad="javascript:popUp()">

Nu is mijn vraag:
telkens ik naar de index ga gaat deze popup open. Wat ik graag zou weten is hoe ik er voor zorg dat de popup maar enkel verschijnt bij de eerste maal dat de site wordt geopend en niet telkens men terug naar de indexpagina gaat.

Is daar een oplossing voor?
Popupblocker aanzetten en je hebt er nooit last meer van.
Waarom wil je een irritante popup op je website hebben?
Dat is voor de reden om er niet meer dan 1 keer te komen.

<html>
<head>
<script language="JavaScript">
<!--
var msg="tekst"
if(!confirm(msg)){window.top.popup=0;window.top.location.replace("http://www.google.be/");}//
-->
</script>
</head>

<?php
if(isset($_COOKIE['popup'])) {
// is dus al geweest, niet meer onloaden.
echo "<body>";
} else {
echo "<BODY onLoad=\"javascript:popUp()\">";
// cookie plaatsen.
setcookie("popup", '1');
}
?>

content. blablabla.
</body
</html>

zou moeten werken, niet getest.
Jens schreef op 09.10.2009 15:49

<html>
<head>
<script language="JavaScript">
<!--
var msg="tekst"
if(!confirm(msg)){window.top.popup=0;window.top.location.replace("http://www.google.be/");}//
-->
</script>
</head>

<?php
if(isset($_COOKIE['popup'])) {
// is dus al geweest, niet meer onloaden.
echo "<body>";
} else {
echo "<BODY onLoad=\"javascript:popUp()\">";
// cookie plaatsen.
setcookie("popup", '1');
}
?>

content. blablabla.
</body
</html>

zou moeten werken, niet getest.


Ergens zit een foutje, hij blijft gewoon elke keer die pupop tonen!

Jacques.
Zet voor de gein dit eens bovenaan je script:

<?php
    error_reporting(E_ALL);
    ini_set('display_errors',1);
?>

die setcookie (wat net zo netjes gewoon met $_COOKIE['popup'] = 1; kan) moet voordat er output naar de browser wordt gestuurd.
Je moet het dus voor welke echo/html/spatie/... neerzetten.
TJVB schreef op 09.10.2009 22:17

die setcookie (wat net zo netjes gewoon met $_COOKIE['popup'] = 1; kan)

Onjuist.
TJVB schreef op 09.10.2009 22:17
Zet voor de gein dit eens bovenaan je script:

<?php
    error_reporting(E_ALL);
    ini_set('display_errors',1);
?>

die setcookie (wat net zo netjes gewoon met $_COOKIE['popup'] = 1; kan) moet voordat er output naar de browser wordt gestuurd.
Je moet het dus voor welke echo/html/spatie/... neerzetten.


De error reporting geeft geen foutmeldingen!!
SanThe schreef op 09.10.2009 22:29
[quote='TJVB schreef op 09.10.2009 22:17']
die setcookie (wat net zo netjes gewoon met $_COOKIE['popup'] = 1; kan)

Onjuist.[/quote]Stom van me, was in de war met $_SESSION. Laten we het er maar op houden dat het vrijdag is...

jacques schreef op 09.10.2009 22:43
...

De error reporting geeft geen foutmeldingen!!

Je hebt toch geen ob_* functies gebruikt?
Je moet namelijk een header already sent error krijgen. Je probeert namelijk een cookie te zetten (dat is een header) terwijl je al output hebt verstuurd en dus geen headers meer kan versturen.

Edit: Even een quote eruit voor de layout
mocht je het nog niet hebben:


<html>
<head>
<script language="JavaScript">
function popup() {
<!--
var msg="tekst"
if(!confirm(msg)){
window.top.popup=0;window.top.location.replace("http://www.google.be/");
} else {
document.cookie = "popup=1";
}

//
-->
}
</script>
</head>

<?php
if(isset($_COOKIE['popup'])) {
// is dus al geweest, niet meer onloaden.
echo "<body>";
} else {
echo "<BODY onLoad=\"popup()\">";
// cookie plaatsen.
}
?> 
</body>
</html>
Jens waarom wil je met javascript een cookie zetten?
Dat kan gewoon vanuit php.

Reageren