页面重新加载时jqmobi被破坏的php会话

页面重新加载时jqmobi被破坏的php会话,php,jquery,jqmobi,Php,Jquery,Jqmobi,我试图在PHP中使用jqmobi,但当我尝试使用PHP会话时,它不起作用。首先,当我使用jquery post时,它将从服务器检索数据,但当我重新加载页面时,会话将被破坏 我在每个文件中都保留了session\u start(),但仍然没有用。因此,如果有人使用过jqmobi和PHP,请分享您的经验。我正在发布我的主index.php文件: <?php session_start(); ?> <!DOCTYPE html> <!--HTML5 doctype--&g

我试图在PHP中使用jqmobi,但当我尝试使用PHP会话时,它不起作用。首先,当我使用jquery post时,它将从服务器检索数据,但当我重新加载页面时,会话将被破坏

我在每个文件中都保留了
session\u start()
,但仍然没有用。因此,如果有人使用过jqmobi和PHP,请分享您的经验。我正在发布我的主index.php文件:

<?php
session_start();
?>
<!DOCTYPE html>
<!--HTML5 doctype-->
<html>
<head>
    <title>UI Starter</title>
        <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta name="apple-mobile-web-app-capable" content="yes" />
 <META HTTP-EQUIV="Pragma" CONTENT="no-cache" > 
 <link rel="stylesheet" type="text/css" href="http://cdn.app-framework-software.intel.com/2.0/af.ui.base.css"/>
    <link rel="stylesheet" type="text/css" href="http://cdn.app-framework-software.intel.com/2.0/icons.css" />
    <link rel="stylesheet" type="text/css" href="http://cdn.app-framework-software.intel.com/2.0/af.ui.css" />
 <!-- http://code.jquery.com/jquery-1.10.1.min.js -->  
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
 <script src="./js/lib/jquery.validate.min.js"></script>
  <script src="./js/jq.appframework.js"></script>
 <script src="http://cdn.app-framework-software.intel.com/2.0/appframework.ui.min.js">           </script>
<script src="./fcharts/FusionCharts/FusionCharts.js"></script>  
    <!-- include touch on desktop browsers only -->
       <script>
          // $.ui.showBackButton = false;
        if (!((window.DocumentTouch && document instanceof DocumentTouch) || 'ontouchstart' in window)) {
            var script = document.createElement("script");
            script.src = "plugins/af.desktopBrowsers.js";
            var tag = $("head").append(script);
            //$.os.android = true; //let's make it run like an android device
            //$.os.desktop = true;
        }
    </script>


</head>

<body>
    <div id="afui"> <!-- this is the main container div.  This way, you can have only part of your app use UI -->
        <!-- this is the header div at the top -->
        <div id="header">
            <a  onclick="$.ui.toggleSideMenu()" id="mainbuon" class="menuButton" style="float:right"></a>
        </div>
        <div id="content">
            <!-- here is where you can add your panels -->

             <div title='Management'  id="elogin" class="panel" selected="true"
             data-load="notloadedPanel" data-unload="notunloadedPanel">
             <h2 >login</h2>

              <form id="sample"  style="position:absolute;width:250px;height:350px; left:50%; top:50%;margin-left:-130px;margin-top:-50px;">
            <input type="email" id="email" name="email" value="" placeholder="username"style="text-align:center;" >
            <div id="error"></div>
                <input type="password"  id="password" name="password" value="" placeholder="password" style="text-align:center;" >
                <div id="error1"></div>

  <a class="button"   onclick="validate()"  >Login</a>

  </form>
    <footer>
     </footer>
            </div>


            <div title='List' data-defer="evelist.php" id="elist" class="panel"  data-header="testheader"
            data-tab="navbar_list"  data-load="loadedPanel" data-unload="unloadedPanel">

            </div>

             <div id="setting" class="panel"  title='Management' data-defer="Setting.php"  data-load="settingloadedPanel" 
            data-unload="settingunloadedPanel" data-tab="navbar_list" >
            </div>


             <div id="missreport" class="panel" data-defer="MissReports.php" title='Management'  data-load="reportloadedPanel" 
            data-unload="reportunloadedPanel" data-tab="navbar_list" >
            </div>

               <header id="testheader">
                <a  onclick="$.ui.toggleSideMenu()" id="mainbuon" class="menuButton" style="float:left"></a>
           <!-- <a id="backButton" onclick="$.ui.goBack()" class='button'>Go Back</a> -->
                <h1>Events List</h1>

        </header>    
        </div> <!-- content ends here #smessage -->
        <!-- bottom navbar. Add additional tabs here -->
        <div id="navbar">
            <div class="horzRule"></div>
            <a href="#Dashboard" id='navbar_dash' class='icon home'>Dashboard</a>
             <a href="#elist" id='navbar_list' class='icon home'>list</a>
              <a href="#aevent" id='navbar_add' class='icon home'>Add ent</a>
               <a href="#smessage" id='navbar_sent' class='icon home'>Sent Msg</a>
                <a href="#sendmessage" id='navbar_send' class='icon home'>Send Msg</a>

        </div>
        <!-- this is the default left side nav menu.  If you do not want any, do not include these -->


    </div>

</body>
   <script type="text/javascript">


        var webRoot = "./";
        $.ui.autoLaunch = false; //By default, it is set to true and you're app will run right away.  We set it to false to show a splashscreen

             $(document).ready(function(){
              // 
               $.ui.launch();

        });
         $.ui.backButtonText="Back"
         $(document).bind("swipeLeft",function(){
     $.ui.toggleSideMenu(false);
  });
