Verzeichnisstruktur phpBB-3.2.0


Veröffentlicht
06.01.2017

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

Cookie.php

Zuletzt modifiziert: 09.10.2024, 12:54 - Dateigröße: 4.89 KiB


001  <?php
002   
003  /*
004   * This file is part of the Symfony package.
005   *
006   * (c) Fabien Potencier <fabien@symfony.com>
007   *
008   * For the full copyright and license information, please view the LICENSE
009   * file that was distributed with this source code.
010   */
011   
012  namespace Symfony\Component\HttpFoundation;
013   
014  /**
015   * Represents a cookie.
016   *
017   * @author Johannes M. Schmitt <schmittjoh@gmail.com>
018   */
019  class Cookie
020  {
021      protected $name;
022      protected $value;
023      protected $domain;
024      protected $expire;
025      protected $path;
026      protected $secure;
027      protected $httpOnly;
028   
029      /**
030       * Constructor.
031       *
032       * @param string                                  $name     The name of the cookie
033       * @param string                                  $value    The value of the cookie
034       * @param int|string|\DateTime|\DateTimeInterface $expire   The time the cookie expires
035       * @param string                                  $path     The path on the server in which the cookie will be available on
036       * @param string                                  $domain   The domain that the cookie is available to
037       * @param bool                                    $secure   Whether the cookie should only be transmitted over a secure HTTPS connection from the client
038       * @param bool                                    $httpOnly Whether the cookie will be made accessible only through the HTTP protocol
039       *
040       * @throws \InvalidArgumentException
041       */
042      public function __construct($name, $value = null, $expire = 0, $path = '/', $domain = null, $secure = false, $httpOnly = true)
043      {
044          // from PHP source code
045          if (preg_match("/[=,; \t\r\n\013\014]/", $name)) {
046              throw new \InvalidArgumentException(sprintf('The cookie name "%s" contains invalid characters.', $name));
047          }
048   
049          if (empty($name)) {
050              throw new \InvalidArgumentException('The cookie name cannot be empty.');
051          }
052   
053          // convert expiration time to a Unix timestamp
054          if ($expire instanceof \DateTime || $expire instanceof \DateTimeInterface) {
055              $expire = $expire->format('U');
056          } elseif (!is_numeric($expire)) {
057              $expire = strtotime($expire);
058   
059              if (false === $expire || -1 === $expire) {
060                  throw new \InvalidArgumentException('The cookie expiration time is not valid.');
061              }
062          }
063   
064          $this->name = $name;
065          $this->value = $value;
066          $this->domain = $domain;
067          $this->expire = $expire;
068          $this->path = empty($path) ? '/' : $path;
069          $this->secure = (bool) $secure;
070          $this->httpOnly = (bool) $httpOnly;
071      }
072   
073      /**
074       * Returns the cookie as a string.
075       *
076       * @return string The cookie
077       */
078      public function __toString()
079      {
080          $str = urlencode($this->getName()).'=';
081   
082          if ('' === (string) $this->getValue()) {
083              $str .= 'deleted; expires='.gmdate('D, d-M-Y H:i:s T', time() - 31536001);
084          } else {
085              $str .= urlencode($this->getValue());
086   
087              if ($this->getExpiresTime() !== 0) {
088                  $str .= '; expires='.gmdate('D, d-M-Y H:i:s T', $this->getExpiresTime());
089              }
090          }
091   
092          if ($this->path) {
093              $str .= '; path='.$this->path;
094          }
095   
096          if ($this->getDomain()) {
097              $str .= '; domain='.$this->getDomain();
098          }
099   
100          if (true === $this->isSecure()) {
101              $str .= '; secure';
102          }
103   
104          if (true === $this->isHttpOnly()) {
105              $str .= '; httponly';
106          }
107   
108          return $str;
109      }
110   
111      /**
112       * Gets the name of the cookie.
113       *
114       * @return string
115       */
116      public function getName()
117      {
118          return $this->name;
119      }
120   
121      /**
122       * Gets the value of the cookie.
123       *
124       * @return string
125       */
126      public function getValue()
127      {
128          return $this->value;
129      }
130   
131      /**
132       * Gets the domain that the cookie is available to.
133       *
134       * @return string
135       */
136      public function getDomain()
137      {
138          return $this->domain;
139      }
140   
141      /**
142       * Gets the time the cookie expires.
143       *
144       * @return int
145       */
146      public function getExpiresTime()
147      {
148          return $this->expire;
149      }
150   
151      /**
152       * Gets the path on the server in which the cookie will be available on.
153       *
154       * @return string
155       */
156      public function getPath()
157      {
158          return $this->path;
159      }
160   
161      /**
162       * Checks whether the cookie should only be transmitted over a secure HTTPS connection from the client.
163       *
164       * @return bool
165       */
166      public function isSecure()
167      {
168          return $this->secure;
169      }
170   
171      /**
172       * Checks whether the cookie will be made accessible only through the HTTP protocol.
173       *
174       * @return bool
175       */
176      public function isHttpOnly()
177      {
178          return $this->httpOnly;
179      }
180   
181      /**
182       * Whether this cookie is about to be cleared.
183       *
184       * @return bool
185       */
186      public function isCleared()
187      {
188          return $this->expire < time();
189      }
190  }
191