<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.network.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.setcookie.php',
    1 => 'setcookie',
    2 => 'Env&iacute;a una cookie',
  ),
  'up' => 
  array (
    0 => 'ref.network.php',
    1 => 'Funciones de red',
  ),
  'prev' => 
  array (
    0 => 'function.request-parse-body.php',
    1 => 'request_parse_body',
  ),
  'next' => 
  array (
    0 => 'function.setrawcookie.php',
    1 => 'setrawcookie',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/network/functions/setcookie.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.setcookie" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">setcookie</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">setcookie</span> &mdash; <span class="dc-title">Envía una cookie</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.setcookie-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>setcookie</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$name</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$value</code><span class="initializer"> = &quot;&quot;</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$expires_or_options</code><span class="initializer"> = 0</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$path</code><span class="initializer"> = &quot;&quot;</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$domain</code><span class="initializer"> = &quot;&quot;</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> <code class="parameter">$secure</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong></span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> <code class="parameter">$httponly</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong></span></span><br>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="simpara">Firma alternativa disponible a partir de PHP 7.3.0 (no soportado con parámetros nombrados):</p>
  <div class="methodsynopsis dc-description"><span class="methodname"><strong>setcookie</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$name</code></span>, <span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$value</code><span class="initializer"> = &quot;&quot;</span></span>, <span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$options</code><span class="initializer"> = []</span></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="simpara">
   <span class="function"><strong>setcookie()</strong></span> define una cookie que será enviada junto con el
   resto de los encabezados HTTP. Al igual que con otros encabezados, las cookies deben ser enviadas
   <em>antes</em> de cualquier salida del script (esto es una
   restricción del protocolo HTTP). Esto requiere que esta función sea llamada
   antes de cualquier salida, incluyendo las etiquetas <code class="literal">&lt;html&gt;</code> y
   <code class="literal">&lt;head&gt;</code> así como cualquier espacio en blanco.
  </p>
  <p class="simpara">
   Una vez que las cookies han sido establecidas, estarán disponibles durante
   el próximo cargado de página en el array <var class="varname"><a href="reserved.variables.cookies.php" class="classname">$_COOKIE</a></var>.
   Los valores de las cookies
   también pueden existir en la variable <var class="varname"><a href="reserved.variables.request.php" class="classname">$_REQUEST</a></var>.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.setcookie-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">
   La <a href="https://datatracker.ietf.org/doc/html/rfc6265" class="link external">&raquo;&nbsp;RFC 6265</a> es la referencia para
   la interpretación de los argumentos pasados a <span class="function"><strong>setcookie()</strong></span>.
   <dl>
    
     <dt><code class="parameter">name</code></dt>
     <dd>
      <span class="simpara">
       El nombre de la cookie.
      </span>
     </dd>
    
    
     <dt><code class="parameter">value</code></dt>
     <dd>
      <span class="simpara">
        El valor de la cookie. Este valor se almacena en el ordenador del cliente;
        no se deben almacenar información importante.
        Si el argumento <code class="parameter">name</code> vale <code class="literal">&#039;cookiename&#039;</code>,
        este valor es recuperado con <var class="varname"><a href="reserved.variables.cookies.php" class="classname">$_COOKIE['cookiename']</a></var>.
      </span>
     </dd>
    
    
     <dt><code class="parameter">expires_or_options</code></dt>
     <dd>
      <span class="simpara">
       El tiempo después del cual la cookie expira. Esto es un timestamp Unix, por lo tanto,
       será un número de segundos desde la época Unix (1 de enero de 1970).
       Una forma de definir este valor es añadiendo el número de segundos antes
       de que la cookie expire al resultado de una llamada a <span class="function"><a href="function.time.php" class="function">time()</a></span>.
       Por ejemplo <code class="literal">time()+60*60*24*30</code> configurará la cookie para
       que expire en 30 días. Otra posibilidad es utilizar la función
       <span class="function"><a href="function.mktime.php" class="function">mktime()</a></span>. Si no se especifica este argumento o si vale 0, la cookie expirará
       al final de la sesión (cuando el navegador se cierre).
      </span>
      <blockquote class="note"><p><strong class="note">Nota</strong>: 
       <span class="simpara">
        El parámetro <code class="parameter">expires_or_options</code> toma una
        marca de tiempo Unix, a diferencia del formato de fecha <code class="literal">Wdy, DD-Mon-YYYY
        HH:MM:SS GMT</code>, porque PHP realiza esta conversión
        internamente.
       </span>
      </p></blockquote>
     </dd>
    
    
     <dt><code class="parameter">path</code></dt>
     <dd>
      <span class="simpara">
       La ruta en el servidor donde la cookie estará disponible.
       Si el valor es <code class="literal">&#039;/&#039;</code>, la cookie estará disponible
       en todo el dominio <code class="parameter">domain</code>. Si el valor
       es <code class="literal">&#039;/foo/&#039;</code>, la cookie estará únicamente disponible
       en el directorio <code class="literal">/foo/</code> así como todos sus
       subdirectorios como <code class="literal">/foo/bar/</code> en el dominio
       <code class="parameter">domain</code>. El valor por omisión es el directorio
       actual donde la cookie fue definida.
      </span>
     </dd>
    
    
     <dt><code class="parameter">domain</code></dt>
     <dd>
      <span class="simpara">
       El (sub-)dominio para el cual la cookie está disponible. Definir esto a un
       subdominio (tal como <code class="literal">&#039;www.example.com&#039;</code>) hará que la cookie
       esté disponible para este subdominio así como todos sus subdominios
       (por ejemplo: w2.www.example.com). Para hacer que la cookie
       esté disponible en todo el dominio (así como todos sus subdominios), simplemente
       defina el valor con el nombre de dominio (<code class="literal">&#039;example.com&#039;</code>,
       en este ejemplo).
      </span>
      <span class="simpara">
       Los navegadores antiguos que continúan implementando la
       <a href="https://datatracker.ietf.org/doc/html/rfc2109" class="link external">&raquo;&nbsp;RFC 2109</a> (obsoleta)
       pueden requerir un <code class="literal">.</code> para hacer disponible
       todos los subdominios.
      </span>
     </dd>
    
    
     <dt><code class="parameter">secure</code></dt>
     <dd>
      <span class="simpara">
       Indica si la cookie debe ser transmitida únicamente a través de una
       conexión segura HTTPS desde el cliente. Cuando este argumento
       vale <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, la cookie solo será enviada si la conexión es segura.
       Del lado del servidor, es responsabilidad del desarrollador enviar este tipo de cookie
       únicamente en conexiones seguras (por ejemplo, utilizando
       la variable <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER["HTTPS"]</a></var>).
      </span>
     </dd>
    
    
     <dt><code class="parameter">httponly</code></dt>
     <dd>
      <span class="simpara">
       Cuando este argumento vale <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, la cookie solo será accesible por
       el protocolo HTTP. Esto significa que la cookie no será accesible
       vía lenguajes de script, como Javascript. Se ha sugerido que esta
       configuración permite limitar ataques XSS (aunque no es soportada por todos los navegadores),
       sin embargo este hecho es frecuentemente cuestionado.
       <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> o <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>
      </span>
     </dd>
    
    
     <dt><code class="parameter">options</code></dt>
     <dd>
      <span class="simpara">
       Un <span class="type"><a href="language.types.array.php" class="type array">array</a></span> asociativo que puede tener como claves
       <code class="literal">expires</code>, <code class="literal">path</code>, <code class="literal">domain</code>,
       <code class="literal">secure</code>, <code class="literal">httponly</code> y <code class="literal">samesite</code>.
      </span>
      <span class="simpara">
       Los valores tienen el mismo significado que los descritos para los argumentos
       con el mismo nombre. El valor del elemento <code class="literal">samesite</code> debe
       ser <code class="literal">None</code>, <code class="literal">Lax</code> o <code class="literal">Strict</code>.
       Si una opción autorizada no es dada, entonces su valor por omisión será
       idéntico al valor por omisión de los argumentos explícitos. Si el elemento
       <code class="literal">samesite</code> es omitido, entonces el atributo SameSite de la cookie
       no será definido.
      </span>
      <blockquote class="note"><p><strong class="note">Nota</strong>: 
       <span class="simpara">
        Para definir una cookie que incluye atributos que no figuran entre las claves listadas,
        utilice <span class="function"><a href="function.header.php" class="function">header()</a></span>.
       </span>
      </p></blockquote>
      <blockquote class="note"><p><strong class="note">Nota</strong>: 
       <span class="simpara">
        Si <code class="literal">samesite</code> es <code class="literal">&quot;None&quot;</code>, entonces
        <code class="literal">secure</code> también debe estar habilitado o el cliente
        bloqueará la cookie.
       </span>
      </p></blockquote>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.setcookie-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="simpara">
   Si algo fue enviado a la salida estándar antes de la llamada
   a esta función, <span class="function"><strong>setcookie()</strong></span> fallará y
   retornará <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>. Si <span class="function"><strong>setcookie()</strong></span> tiene éxito,
   retornará <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>.
   Esto no indica si el cliente acepta o no la cookie.
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-function.setcookie-errors">
  <h3 class="title">Errores/Excepciones</h3>
  <p class="simpara">
   Si el <span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">options</code> contiene claves no soportadas:
  </p>
  <ul class="itemizedlist">
   <li class="listitem">
    <span class="simpara">
     Antes de PHP 8.0.0, se generaba un <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     A partir de PHP 8.0.0, se lanza una <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span>.
    </span>
   </li>
  </ul>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.setcookie-changelog">
  <h3 class="title">Historial de cambios</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Versión</th>
      <th>Descripción</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.2.0</td>
      <td>
       La fecha de la cookie está en formato <code class="literal">&#039;D, d M Y H:i:s \G\M\T&#039;</code>;
       previamente era <code class="literal">&#039;D, d-M-Y H:i:s T&#039;</code>.
      </td>
     </tr>

     <tr>
      <td>8.0.0</td>
      <td>
       Pasar claves no soportadas ahora lanza una <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span>
       en lugar de emitir un <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>.
      </td>
     </tr>

     <tr>
      <td>7.3.0</td>
      <td>
       Se añadió una firma alternativa que soporta un array
       de <code class="parameter">options</code>. Esta firma soporta la definición del atributo SameSite de la cookie.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 examples" id="refsect1-function.setcookie-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="simpara">
   Los efectos de los siguientes ejemplos se pueden observar utilizando la lista de cookies de las
   herramientas para desarrolladores del navegador (normalmente en la pestaña Almacenamiento o Aplicación).
  </p>
  <div class="example" id="example-1">
   <p><strong>Ejemplo #1 Ejemplo de envío de una cookie con <span class="function"><strong>setcookie()</strong></span></strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$value </span><span style="color: #007700">= </span><span style="color: #DD0000">'Valor de prueba'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Establecer una "cookie de sesión" que caduca cuando se cierra el navegador<br /></span><span style="color: #0000BB">setcookie</span><span style="color: #007700">(</span><span style="color: #DD0000">"TestCookie"</span><span style="color: #007700">, </span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">// Establecer una cookie que expira en 1 hora<br /></span><span style="color: #0000BB">setcookie</span><span style="color: #007700">(</span><span style="color: #DD0000">"TestCookie"</span><span style="color: #007700">, </span><span style="color: #0000BB">$value</span><span style="color: #007700">, </span><span style="color: #0000BB">time</span><span style="color: #007700">()+</span><span style="color: #0000BB">3600</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">// Establecer una cookie que se aplique solo a una ruta específica en un dominio específico.<br />// Tenga en cuenta que el dominio utilizado debe coincidir con el dominio del sitio.<br /></span><span style="color: #0000BB">setcookie</span><span style="color: #007700">(</span><span style="color: #DD0000">"TestCookie"</span><span style="color: #007700">, </span><span style="color: #0000BB">$value</span><span style="color: #007700">, </span><span style="color: #0000BB">time</span><span style="color: #007700">()+</span><span style="color: #0000BB">3600</span><span style="color: #007700">, </span><span style="color: #DD0000">"/~rasmus/"</span><span style="color: #007700">, </span><span style="color: #DD0000">"example.com"</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
  <p class="simpara">
   Tenga en cuenta que PHP codificará y decodificará automáticamente
   la parte del valor de la cookie. Esto se puede evitar usando
   <span class="function"><a href="function.setrawcookie.php" class="function">setrawcookie()</a></span>.
  </p>
  <p class="simpara">
   Para ver el contenido de las cookies configuradas en el ejemplo anterior en una
   solicitud posterior:
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Mostrar una cookie<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$_COOKIE</span><span style="color: #007700">[</span><span style="color: #DD0000">"TestCookie"</span><span style="color: #007700">];<br /><br /></span><span style="color: #FF8000">// Otro método para mostrar todas las cookies<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$_COOKIE</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
  <div class="example" id="example-2">
   <p><strong>Ejemplo #2 Ejemplo de borrado de una cookie con <span class="function"><strong>setcookie()</strong></span></strong></p>
   <div class="example-contents"><p>
    Para eliminar una cookie, configure la fecha de expiración en un valor del pasado
    (pero no cero, que está reservado para las cookies de sesión).
   </p></div>
   <div class="example-contents"><p>
    Para eliminar las cookies establecidas en el ejemplo anterior:
   </p></div>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Define la fecha de expiración a una hora antes de la fecha actual<br /></span><span style="color: #0000BB">setcookie</span><span style="color: #007700">(</span><span style="color: #DD0000">"TestCookie"</span><span style="color: #007700">, </span><span style="color: #DD0000">""</span><span style="color: #007700">, </span><span style="color: #0000BB">time</span><span style="color: #007700">() - </span><span style="color: #0000BB">3600</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">setcookie</span><span style="color: #007700">(</span><span style="color: #DD0000">"TestCookie"</span><span style="color: #007700">, </span><span style="color: #DD0000">""</span><span style="color: #007700">, </span><span style="color: #0000BB">time</span><span style="color: #007700">() - </span><span style="color: #0000BB">3600</span><span style="color: #007700">, </span><span style="color: #DD0000">"/~rasmus/"</span><span style="color: #007700">, </span><span style="color: #DD0000">"example.com"</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
  <div class="example" id="example-3">
   <p><strong>Ejemplo #3 <span class="function"><strong>setcookie()</strong></span> y los arrays</strong></p>
   <div class="example-contents"><p>
    Se puede establecer un &quot;array de cookies&quot; usando la notación de array en el
    nombre de la cookie. Esto permite configurar tantas cookies como
    elementos haya en el array, pero cuando el script recibe la cookie,
    todos los valores se colocan en un array con el nombre de la
    cookie:
   </p></div>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Establece las cookies<br /></span><span style="color: #0000BB">setcookie</span><span style="color: #007700">(</span><span style="color: #DD0000">"cookie[three]"</span><span style="color: #007700">, </span><span style="color: #DD0000">"cookiethree"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">setcookie</span><span style="color: #007700">(</span><span style="color: #DD0000">"cookie[two]"</span><span style="color: #007700">, </span><span style="color: #DD0000">"cookietwo"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">setcookie</span><span style="color: #007700">(</span><span style="color: #DD0000">"cookie[one]"</span><span style="color: #007700">, </span><span style="color: #DD0000">"cookieone"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Después del recargado de la página, las mostramos<br /></span><span style="color: #007700">if (isset(</span><span style="color: #0000BB">$_COOKIE</span><span style="color: #007700">[</span><span style="color: #DD0000">'cookie'</span><span style="color: #007700">])) {<br />    foreach (</span><span style="color: #0000BB">$_COOKIE</span><span style="color: #007700">[</span><span style="color: #DD0000">'cookie'</span><span style="color: #007700">] as </span><span style="color: #0000BB">$name </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$value</span><span style="color: #007700">) {<br />        </span><span style="color: #0000BB">$name </span><span style="color: #007700">= </span><span style="color: #0000BB">htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">);<br />        </span><span style="color: #0000BB">$value </span><span style="color: #007700">= </span><span style="color: #0000BB">htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br />        echo </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$name</span><span style="color: #DD0000"> : </span><span style="color: #0000BB">$value</span><span style="color: #DD0000"> &lt;br /&gt;\n"</span><span style="color: #007700">;<br />    }<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>El ejemplo anterior mostrará:</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">three : cookiethree
two : cookietwo
one : cookieone</pre>
</div>
   </div>
  </div>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    El uso de caracteres de separación como <code class="literal">[</code> y
    <code class="literal">]</code> como parte del nombre de la cookie no es respetuoso con la RFC 6265, sección 4, pero se asume que es soportado
    por los agentes de usuario, siguiendo la RFC 6265, sección 5.
   </span>
  </p></blockquote>
 </div>


 <div class="refsect1 notes" id="refsect1-function.setcookie-notes">
  <h3 class="title">Notas</h3>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    El almacenamiento en búfer de salida permite la salida del script antes de
    llamar a esta función. Toda la salida se almacenará en búfer hasta que se vacíe
    (ya sea explícitamente o al final de la ejecución del script). Puede hacer esto
    llamando a <span class="function"><a href="function.ob-start.php" class="function">ob_start()</a></span> y
    <span class="function"><a href="function.ob-end-flush.php" class="function">ob_end_flush()</a></span> en ek script, o activando la directiva
    <code class="literal">output_buffering</code> en su archivo de configuración
    <var class="filename">php.ini</var> o en el archivo de configuración de su servidor.
   </span>
  </p></blockquote>
  <p class="para">
   Errores comunes:
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      Las cookies solo serán accesibles al cargar la próxima página,
      o al recargar la página actual. Para probar si una cookie
      ha sido definida con éxito, verifique la presencia de la cookie en el próximo
      cargado de página antes de que la cookie expire. El tiempo de expiración
      se define utilizando el argumento <code class="parameter">expires_or_options</code>.
      Una forma sencilla de verificar el posicionamiento de la cookie es utilizar
      <code class="literal">print_r($_COOKIE);</code>.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Las cookies deben ser borradas con los mismos argumentos
      que los utilizados durante su creación. Si el argumento
      <code class="parameter">value</code> es una cadena vacía y los otros argumentos son exactamente los mismos que en una llamada <span class="function"><strong>setcookie()</strong></span> previa,
      entonces la cookie será borrada del cliente.
      Internamente, el borrado se realiza posicionando el valor a
      <code class="literal">&#039;deleted&#039;</code> y la fecha de expiración a un año en el pasado.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Dado que la asignación de un valor valiendo <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> a una cookie intentará borrarla,
      no se deben utilizar valores booleanos. En su lugar, utilice <em>0</em> para <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>
      y <em>1</em> para <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Los nombres de las cookies se pueden establecer como nombres de array y estarán disponibles
      para los scripts PHP como arrays, pero el navegador almacena cookies independientes.
      Considere usar <span class="function"><a href="function.json-encode.php" class="function">json_encode()</a></span> para establecer una cookie con varios
      nombres y valores. No se recomienda usar <span class="function"><a href="function.serialize.php" class="function">serialize()</a></span>
      para este propósito, ya que puede generar vulnerabilidades de seguridad.
     </span>
    </li>
   </ul>
  </p>
  <p class="simpara">
   Las llamadas múltiples a la función <span class="function"><strong>setcookie()</strong></span> se realizarán en orden.
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.setcookie-seealso">
  <h3 class="title">Ver también</h3>
  <ul class="simplelist">
   <li><span class="function"><a href="function.header.php" class="function" rel="rdfs-seeAlso">header()</a> - Env&iacute;a un encabezado HTTP bruto</span></li>
   <li><span class="function"><a href="function.setrawcookie.php" class="function" rel="rdfs-seeAlso">setrawcookie()</a> - Env&iacute;a un cookie sin codificar su valor en URL</span></li>
   <li><a href="features.cookies.php" class="link">cookies section</a></li>
   <li><a href="https://datatracker.ietf.org/doc/html/rfc6265" class="link external">&raquo;&nbsp;RFC 6265</a></li>
   <li><a href="https://datatracker.ietf.org/doc/html/rfc2109" class="link external">&raquo;&nbsp;RFC 2109</a></li>
  </ul>
 </div>


</div><?php manual_footer($setup); ?>