当前位置: 首页>>代码示例>>PHP>>正文


PHP MAX_cookieSendP3PHeaders函数代码示例

本文整理汇总了PHP中MAX_cookieSendP3PHeaders函数的典型用法代码示例。如果您正苦于以下问题:PHP MAX_cookieSendP3PHeaders函数的具体用法?PHP MAX_cookieSendP3PHeaders怎么用?PHP MAX_cookieSendP3PHeaders使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了MAX_cookieSendP3PHeaders函数的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: MAX_cookieClientCookieFlush

function MAX_cookieClientCookieFlush()
{
    $conf = $GLOBALS['_MAX']['CONF'];
    MAX_cookieSendP3PHeaders();
    if (!empty($GLOBALS['_MAX']['COOKIE']['CACHE'])) {
        // Set cookies
        reset($GLOBALS['_MAX']['COOKIE']['CACHE']);
        while (list($name, $v) = each($GLOBALS['_MAX']['COOKIE']['CACHE'])) {
            list($value, $expire) = $v;
            // Treat the viewerId cookie differently, (always set in client)
            if ($name == $conf['var']['viewerId']) {
                MAX_cookieClientCookieSet($name, $value, $expire, '/', !empty($conf['cookie']['domain']) ? $conf['cookie']['domain'] : null);
            } else {
                MAX_cookieSet($name, $value, $expire, '/', !empty($conf['cookie']['domain']) ? $conf['cookie']['domain'] : null);
            }
        }
        // Clear cache
        $GLOBALS['_MAX']['COOKIE']['CACHE'] = array();
    }
    // Compact all individual cookies into packed except for any cookies for the current bannerid
    // We only need to set these packed cookies if new capping data has been merged
    $cookieNames = $GLOBALS['_MAX']['COOKIE']['LIMITATIONS']['arrCappingCookieNames'];
    if (!is_array($cookieNames)) {
        return;
    }
    // For each type of cookie, repack if necessary
    foreach ($cookieNames as $cookieName) {
        // We only need to write out the compacted cookie if a new item is to be inserted (or updated)
        if (empty($_COOKIE["_{$cookieName}"])) {
            continue;
        }
        switch ($cookieName) {
            case $conf['var']['blockAd']:
            case $conf['var']['blockCampaign']:
            case $conf['var']['blockZone']:
                $expire = _getTimeThirtyDaysFromNow();
                break;
            case $conf['var']['capAd']:
            case $conf['var']['capCampaign']:
            case $conf['var']['capZone']:
                $expire = _getTimeYearFromNow();
                break;
            case $conf['var']['sessionCapCampaign']:
            case $conf['var']['sessionCapAd']:
            case $conf['var']['sessionCapZone']:
                $expire = 0;
                break;
        }
        if (!empty($_COOKIE[$cookieName]) && is_array($_COOKIE[$cookieName])) {
            $data = array();
            foreach ($_COOKIE[$cookieName] as $adId => $value) {
                $data[] = "{$adId}.{$value}";
            }
            // RFC says that maximum cookie data length is 4096 bytes
            // So we are assuming that 2048 will be valid in most browsers
            // Discard oldest data until we are under the limit
            while (strlen(implode('_', $data)) > 2048) {
                $data = array_slice($data, 1);
            }
            MAX_cookieSet($cookieName, implode('_', $data), $expire, '/', !empty($conf['cookie']['domain']) ? $conf['cookie']['domain'] : null);
        }
    }
}
开发者ID:villos,项目名称:tree_admin,代码行数:63,代码来源:ag.php

示例2: MAX_cookieClientCookieFlush

function MAX_cookieClientCookieFlush()
{
    $conf = $GLOBALS['_MAX']['CONF'];
    $domain = !empty($conf['cookie']['domain']) ? $conf['cookie']['domain'] : null;
    MAX_cookieSendP3PHeaders();
    if (!empty($GLOBALS['_MAX']['COOKIE']['CACHE'])) {
        reset($GLOBALS['_MAX']['COOKIE']['CACHE']);
        while (list($name, $v) = each($GLOBALS['_MAX']['COOKIE']['CACHE'])) {
            list($value, $expire) = $v;
            if ($name == $conf['var']['viewerId']) {
                MAX_cookieClientCookieSet($name, $value, $expire, '/', !empty($conf['cookie']['viewerIdDomain']) ? $conf['cookie']['viewerIdDomain'] : $domain);
            } else {
                MAX_cookieSet($name, $value, $expire, '/', $domain);
            }
        }
        $GLOBALS['_MAX']['COOKIE']['CACHE'] = array();
    }
    $cookieNames = $GLOBALS['_MAX']['COOKIE']['LIMITATIONS']['arrCappingCookieNames'];
    if (!is_array($cookieNames)) {
        return;
    }
    $maxCookieSize = !empty($conf['cookie']['maxCookieSize']) ? $conf['cookie']['maxCookieSize'] : 2048;
    foreach ($cookieNames as $cookieName) {
        if (empty($_COOKIE["_{$cookieName}"])) {
            continue;
        }
        switch ($cookieName) {
            case $conf['var']['blockAd']:
            case $conf['var']['blockCampaign']:
            case $conf['var']['blockZone']:
                $expire = _getTimeThirtyDaysFromNow();
                break;
            case $conf['var']['lastClick']:
            case $conf['var']['lastView']:
            case $conf['var']['capAd']:
            case $conf['var']['capCampaign']:
            case $conf['var']['capZone']:
                $expire = _getTimeYearFromNow();
                break;
            case $conf['var']['sessionCapCampaign']:
            case $conf['var']['sessionCapAd']:
            case $conf['var']['sessionCapZone']:
                $expire = 0;
                break;
        }
        if (!empty($_COOKIE[$cookieName]) && is_array($_COOKIE[$cookieName])) {
            $data = array();
            foreach ($_COOKIE[$cookieName] as $adId => $value) {
                $data[] = "{$adId}.{$value}";
            }
            while (strlen(implode('_', $data)) > $maxCookieSize) {
                $data = array_slice($data, 1);
            }
            MAX_cookieSet($cookieName, implode('_', $data), $expire, '/', $domain);
        }
    }
}
开发者ID:JackyKit,项目名称:revive-adserver,代码行数:57,代码来源:ti.php

示例3: test_MAX_cookieSendP3PHeaders

 /**
  * Test that the P3P headers are generated correctly
  *
  */
 function test_MAX_cookieSendP3PHeaders()
 {
     $conf =& $GLOBALS['_MAX']['CONF'];
     // Test that nothing is set if the p3p policy setting is set to false
     $conf['p3p']['policies'] = false;
     unset($GLOBALS['_HEADERS']);
     MAX_cookieSendP3PHeaders();
     $this->assertNull($GLOBALS['_HEADERS']);
     // Test that the p3p header is set correctly if p3p policies is set
     $conf['p3p']['policies'] = true;
     $p3p = _generateP3PHeader();
     unset($GLOBALS['_HEADERS']);
     MAX_cookieSendP3PHeaders();
     $this->assertIsA($GLOBALS['_HEADERS'], 'array');
     $this->assertEqual($GLOBALS['_HEADERS'][0], "P3P: " . $p3p);
 }
开发者ID:ballistiq,项目名称:revive-adserver,代码行数:20,代码来源:cookie.del.test.php


注:本文中的MAX_cookieSendP3PHeaders函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。