我正在使用以下代码来读取网址中的内容:
public static String getPageContent(URL url) throws IOException {
InputStream in = url.openStream();
StringBuffer sb = new StringBuffer();
byte[] buffer = new byte[256];
while (true) {
int byteRead = in.read(buffer);
if (byteRead == -1) {
break;
}
for (int i = 0; i < byteRead; i++) {
sb.append((char) buffer[i]);
}
}
return sb.toString();
}
然后我称之为:
public static void main(String[] as) {
try {
URL u = new URL("http", "localhost", "/sessiontest.php");
System.out.println(getPageContent(u));
System.err.println(getPageContent(u));
} catch (Exception e) {
e.printStackTrace();
}
}
我的sessiontest.php包含:
<?php
session_start();
if (isset($_SESSION['asd'])) {
echo "set";
unset($_SESSION['asd']);
} else {
echo "not set";
$_SESSION["asd"]="asdasdajklhlòjkl";
}
?>
此代码在设置set
时打印$_SESSION['asd']
,如果未设置则打印not set
多次调用我的URL时,第一次输出“未设置”,然后第二次“设置”,第三次“未设置”,等等。
问题是,我的代码我正在调用两次相同的页面,我总是收到“未设置”作为sessiontest.php的输出,而如果我从任何浏览器访问我的页面两次,我看到“未设置“然后”设置“。
似乎php处理我所有的连接作为不同的会话,为什么?
答案 0 :(得分:0)
打印session_id()的值,以查看生成的ID是否在所有请求中相同。一个会话应该是相同的。出于某种原因,如果它不相同,请检查存储会话的目录的权限。您也可以尝试使用session_id($ id);
手动设置值