2016-09-21 29 views
0

我必须编写一个测验应用程序,其中包含将所选答案发送到“results.php”的不同页面,然后查询数据库到相关表以将答案与“answerkey”表进行比较。

我想有选择地从数据库中查询不同的表格,具体取决于发布数据来自哪个页面。

说如果数据来自'functions.php',我会查询'功能'表。

这是如何实现的?

+0

试试这个代码,如果你想要像你提到的文件名'echo basename($ _ SERVER ['PHP_SELF'],“.php”);' – user6838959

回答

2

我想选择性地从依赖于数据库查询不同的表...

只需在包含任何标志,你会用它来确定这个条件的形式隐藏字段。事情就这么简单:

<input type="hidden" name="sourcePage" value="Functions" /> 

然后在服务器端的代码,你可以检索该值:

$_POST['sourcePage'] 

基本上,信息被发送到服务器已经是一种形式,所以,当你希望包含更多信息,只需将其包含在该表单中即可。

0

全局变量$_SERVER['HTTP_REFERER']应包含该请求是通过将其从用户隐藏第二个窗体输入字段提交

+2

不要使用$ _SERVER ['HTTP_REFERER']非常不可靠,并可能导致问题 – virepo

+0

我检查了文档。 David提供的解决方案满足了我的需求。 – Br34th7aking

+0

'HTTP_REFERER' 将用户代理引用到当前页面的页面地址(如果有)。这由用户代理设置。并非所有的用户代理都会设置它,有些提供了将HTTP_REFERER修改为功能的功能。 **总之,它不能真正被信任**。 请参阅http://php.net/manual/en/reserved.variables.server.php – user6838959

1

您可以轻松地做到这一点的URL。

例如:

<input type="hidden" name="the_page_requester" value="name_of_page" /> 

而且在你的PHP代码,你可以做到以下几点:

$pageRequester = $_POST['the_page_requester'] 
-1

我认为这个解决方案是更好的:

$table = pathinfo($_SERVER['SCRIPT_NAME'])['filename']; 

现在你可以使用$table来组装你的sql。

+0

这将返回*当前正在执行的*脚本的路径,而不是前一页。 – David

相关问题