我实际上发现了我的问题,但我真的想知道为什么这是一个问题。我有两个页面form1.php我在该页面上开始了一个会话并点击提交。然后我有一个session2.php的链接,它启动了那个会话,并能够从form1.php中提取信息。我只是在学习会话,这是一个非常简单的练习,可以了解会话可以做什么。
这就是问题所在,我脑子里有一个样式表链接,它有一个空白的href很好,它是href =“#”,当那里有session2.php不能从form1.php启动会话并抓住表格中的信息。没有样式标签中的href =“#”它工作正常,如果它是假的样式标签href =“something.css”,它也可以正常工作但是href =“”也不起作用。
这是为什么?我只有那些,因为它是我为工作流程制作的模板,也许我不能再在我的模板中包含css链接以防止将来出现问题。
如果我没有解释过自己,您可以看到此网站正常工作here。
form1.php
<?php
session_start();
$_SESSION['name'] = $username;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title></title>
<!--//CSS STYLESHEETS//-->
<link rel="stylesheet" href="#" type="text/css">
</head>
<body>
<a href="sessions2.php">Go to session 2</a>
<!--form stuff is in here-->
</body
session2.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title></title>
</head>
<body>
<?php
session_start();
$username = $_SESSION['name'];
echo $username;
?>
</body>
</html>
答案 0 :(得分:1)
要按照您的意愿工作,您需要先启动会话。听起来很简单,因为它是。当你说session_start时,php会首先查找一个被接受的会话cookie来处理内容。
来自http://php.net/manual/en/function.session-start.php
注意:要使用基于cookie的会话,必须先调用session_start(),然后才能向浏览器输出任何内容。
答案 1 :(得分:1)
您的第二页需要如下所示:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title></title>
</head>
<body>
<?php
$username = $_SESSION['name'];
echo $username;
?>
</body>
</html>
请注意,在将任何内容打印到屏幕之前,必须显示session_start()
。
根据session_start
PHP manual page上的说明:
注意:要使用基于cookie的会话,必须在向浏览器输出任何内容之前调用session_start()。
答案 2 :(得分:0)
您是否尝试在发送标题之前将内容输出到页面?如果在调用session_start()之后放置样式表会发生什么?