试图检查是否存在会话不能按预期工作

时间:2013-12-09 19:30:45

标签: php session

我正在尝试检查刷新页面时是否存在会话。如果存在会话,则将隐藏具有表单的div。在其他方面,显示了div。

登录后,如果您是第一次刷新页面,则会隐藏“登录”div,但如果再次刷新,则会显示“登录”div。我怎么解决这个问题?谢谢你的帮助

UPTADED HTML

   <div id='login'>
            <a href="#" class="closelogin"><img src="images/cancel.png" class="btn_cerrarlogin" title="Cerrar" alt="Close" /></a>
            <label name='registro' for="txtUser">Usuario</label><br>
            <input type="text" name="txtUser" id="txtUser" class="txtfield"><br>
            <label name='registro' for="txtPass">Password</label><br>
            <input type="password" name="txtPass" id="txtPass" class="txtfield"><br>
            <span id="errors"></span>
            <input type="button" name="butConectar" id="butConectar" class="butConectar" value="Conectar">       
    </div>
    <div id="opciones">
            <a href="#" class="registroacceso" id="registro" >Reg&iacute;strate ahora!</a>
            <a href="#" class="registroacceso" id="iniciarSesion" onclick="iniciarSesion()">Iniciar sesi&oacute;n</a>
    </div>

JAVASCRIPT和PHP

cabecera.php

 <? @header('Content-Type:text/html; charset=utf-8');
 session_start();
 define('MAX_IDLE_TIME', 3);
 ?>

index.php

<?
require('cabecera.php');
?>

$(document).ready(function(){

           iniciarSesion();

});

function iniciarSesion(){
         $.ajax({type: "POST",
                url: "compruebaIniciaSesion.php",
                success:function(data) {

                 if(data=='ok'){  
                    $("#login").hide();
                    $('#iniciarSesion').replaceWith('<a href="#" class="registroacceso" id="cerrarSesion" onclick="cerrarSesion()">Cerrar sesi&oacute;n</a>');
                 }
                 else{
                    $('body').append('<div id="mascara"></div>');
                    $('#mascara').fadeIn(300);
                    $("#login").delay(100).animate({
                        top: '120px',
                        podition: 'absolute'
                    }, 300).effect("bounce", { distance: 90, times: 2 }, 600).effect("bounce", { distance: 10, times: 3 }, 400);
                    var snd = new Audio("sounds/bounce.mp3");
                    snd.play(); 
                 }
                                        }
            })


}

function cerrarSesion() {

                    <?session_destroy();?>
                    $('#cerrarSesion').replaceWith('<a href="#iniciar" class="registroacceso" id="iniciarSesion" onclick="iniciarSesion()">Iniciar sesi&oacute;n</a>');   

}

compruebaIniciaSesion.php

<?php

require('cabecera.php');
if (isset($_SESSION['idUsuario'])) {
        echo 'ok';
}

?>

2 个答案:

答案 0 :(得分:0)

为此你需要AJAX ...

但是,您可以像这样改进内联php代码:

<? if(....): ?>
    HTMTL or javascript code here
<? else: ?>
    HTMTL or javascript code here
<? endif ?>

答案 1 :(得分:0)

你在iniciarSesion()中将'position'拼写为 podition ,在纠正后尝试?