Hay un formulario en mi sitio que se usa para invitar amigos. Es un campo de texto simple y un botón de enviar. Si hay un error, vuelvo a dirigirme a esta página y visualizo un mensaje de error si se trata de una variable de sesión establecida.Problema al desarmar una variable de sesión
if (isset($_SESSION['invite_error'])) {
echo $_SESSION['invite_error'];
unset($_SESSION['invite_error']);
}
Sin embargo, si navego fuera de esta página y vuelvo, el mensaje de error todavía se está mostrando. Si me alejo y vuelvo una vez más, se hará. Es lo mismo cuando actualizo esa página ... 1 actualización no se librará de ella, pero 2 lo hará. No puedo destruir toda la sesión, solo quiero desarmar esta variable. La versión de PHP es 5.2.5 compilación 6, el registro global está desactivado, estoy llamando a session_start() en la parte superior de esta página, también he intentado usar un encabezado sin caché.
Editar: Agregado el código completo.
<?php
ob_start();
session_start();
$user_id = $_SESSION['user_id'];
$user_name = $_SESSION['user_name'];
if ($user_id==null) header("Location: /login.php");
if (isset($_SESSION['invite_errors'])) {
$error = $_SESSION['invite_errors'];
unset($_SESSION['invite_errors']);
}
require_once("ui/header.php");
?>
<div id="invite" class="content">
<?php if($error) { ?>
<div class="errors round">
<?php echo $error ?>
</div>
<?php } ?>
<h3>Invite Your Friends</h3>
<div class="invite-form">
<form method="post" action="controllers/invite.php">
<div class="row">
<textarea class="txt-area" name="emails" id="emails" rows="5"></textarea>
<div class="tip">Separate multiple email addresses with ,</div>
</div>
<div class="row-submit">
<input type="submit" name="submit" id="submit" class="submit-btn" value="Submit" />
</div>
</form>
</div>
</div>
<?php
require_once("ui/footer.php");
?>
unset ($ _ SESSION ['invite_error']; => unset right) no está allí. Supongo que es un problema de copiar y pegar. – Macarse
¿Está utilizando AJAX en cualquier lugar de las solicitudes? –
¿Podría estar el error en otra variable, que se está configurando antes de desarmar la var $ _SESSION? – alex