PHP会话困难

时间:2011-02-03 20:10:48

标签: php session forms

我正在尝试启动一个PHP会话,以便在用户登录时存储表单中的数据,然后在登录后将其显示在页面上。到目前为止所有尝试都失败了,我看不出我做错了什么。如果你能告诉我哪里出错了,这就是我的程序。

第1步

First Page上有一个表单,它已经收到了之前的数据。其中一些数据需要进入会话,所以在页面顶部之前还有其他内容。

<?php

session_start();

 $_SESSION['booking-form'] = array('GT_title' => $SEStitle, 'GT_actual_duration' => $SESactualduration, 'cal_startdate' => $SEScalstartdate, 'GT_picture' => $SESpicture, 'GT_total_duration' => $SEStotalduration, 'GT_total_dives' => $SEStotaldives, 'GT_total_price' => $SEStotalprice, 'GT_total_duration' => $SEStotalduration, 'GT_specifications' => $SESspecifications);
?>

第2步

用户登录

第3步

成功后,用户将被定向到另一个页面,现在称为bookinginitial.php。

第4步

bookinginitial .php上的代码如下。我已经设置了3种可能的收集方式

    <?php

session_start();

 $_SESSION['booking-form'];
  echo $_POST['SEStitle'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>

<body>

<?php $_SESSION['booking-form'];

echo $_POST['SEStitle'];
?> 

<?php
        echo $_POST['SEStitle']; ?>
</body>
</html>

现在显然这是不正确的。是否与会话数组我不知道,因为我刚开始使用PHP并且正在尽力而为。

任何帮助都将不胜感激。

非凡,

2 个答案:

答案 0 :(得分:2)

您只需要访问会话数组。

echo $_SESSION['booking-form']['SEStitle'];

$_POST数组仅在您从表单发送字段时设置。

答案 1 :(得分:0)

我不确定这是否会给你带来麻烦,所以我会怀疑你的意思是“我已经设置了3种可能性......”。

这一行本身没有任何作用:

 $_SESSION['booking-form'];

我认为你实际上是想把它包装成有条件的。其语法为:

<?php
session_start();
print_r($_SESSION);   ########### for debugging purposes  ###########

if ($_SESSION['booking-form']) {

    echo $_POST['SEStitle'];

    ?>
    <!DOCTYPE html>
    <html>...
    <?php
}
elseif ($_SESSION['booking-form']) {
    ...

第二个条件可能是为了检查其他内容。但我不知道你的网页实际上做了什么。