2013-12-09 16 views
0

我試圖檢查頁面刷新時是否存在會話。如果會話存在,則表單中的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'; 
} 

?> 
+0

您需要研究客戶端和服務器端腳本之間的區別,您不能以這種方式在Javascript函數中運行PHP –

+0

然後,我應該檢查是否存在使用Ajax的另一個php中的會話嗎? – user3084154

+0

我已更新我的代碼。請看 – user3084154

回答

0

的,你需要AJAX ...

但是

,可以提高內嵌的PHP代碼:

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

我已更新我的代碼,但它無法按預期工作 – user3084154

0

你拼寫爲 '位置' podition iniciarSesion(),嘗試糾正後?