使用 php 打开图片文件是在新 session 中完成的,如何防止这种行为?
我在所有网页中都添加了 JavaScript 来获取屏幕分辨率。这是 JavaScript 代码:
<script language="JavaScript">
document.getElementById("mypictureid").src="http://www.mywebsite.com/getresolutionpic.php?w="+screen.width+"&h="+screen.height;
</script>
页面的 html 包括:
<img id="mypictureid" src="http://mywebsite.com/otherimage.gif"
以下 php 代码将在每个页面加载时执行,以将用户数据存储在 $_SESSION 中。
$some_name = session_name("generalvisit");
session_start();
$_SESSION['entertime']=new DateTime();
为了跟踪用户,mysql 数据库创建一个用户 ID 并将其存储在 $_SESSION['userid'] 中
if(!is_numeric($_SESSION['userid']) $_SESSION['userid']=getNewUserID();
现在,当 JavaScript 触发 getresolutionpic.php
时,将该用户的屏幕分辨率存储在同一用户的 $_SESSION
变量中。在 getresolutionpic.php
中,我们有:
$some_name = session_name("generalvisit");
session_start();
if(!is_numeric($_SESSION['userid'])
{
$_SESSION['userid']=getNewUserID();
$_SESSION['entertime']=new DateTime();
}
$_SESSION['width']=$_GET['w'];
$_SESSION['height']=$_GET['h'];
问题是,当调用 getresolutionpic.php 时,$_SESSION['userid']
为空,并且将创建一个新的 userid,而该用户实际上并不是新用户。
你知道哪里出了问题吗?
最佳答案
试试这个:
<script language="JavaScript">
window.onload = function() {
document.getElementById("mypictureid").src = "http://www.mywebsite.com/getresolutionpic.php?w=" + screen.width + "&h="+screen.height;
</script>
在加载主页面之前,不会尝试加载图像,此时应设置 session cookie。
关于javascript - 使用 PHP 打开图片文件时防止新 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24584054/