我必须编写一个测验应用程序,其中包含将所选答案发送到“results.php”的不同页面,然后查询数据库到相关表以将答案与“answerkey”表进行比较。
我想有选择地从数据库中查询不同的表格,具体取决于发布数据来自哪个页面。
说如果数据来自'functions.php',我会查询'功能'表。
这是如何实现的?
我必须编写一个测验应用程序,其中包含将所选答案发送到“results.php”的不同页面,然后查询数据库到相关表以将答案与“answerkey”表进行比较。
我想有选择地从数据库中查询不同的表格,具体取决于发布数据来自哪个页面。
说如果数据来自'functions.php',我会查询'功能'表。
这是如何实现的?
我想选择性地从依赖于数据库查询不同的表...
只需在包含任何标志,你会用它来确定这个条件的形式隐藏字段。事情就这么简单:
<input type="hidden" name="sourcePage" value="Functions" />
然后在服务器端的代码,你可以检索该值:
$_POST['sourcePage']
基本上,信息被发送到服务器已经是一种形式,所以,当你希望包含更多信息,只需将其包含在该表单中即可。
全局变量$_SERVER['HTTP_REFERER']
应包含该请求是通过将其从用户隐藏第二个窗体输入字段提交
不要使用$ _SERVER ['HTTP_REFERER']非常不可靠,并可能导致问题 – virepo
我检查了文档。 David提供的解决方案满足了我的需求。 – Br34th7aking
'HTTP_REFERER' 将用户代理引用到当前页面的页面地址(如果有)。这由用户代理设置。并非所有的用户代理都会设置它,有些提供了将HTTP_REFERER修改为功能的功能。 **总之,它不能真正被信任**。 请参阅http://php.net/manual/en/reserved.variables.server.php – user6838959
您可以轻松地做到这一点的URL。
例如:
<input type="hidden" name="the_page_requester" value="name_of_page" />
而且在你的PHP代码,你可以做到以下几点:
$pageRequester = $_POST['the_page_requester']
我认为这个解决方案是更好的:
$table = pathinfo($_SERVER['SCRIPT_NAME'])['filename'];
现在你可以使用$table
来组装你的sql。
这将返回*当前正在执行的*脚本的路径,而不是前一页。 – David
试试这个代码,如果你想要像你提到的文件名'echo basename($ _ SERVER ['PHP_SELF'],“.php”);' – user6838959