$(document).bind("swipeRight",function(){
     $.ui.toggleSideMenu(true);

});
 //$.ui.useAjaxCacheBuster=true;
        function logout(){
      var rt= "<?php echo session_destroy(); ?>";
    $.ui.loadContent("#elogin",false,false,"slide");

        } /***login form panel start here****/
         function notloadedPanel(){
    $.ui.disableSideMenu();
        $('#mainbuon').hide();
        $.ui.clearHistory();
        }
        function notunloadedPanel(){
         $.ui.enableSideMenu();
         $('#mainbuon').show();

        }
        function validate(){
var validator = $("#sample").validate({
         rules: {
             email: {
                 required: true,
            }
             , password: {
                 required: true,
            }
         }, 
         errorPlacement: function(error, element) {
         if (element.attr("name") == "email"  ) {
 // error.insertAfter("#error");
  error.appendTo('#error');
} else {
  //error.insertAfter(element);
   error.appendTo('#error1');
} },submitHandler: function() { 


         $.post(webRoot + 'parameter.php', {
                           email:$('#email').val(),password:$('#password').val(),Login:'Login'
                        }, function (data) {

           if($.trim(data)=='success'){

             $.ui.loadContent("#elist",false,false,"slide");

            }else{
            alert("wrong username and password");
            }   
                        });

         }

     });

     if(validator.form()){ 

 $('form#sample').submit(); 
      }

         }

          /***login form panel ends here****/
       document.addEventListener("DOMContentLoaded", init, false);
        $.ui.ready(function () {
            //This function will get executed when $.ui.launch has completed
             // $.ui.showBackButton = false;

        });

        /* This code is used for native apps */
        var onDeviceReady = function () {
                AppMobi.device.setRotateOrientation("portrait");
                AppMobi.device.setAutoRotate(false);
                webRoot = AppMobi.webRoot + "/";

                //hide splash screen
                AppMobi.device.hideSplashScreen();
                $.ui.blockPageScroll(); 
        };
        document.addEventListener("appMobi.device.ready", onDeviceReady, false);
    </script>

用户界面启动程序
//$.ui.showBackButton=false;
如果(!((window.DocumentTouch和DocumentTouch的文档实例)| |“ontouchstart”在窗口中)){
var script=document.createElement(“脚本”);
script.src=“plugins/af.desktopBrowsers.js”;
var tag=$(“head”).append(脚本);
//$.os.android=true;//让我们让它像android设备一样运行
//$.os.desktop=true;
}
var webRoot=“./”;
$.ui.autoLaunch=false//默认情况下,它设置为true,您的应用程序将立即运行。我们将其设置为false以显示飞溅屏幕
$(文档).ready(函数(){
// 
$.ui.launch();
});
$.ui.backButtonText=“返回”
$(document).bind(“swipeLeft”,function(){
$.ui.toggleSideMenu(false);
});
$(document).bind(“swipeRight”,function(){
$.ui.toggleSideMenu(真);
});
//$.ui.useAjaxCacheBuster=true;
函数注销(){
var rt=“”;
$.ui.loadContent(“#elogin”,false,false,slide”);
}/***登录表单面板从这里开始****/
函数notloadedPanel(){
$.ui.disableSideMenu();
$('#mainbuon').hide();
$.ui.clearHistory();
}
函数notunloadedPanel(){
$.ui.enableSideMenu();
$('#mainbuon').show();
}
函数验证(){
var验证程序=$(“#示例”).validate({
规则:{
电邮:{
要求:正确,
}
,密码:{
要求:正确,
}
}, 
errorPlacement:函数(错误,元素){
if(element.attr(“name”)=“email”){
//error.insertAfter(“#error”);
错误。附加到(“#错误”);
}否则{
//错误。插入符(元素);
错误。附加到(“#error1”);
}},submitHandler:函数(){
$.post(webRoot+'parameter.php'{
电子邮件:$('#email').val(),密码:$('#password').val(),登录名:'Login'
},函数(数据){
如果($.trim(数据)=“成功”){
$.ui.loadContent(“#elist”,false,false,slide”);
}否则{
警告(“错误的用户名和密码”);
}   
});
}
});
if(validator.form()){
$('form#sample')。提交();
}
}
/***登录表单面板到此结束****/
document.addEventListener(“DOMContentLoaded”,init,false);
$.ui.ready(函数(){
//此函数将在$.ui.launch完成后执行
//$.ui.showBackButton=false;
});
/*此代码用于本机应用程序*/
var ondevicerady=函数(){
AppMobi.device.setRotateOrientation(“肖像”);
AppMobi.device.setAutoRotate(假);
webRoot=AppMobi.webRoot+“/”;
//隐藏启动屏幕
AppMobi.device.hideSplashScreen();
$.ui.blockPageScroll();
};
document.addEventListener(“appMobi.device.ready”,ondevicerady,false);

代码应该足够了,但是您需要确定是否在其他地方调用了会话\u destroy或unset($\u session)

<?php
session_start();
$_SESSION['key'] = "value";
?>


你说的“不工作”是什么意思?您是否收到任何错误或警告?会话是否适用于普通PHP页面?我没有收到任何错误,但当我重新加载页面会话时,会话将被销毁,当我尝试显示会话变量时,会话将为空,以确保在
会话\u开始之前没有浏览器输出,这足以防止Cookie/Header到达浏览器。当我第一次加载页面时,我正在进行jquery post和echo会话。但当我重新加载时,它是不检索任何数据的,会话是无效的zero@Ghouse:暂时忘记jQuery,确保会话使用的是普通页面。然后某个地方出现问题,即使通过F5刷新页面,即使浏览器设置为隐私模式,您也应该会得到一些信息。@我尝试了普通页面,但同一会话不起作用。您能在php.ini中检查会话cookie吗?