通过$ _SERVER [' REQUEST_URI']

时间:2017-08-25 08:50:21

标签: php

我遇到一个奇怪的问题,我将访客或会员的最后一页保存到数据库中。

出于某种原因,它将ckeditor.js等文件保存到数据库而不是主页URL。我不确定为什么,当我在页面上回显$_SERVER['REQUEST_URI']时,它会显示正确的页面名称。但在数据库中,它说的与我上面提到的类似。喜欢它将该文件作为页面加载?我不知道......

我已经对我的帐户成员资格进行了测试,以确保我的用户名也保存在数据库中,并且有人没有浏览到ckeditor.js,而我是对的,它仍然无法正确保存数据库。

我实际上只是测试它来保存所有条目,它给了我三个条目。 页面名称,然后是jquery.js文件,ckeditor.js文件。我不知道为什么。

$select_variable = $_SERVER['REQUEST_URI'];
$stmt = $mysqli->prepare("INSERT INTO table(last_page) VALUES (?)");
$stmt->bind_param('s', $select_variable);
$stmt->execute();
$stmt->close();

有人有什么建议吗?

2 个答案:

答案 0 :(得分:1)

据推测,您有一个HTML文档(在主页网址上),其中包含<script src="jquery.js"></script><script src="ckeditor.js"></script>

所以:

  1. 浏览器请求主页
  2. 服务器将主页URL放入数据库并将主页发送到浏览器
  3. 浏览器解析HTML并发现它需要加载脚本
  4. 浏览器请求jquery.js
  5. 服务器将jquery.js URL放入数据库并将JS发送到浏览器
  6. 浏览器请求ckeditor.js
  7. 服务器将ckeditor.js URL放入数据库并将JS发送到浏览器
  8. 要么在请求JS文件时停止PHP运行(即静态地提供它们),或者在JS文件中添加测试以跳过DB内容。

答案 1 :(得分:-1)

您应该使用$_SERVER['HTTP_REFERER']来确定用户的最后一页。

REQUEST_URI用于当前页面的URI。希望,它有所帮助。