这不是关于登录表格或类似的东西。应用程序已运行安全会话。它是关于更新特定数据的内部任务。 作为应用程序的一部分,我使用php include方法创建一个包含另一个php文件的主文件。包含的文件表示包含从许多可能的表单中选择的表单的框架。使用侧边菜单中的锚标记执行选择,使用来自MySQL数据库的js和php动态创建。
//path for mainfile.php: /ThemeDir/SecuredDir/workDir/mainfile.php
mainfile.php
….
<nav class=”side-menu”>
<ul>
<li class=”sub-menu”> <a id=”dir-path” href=”#”></a>
<ul>
<li class=”anchor”>
<a href=”#form-name”>
<span id=”form-label”>form-label</span></a>
</li></ul></li></ul></nav>
....
<div id="uso"><?php include("../formsDir/mainframe.php"); ?></div>
<div id="hddForm" style="display: none">
<form id='obrForm' action="" metod = "post" role="form" name="obrForm">
<input type="text" id="incPath" name="incPath" value="" />
</form>
</div>
….
Mainfile.js
$(document).ready(function() {
….
$(". anchor > a").click(function(e){
e.preventDefault();
var fname = $(this).attr('href').replace(/^#+/, '');
var dir = $(". sub-menu a").attr("id");
var incPath = dir + "/" + fname + ".php"; //path to form-name.php
document.getElementById("incPath").value = incPath; // parse data
submitIfFormComplete()
function submitIfFormComplete(){ // submiting a form ‘obrForm’
var tag = document.forms[0].getAttribute("id");
if (document.getElementById('incPath').value !== ""){
document.getElementById(tag).submit();
alert('submited');
}else{alert('shit submited');}
}
});
….
});
//path for mainframe.php: /ThemeDir/SecuredDir/formsDir/mainFrame.php
mainframe.php
<meta charset="utf-8">
….
<div id="inc-div">
<?php
If (isset($_GET["incPath"])){
$incPath = filter_var($_REQUEST["incPath"], FILTER_SANITIZE_FULL_SPECIAL_CHARS);
include $incPath; //same result w or w/o echo
//path: /ThemeDir/SecuredDir/formsDir/sub-formsDir/form-name.php
}else{
echo "SHIT POST";
}
?>
</div>
….
到目前为止一切顺利。到目前为止,它可以正常工作。调用表单时出现问题,首先看起来应该如此,但是对于一秒钟的分裂消失,以便包含mainframe.php的mainfile.php返回其起始条件。很明显,最后一个过程涉及刷新文件,并且因为大多数主要是动态创建的过程,所以一切都返回到初始状态。我检查了与该部分应用程序相关的所有程序,没有任何影响这个问题。在所有步骤中,我都有一个拦截错误的过程,但没有注册错误。我无法在网络论坛上找到类似或相同的问题。我希望这种行为有一个解决方案,所以任何建议都会对我有所帮助。