页面重新加载时jqmobi被破坏的php会话
我试图在PHP中使用jqmobi,但当我尝试使用PHP会话时,它不起作用。首先,当我使用jquery post时,它将从服务器检索数据,但当我重新加载页面时,会话将被破坏 我在每个文件中都保留了页面重新加载时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
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吗?