会话变量未存储

时间:2012-11-06 15:58:16

标签: php sql

  

可能重复:
  “Warning: Headers already sent” in PHP

为什么这不起作用?我希望看到在test.php中显示的first.php文本框中输入的内容。

    <html>
<body>
<form action="test.php">
Test: <input type="text" name="test" />
<br> <input type="submit" name="submit" />
    <?php
    session_start();
    $_SESSION['test'] = $_POST['test'];
    ?>

</body>
</html>

这是test.php

    <?php
    session_start();
    $check = $_SESSION['test'];
    echo $check; 
    ?>

5 个答案:

答案 0 :(得分:2)

在向浏览器输出任何内容(甚至不是空格)之前,必须先调用

session_start()。

你是在第一行页面上的html启动会话后开始会话,如

<?php
session_start();
print_r($_SESSION);
if(isset($_POST['submit'])){
    $_SESSION['test'] = $_POST['test'];
}
?>
<html>
    <body>
        <form method="post" action="addimageprocess.php">
            Test: <input type="text" name="test" />
            <br>
            <input type="submit" name="submit" />
        </form>
    </body>
</html>

答案 1 :(得分:1)

在发送任何标题之前(即在页面的最顶部),应设置

session_start()

答案 2 :(得分:0)

PHP代码在实际POST完成之前执行,因为PHP是服务器端语言。那时,实际上没有$ _POST数组。

此代码来自您的例如

 <?php
  session_start();
  $_SESSION['test'] = $_POST['test'];
 ?>

$_POST已发布(或存在)到test.php页面。

答案 3 :(得分:0)

主脚本中的PHP没有按照您的意愿执行,事实上只是在最好的情况下保存垃圾和/或null。你需要反转PHP脚本,把

<?php
session_start();
$_SESSION['test'] = $_POST['test'];
?>

在test.php和

<?php
session_start();
$check = $_SESSION['test'];
echo $check; 
?>

在你主要的php

答案 4 :(得分:0)

如果您使用的是网络服务器,并且确实有

<?php 
 session_start();
 $_SESSION['test'] = $_POST['test'];
?>

但它仍然没有存储会话,那么你需要检查saved_pa​​th

  <?php
    phpinfo():
  ?>

检查会话标头下是否设置了session:save_path并确保它存在于服务器上。如果它是一个网络服务器,那么你将不得不联系你的主机为你设置保存路径。