1

首先感谢您阅读本文,我有一个表格,它有 3 页,需要从第 1 页和第 2 页存储数据,最后在第 3 页,然后将其发送到数据库。

我在第 2 页上使用它来存储来自第 1 页的信息(假设在我的表单的第 1 页上有 session_start();)

$_SESSION['firstName']= $_POST['firstName'];
$_SESSION['telephone']= $_POST['telephone']; 
$_SESSION['surname']= $_POST['surname'];
$_SESSION['mobile']= $_POST['mobile'];

然后第 3 页从第 2 页获取信息,使用它来保存信息。

 $_SESSION['address1']= $_POST['address1']; 
 $_SESSION['address2']= $_POST['address2'];
 $_SESSION['address3']= $_POST['address3'];
 $_SESSION['email']= $_POST['email'];
 $_SESSION['customerType']= $_POST['customerType'];

如果我在第 3 页回显 $_SESSION['email'] 它会显示,但如果我在最后一页上回显第 2 页的任何 $_SESSION,它不会显示任何内容。

我花了很长时间研究存储会话,但似乎无法解决。

总结:-

  • 第 1 页 启动会话 (session_start()),用户输入他们的姓名、姓氏和手机。
  • PAGE 2 存储用户在第 1 页输入的信息,用户输入他们的地址、电子邮件并选择会员类型。
  • PAGE 3 存储用户在第2页输入的信息,用户选择付款方式(不付款,我只是想知道会员想如何付款,所以check or paypal)
  • PAGE 3 也有一条信息,它没有存储为页面将所有信息提交到数据库。

第 3 页的问题 如果我尝试回显第 1 页的任何信息,则不会显示第 1 页的数据我收到此错误:-注意:未定义的索引:

再次感谢您阅读本文,对不起,因为我是新手,所以这对你们中的许多人来说是一个愚蠢的问题,但我想学习,这个网站很棒。

抱歉忘了添加这个,我有一个名为 Default.php 的主页,其中包含以下代码:-

 if ($_REQUEST['p']) { include('includes/'.$_REQUEST['p'].'.php'); 

然后我的所有页面都从此页面调用,格式如下

  default.php?p=addmember
  default.php?p=addmember-page2
  default.php?p=addmember-page3

default.php 有 session_start(); 所以每个页面都有这个调用

4

3 回答 3

5

您需要session_start()在每个页面中使用初始化会话。

于 2013-03-18T22:53:37.387 回答
3

也许这会有所帮助。

<?php
session_start();
?>
<?php
#session_destroy();
function form($type)
{
    return "<form action=\"\" method=\"POST\" >
            <input type=\"text\" name=\"next\" />
            <input type=\"submit\" name=\"$type\" />
            </form> ";
}

function module()
{
    echo form('one');
    if (isset($_POST['one'])) {
        if (isset($_POST['next']) && !empty($_POST['next'])) {
            $_SESSION['title'] = $_POST['next'];
        } else {
            echo "post is empty";
        }
    } else {
        echo "Please fill the field";
    }
}

function module2()
{
    echo form('two');
    if (isset($_POST['two'])) {
        if (isset($_POST['next']) && !empty($_POST['next'])) {
            $_SESSION['content'] = $_POST['next'];
        } else {
            echo "post is empty";
        }
    } else {
        echo "Please fill the field";
    }
}

function module3()
{
    echo form('three');
    if (isset($_POST['three'])) {
        if (isset($_POST['next']) && !empty($_POST['next'])) {
            $_SESSION['category'] = $_POST['next'];
        } else {
            echo "post is empty";
        }
    } else {
        echo "Please fill the field";
    }
}
if (!isset($_SESSION['title'])) {
    echo module();
} else if (isset($_SESSION['title']) && !isset($_SESSION['content'])) {
    echo module2();
} else if (isset($_SESSION['content']) && !isset($_SESSION['category'])) {
    echo module3();
}

// you can delete, below this line. 
echo "<div style=\"width:1000px; align:left; border:1px dashed #darkblue; color: darkblue; font-size:14px;  \" />";
function SessionChecker($type)
{
    if (isset($_SESSION[$type]) && !empty($_SESSION[$type])) {
        echo "Session $type is set as <b>" . $_SESSION[$type] . "</b><br/>";
    } else {
        echo "Session '$type' is not set <br/>";
    }
}

echo SessionChecker('title');
echo SessionChecker('content');
echo SessionChecker('category');
echo "</div>";
于 2013-03-19T00:07:07.537 回答
2

session_start()在每一页上都调用了吗?

session_start()创建一个会话或恢复当前会话,因此您需要在每个页面的顶部调用它,而不仅仅是您的初始页面。

于 2013-03-18T22:55:38.410 回答