简单的PHP会话错误

时间:2010-01-15 17:59:31

标签: php css session

我实际上发现了我的问题,但我真的想知道为什么这是一个问题。我有两个页面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>

3 个答案:

答案 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()之后放置样式表会发生什么?