<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.session.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.session-destroy.php',
    1 => 'session_destroy',
    2 => 'Destruye una sesi&oacute;n',
  ),
  'up' => 
  array (
    0 => 'ref.session.php',
    1 => 'Funciones de sesi&oacute;n',
  ),
  'prev' => 
  array (
    0 => 'function.session-decode.php',
    1 => 'session_decode',
  ),
  'next' => 
  array (
    0 => 'function.session-encode.php',
    1 => 'session_encode',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/session/functions/session-destroy.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.session-destroy" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">session_destroy</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">session_destroy</span> &mdash; <span class="dc-title">Destruye una sesión</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.session-destroy-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>session_destroy</strong></span>(): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="simpara">
   <span class="function"><strong>session_destroy()</strong></span> destruye todos los datos
   asociados a la sesión actual. Esta función no destruye
   las variables globales asociadas a la sesión, de igual manera, no
   destruye la cookie de sesión. Para acceder nuevamente a las variables
   de sesión, la función <span class="function"><a href="function.session-start.php" class="function">session_start()</a></span> debe ser
   llamada nuevamente.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    No es necesario llamar a <span class="function"><strong>session_destroy()</strong></span>
    desde el programa generalmente.
    Limpiar el array $_SESSION en lugar de destruir los datos de sesión.
   </span>
  </p></blockquote>
  <p class="para">
   Para destruir completamente una sesión,
   el identificador de la sesión debe ser eliminado también. Si una cookie es utilizada
   para propagar el identificador de sesión (comportamiento por omisión), entonces la cookie
   de sesión debe ser eliminada. La función <span class="function"><a href="function.setcookie.php" class="function">setcookie()</a></span>
   puede ser utilizada para esto.
  </p>
  <p class="para">
   Cuando <a href="session.configuration.php#ini.session.use-strict-mode" class="link">session.use_strict_mode</a>
   está activado. No es necesario eliminar las cookies de ID de sesión
   obsoletas ya que el módulo de sesión no acepta las cookies de ID de sesiones
   cuando no hay datos asociados con estos ID de sesiones y definirá
   una nueva cookie de ID de sesión.
   Activar <a href="session.configuration.php#ini.session.use-strict-mode" class="link">session.use_strict_mode</a>
   es recomendado para todos los sitios.
  </p>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="para">
    La eliminación inmediata de una sesión puede causar resultados inesperados.
    Cuando hay peticiones simultáneas, otras conexiones pueden
    perder repentinamente datos de sesión. Por ejemplo peticiones
    desde JavaScript y/o peticiones desde enlaces URL.
   </p>
   <p class="para">
    Aunque el módulo de sesión actual no acepta una cookie de ID de sesión
    vacía, la eliminación inmediata de sesión puede provocar una cookie
    de ID de sesión vacía debido a una condición de concurrencia lado-cliente
    (navegador). Esto provocará la creación de muchos ID de sesión
    innecesarios por el cliente.
   </p>
   <p class="para">
    Para evitar esto, se debe definir un timestamp en $_SESSION y
    rechazar el acceso a todas las fechas posteriores. O asegurarse de que su
    aplicación no tenga peticiones simultáneas. Esto también se aplica a
    <span class="function"><a href="function.session-regenerate-id.php" class="function">session_regenerate_id()</a></span>.
   </p>
  </div>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.session-destroy-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">Esta función no contiene ningún parámetro.</p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.session-destroy-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   Esta función retorna <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> en caso de éxito o <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> si ocurre un error.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.session-destroy-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Destrucción de una sesión con <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var></strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Inicialización de la sesión.<br />// Si se utiliza otro nombre<br />// session_name("otroNombre")<br /></span><span style="color: #0000BB">session_start</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">// Destruye todas las variables de sesión<br /></span><span style="color: #0000BB">$_SESSION </span><span style="color: #007700">= array();<br /><br /></span><span style="color: #FF8000">// Si se quiere destruir completamente la sesión, también se debe eliminar<br />// la cookie de sesión.<br />// Nota: esto destruirá la sesión y no solo los datos de sesión !<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">ini_get</span><span style="color: #007700">(</span><span style="color: #DD0000">"session.use_cookies"</span><span style="color: #007700">)) {<br />    </span><span style="color: #0000BB">$params </span><span style="color: #007700">= </span><span style="color: #0000BB">session_get_cookie_params</span><span style="color: #007700">();<br />    </span><span style="color: #0000BB">setcookie</span><span style="color: #007700">(</span><span style="color: #0000BB">session_name</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">42000</span><span style="color: #007700">,<br />        </span><span style="color: #0000BB">$params</span><span style="color: #007700">[</span><span style="color: #DD0000">"path"</span><span style="color: #007700">], </span><span style="color: #0000BB">$params</span><span style="color: #007700">[</span><span style="color: #DD0000">"domain"</span><span style="color: #007700">],<br />        </span><span style="color: #0000BB">$params</span><span style="color: #007700">[</span><span style="color: #DD0000">"secure"</span><span style="color: #007700">], </span><span style="color: #0000BB">$params</span><span style="color: #007700">[</span><span style="color: #DD0000">"httponly"</span><span style="color: #007700">]<br />    );<br />}<br /><br /></span><span style="color: #FF8000">// Finalmente, se destruye la sesión.<br /></span><span style="color: #0000BB">session_destroy</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.session-destroy-seealso">
  <h3 class="title">Ver también</h3>
  <p class="para">
   <ul class="simplelist">
    <li><a href="session.configuration.php#ini.session.use-strict-mode" class="link">session.use_strict_mode</a></li>
    <li><span class="function"><a href="function.session-reset.php" class="function" rel="rdfs-seeAlso">session_reset()</a> - Restablece el array de sesi&oacute;n con los valores originales</span></li>
    <li><span class="function"><a href="function.session-regenerate-id.php" class="function" rel="rdfs-seeAlso">session_regenerate_id()</a> - Reemplaza el identificador de sesi&oacute;n actual por uno nuevo</span></li>
    <li><span class="function"><a href="function.unset.php" class="function" rel="rdfs-seeAlso">unset()</a> - unset destruye una variable</span></li>
    <li><span class="function"><a href="function.setcookie.php" class="function" rel="rdfs-seeAlso">setcookie()</a> - Env&iacute;a una cookie</span></li>
   </ul>
  </p>
 </div>


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