Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

welcome message met php cookies

mikesmikkel
12 antwoorden
  • Ik heb een welkom bericht gemaakt voor iemand anders.
    Hij wil nu dat via php cookies ervoor gezorgd wordt dat:

    - zijn welkom bericht getoond wordt alleen als er geen cookie aangetroffen wordt
    -er een cookie gemaakt wordt als er geen is
    -als er wel een cookie is de bezoeker gewoon de pagina ziet

    dit is mijn code (is maar een deel van de css):

    [code:1:e16e6c4973]
    <div id="appear" style="position: absolute; width: 185px; height: 122px; z-index: 1; display:block; left: 836px; top: 280px;">
    <p>Welcome on my website!!</p><img alt="" src="goed/lightbox/images/closelabel.gif" title="hide" onclick="document.getElementById('appear').style.display = 'none';" /><br/>
    </div>
    [/code:1:e16e6c4973]

    Zou iemand mij kunnen helpen??

    Alvast bedankt.
  • Waarom per se met PHP cookies? Als je verder blijkbaar alles client side hebt geregeld, dan zou ik voor dit stukje gewoon javascript cookies gebruiken
  • Heb het geprobeerd, maar het werkt niet.
    Dit is mijn code:
    [code:1:31fec59400]<html>
    <head>
    <title>test</title>

    <script type="text/javascript">
    function setCookie(c_welcome, no)
    {
    document.cookie = c_welcome + "=" +no;
    }


    function getCookie(c_welcome)
    {
    if (document.cookie.length>0)
    {
    c_start=document.cookie.indexOf(c_welcome + "=");
    if (c_start!=-1)
    {
    c_start=c_start + c_welcome.length+1;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    }
    }
    return "";
    }

    function checkCookie()
    {
    welcome=getCookie('welcome');
    if (welcome == null)
    {
    document.write('<div id=\"appear\" style=\"position: absolute; width: 185px;

    height: 122px; z-index: 1; display:block; left: 836px; top: 280px;\">
    <p>Welcome on my website!!</p><img alt=\"\" src=

    \"goed/lightbox/images/closelabel.gif\" title=\"hide\" onclick=

    \"document.getElementById('appear').style.display = 'none';\" /><br/>
    </div>
    ');

    setCookie(c_welcome,no);

    }

    }
    </script>
    </head>
    <body>
    test
    </body>
    </html>[/code:1:31fec59400]
  • Op de link die ik eerder gaf staat bijna letterlijk wat je nodig hebt. Als je dat gebruikt en van daaruit verder werkt, lukt het dan wel?
  • Ik snap eerlijk gezegd niet waarom je dit client-side wilt afhandelen, bedenk ook eens wat er gebeurt als Javascript uitstaat. Als het verschil van levensbelang is, kijk dan ook eens naar PHP cookies: http://php.about.com/od/advancedphp/qt/php_cookie.htm
    Als het niet uitmaakt als het soms misschien niet werkt, dan kan Javascript ook.
  • [quote:6c83305033="marientje"]Ik snap eerlijk gezegd niet waarom je dit client-side wilt afhandelen,[/quote:6c83305033]Mijn advies geweest. Als verder alles al client side gebeurt, de TS niet weet hoe cookies werken en zijn HTML/JS uitscheld voor CSS, dan lijkt het me niet heel zinvol om er nog PHP bij te betrekken. Mede omdat:
    [quote:6c83305033="marientje"]
    bedenk ook eens wat er gebeurt als Javascript uitstaat. Als het verschil van levensbelang is, kijk dan ook eens naar PHP cookies: http://php.about.com/od/advancedphp/qt/php_cookie.htm
    Als het niet uitmaakt als het soms misschien niet werkt, dan kan Javascript ook.[/quote:6c83305033]Het gaat maar om een welkomstbericht, dus het is niet bepaald van levensbelang lijkt me.
  • De javascript was al van de site die je mij had doorgestuurd.

    Heb ook een php code geprobeerd, nu krijg ik al een cookie, maar de message is er nog niet.

    Dit is mijn code.
    [code:1:19ca78d988]<?php
    $Month = 2592000 + time();
    //this adds 30 days to the current time
    setcookie(welcome, no, $Month);
    ?>
    <?php
    if(isset($_COOKIE['welcome']))
    {
    echo "<div id=\"appear\" style=\"position: absolute; width: 185px;

    height: 122px; z-index: 1; display:block; left: 836px; top: 280px;\">
    <p>Welcome on my website!!</p><img alt=\"\" src=

    \"goed/lightbox/images/closelabel.gif\" title=\"hide\" onclick=

    \"document.getElementById('appear').style.display = 'none';\" /><br/>
    </div>
    "
    }
    else
    {

    }
    ?>[/code:1:19ca78d988]
  • Heb hierna nog een nieuwe code gemaakt, deze werkte wel, maar gaf altijd de message weer.
    Heb nu iets veranderd en nu werkt ie niet meer.
    Zou iemand mijn syntax kunnen checken??

    [code:1:8731b967fd]<html>
    <head>

    <script>
    function hide(){
    document.getElementById("hide").style.display = "none";
    }
    </script>
    <style type="text/css">
    body{background:white;}
    #appear{
    position: absolute; width: 185px;

    height: 122px;display:block; left: 836px; top: 280px;
    }

    </style>
    <title>test</title>
    </head>
    <body>
    <?php
    if(!isset($_COOKIE['welcome']))
    {
    echo "<div id=\"hide\">
    <p>Welcome on my website!!</p><button onclick=\"hide();\"></button><br/></div>
    ";
    }
    else{}
    ?>
    </body>
    </html>[/code:1:8731b967fd]
  • [quote:00b7e61349]
    - zijn welkom bericht getoond wordt alleen als er geen cookie aangetroffen wordt
    - er een cookie gemaakt wordt als er geen is
    - als er wel een cookie is de bezoeker gewoon de pagina ziet
    [/quote:00b7e61349]
    De inhoud van de cookie hoeft zo te zien dus niet getoont te worden, er wordt alleen gechecked of de cookie bestaat.
    Dus: GEEN cookie -> Welkomsbericht, maak cookie en toon de pagina
    WEL een cookie -> Toon de pagina
    Of nog korter: GEEN cookie -> Welkomsbericht tonen en cookie maken

    Ik ga ervan uit dat de code tussen je HTML komt. Deze zou ik direct onder de body tag plaatsen, zodat de HTML head al verstuurd is en de body gestart.
    [code:1:00b7e61349]
    <?php
    // ALS de cookie NIET bestaat
    if(!isset($_COOKIE["welcome"]))
    // DAN
    {
    echo "<p>Dit is een welkoms bericht</p>";
    setcookie("welcome", "aan"]);
    }
    ?>
    [/code:1:00b7e61349]
    Ik weet even niet of je ook booleans in cookies kan gebruiken. Volgens mij niet, anders kon je er nog setcookie("welcome", true]); van maken.
  • Bedankt voor jullie hulp, nu werkt het eindelijk!!

    Groetjes,
    Mike
  • [quote:fec237133b="Gooly"]Ik ga ervan uit dat de code tussen je HTML komt. Deze zou ik direct onder de body tag plaatsen, zodat de HTML head al verstuurd is en de body gestart.[/quote:fec237133b]

    Dat mag helemaal niet. Van de PHP-pagina:
    [quote:fec237133b]setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent [b:fec237133b]before[/b:fec237133b] any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace.[/quote:fec237133b]
    Er mag dus nog helemaal niks verstuurd zijn voor de functie "setcoockie" wordt aangeroepen.
  • [quote:52515a2e91="Supersnail"]…
    Er mag dus nog helemaal niks verstuurd zijn voor de functie "setcoockie" wordt aangeroepen.[/quote:52515a2e91]
    Logisch ook ja. Dus dit zal een 'headers already sent' error opleveren. Zelf heb ik het nooit op die manier gedaan of geprobeert, anders was ik er vanzelf wel tegenaan gelopen :-)
    Bedankt voor de aanvulling.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.