[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/symfony/http-foundation/Session/ -> SessionUtils.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <fabien@symfony.com>
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  namespace Symfony\Component\HttpFoundation\Session;
  13  
  14  /**
  15   * Session utility functions.
  16   *
  17   * @author Nicolas Grekas <p@tchwork.com>
  18   * @author Rémon van de Kamp <rpkamp@gmail.com>
  19   *
  20   * @internal
  21   */
  22  final class SessionUtils
  23  {
  24      /**
  25       * Find the session header amongst the headers that are to be sent, remove it, and return
  26       * it so the caller can process it further.
  27       */
  28      public static function popSessionCookie($sessionName, $sessionId)
  29      {
  30          $sessionCookie = null;
  31          $sessionCookiePrefix = sprintf(' %s=', urlencode($sessionName));
  32          $sessionCookieWithId = sprintf('%s%s;', $sessionCookiePrefix, urlencode($sessionId));
  33          $otherCookies = [];
  34          foreach (headers_list() as $h) {
  35              if (0 !== stripos($h, 'Set-Cookie:')) {
  36                  continue;
  37              }
  38              if (11 === strpos($h, $sessionCookiePrefix, 11)) {
  39                  $sessionCookie = $h;
  40  
  41                  if (11 !== strpos($h, $sessionCookieWithId, 11)) {
  42                      $otherCookies[] = $h;
  43                  }
  44              } else {
  45                  $otherCookies[] = $h;
  46              }
  47          }
  48          if (null === $sessionCookie) {
  49              return null;
  50          }
  51  
  52          header_remove('Set-Cookie');
  53          foreach ($otherCookies as $h) {
  54              header($h, false);
  55          }
  56  
  57          return $sessionCookie;
  58      }
  59  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1