koekjesbakken.php

Gesponsorde koppelingen

PHP script bestanden

  1. koekjesbakken.php

« Lees de omschrijving en reacties

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?

/**
 * Schrijf cookie
 * @note als setcookie() met Same-Site attribuut
 * @param string $sNaam
 * @param string $sInhoud
 * @param int $iLevensduur in seconden
 * @return void
 */


function schrijfCookie(string $sNaam, string $sInhoud, int $iLevensduur) {
  header('Set-Cookie: '
    . urlencode($sNaam) . '=' . urlencode($sInhoud)
    .
'; Max-Age=' . ((string) abs($iLevensduur))
//      . '; Domain=' // optioneel, default is huidige domein
    . '; Path=/'
    . ((isset($_SERVER['HTTPS']) and $_SERVER['HTTPS'] !== 'off')
        ?
'; Secure'  // FF negeert dit bij HTTP, IE11 niet
        : ''
      )
    .
'; HttpOnly'
    . '; SameSite=Strict');
}



/**
 * Wis cookie
 * @return void
 */


function wisCookie(string $sNaam, string $sInhoud) {
  // wis evt. cookie in browser
  if (!headers_sent()) {
    $sCookie = sprintf(' %s=', urlencode($sNaam));
    $sCookieInh = sprintf('%s%s;', $sCookie, urlencode($sInhoud));
    $bCookie = FALSE;
    $aCookie = [];  // andere cookies
    foreach (headers_list() as $sHeader) {
      if (0 !== stripos($sHeader, 'Set-Cookie:')) {continue;}
      if (11 === strpos($sHeader, $sCookie, 11)) {
        $bCookie = TRUE;
        if (11 !== strpos($sHeader, $sCookieInh, 11)) {$aCookie[] = $sHeader;}
      }
else {$aCookie[] = $sHeader;}
    }

    if ($bCookie) {
      header_remove('Set-Cookie');  // niet vervangen, alle cookies sturen
      foreach ($aCookie as $sHeader) {header($sHeader, FALSE);}
    }

    else {$this->schrijfCookie($sNaam, '', 0);}  // 0 = tot browser sluit
  }
}

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.