Php 存储会话后&;呼应着它,什么也没有出现

Php 存储会话后&;呼应着它,什么也没有出现,php,session,pdo,Php,Session,Pdo,我有一个表单,可以在MySQL数据库中插入一些东西 用户名。 密码。 身份证 我将用户名存储到会话中,然后更改标题(.php?recovery=success)。 之后,我想测试我的会话是否有效(供以后使用,这样我就可以转到数据库中该用户名的列来获取我们插入的ID,如果我只执行echo$ID,它将生成一个新ID) else if (isset($_GET['recovery']) && $_GET['recovery'] == 'success') { echo $_SESSI

我有一个表单,可以在MySQL数据库中插入一些东西

用户名。 密码。 身份证

我将用户名存储到会话中,然后更改标题(.php?recovery=success)。 之后,我想测试我的会话是否有效(供以后使用,这样我就可以转到数据库中该用户名的列来获取我们插入的ID,如果我只执行echo$ID,它将生成一个新ID)

else if (isset($_GET['recovery']) && $_GET['recovery'] == 'success') 
{
echo $_SESSION['user'];

    /* 

    ***REMOVED FOR TESTING***

    $fetch = $connect->query("SELECT * FROM users WHERE username = ':username' LIMIT 1");
    $fetch->bindValue(':username', $_SESSION['user']);
    $fetch->execute();

    while($row = $fetch->fetch( PDO::FETCH_ASSOC )) {
        echo $row['recover_id'];
    }
    */
}
问题:

我填写了表格,在提交时,我才恢复。php?recovery=success 然后在回显会话数据时,没有输出

我需要文件session.inc.php,它将打开一个新会话

这是全部代码:

我做错了什么

我是PHP新手,尤其是PDO。 谢谢

其他:

Session.inc.php

<?php
session_start();
?>

看起来您的代码正在将信息存储到会话中,然后通过调用header重定向(请参见代码片段)

为了谨慎起见,我建议明确地打电话给

在重定向之前,确保在执行离开当前页面之前正确保存会话数据…如下所示:

                    // Let's store these into a session now.
                    $_SESSION['user'] = $username;
                    $_SESSION['pass'] = $password;


                    session_write_close();                       

                    //Now let's refresh the page, to a different header.
                    header('Location: recover.php?recovery=success');

看起来您的代码正在将信息存储到会话中,然后通过调用header重定向(请参见代码段)

为了谨慎起见,我建议明确地打电话给

在重定向之前,确保在执行离开当前页面之前正确保存会话数据…如下所示:

                    // Let's store these into a session now.
                    $_SESSION['user'] = $username;
                    $_SESSION['pass'] = $password;


                    session_write_close();                       

                    //Now let's refresh the page, to a different header.
                    header('Location: recover.php?recovery=success');
问题是:

我将代码放在语句中,检查恢复是否设置为NOTset

if (!isset($_GET['recovery'])) {
在代码的顶部,如果您没有在粘贴箱中看到

我把代码放在那个语句之外,它就工作了。

问题是:

我将代码放在语句中,检查恢复是否设置为NOTset

if (!isset($_GET['recovery'])) {
在代码的顶部,如果您没有在粘贴箱中看到


我把代码放在那条语句之外,它就起作用了。

session.inc.php中有什么?你如何打开一个新的会话?@John@purepksorpurepk你肯定你进入了
else if(isset($_GET['recovery'))
语句?添加
echo'I'm here!'
死亡('Yes,我在else if'))
以上
echo$_SESSION['user'];
用于调试是否进入语句中。
SESSION.inc.php
中有什么内容?如何打开一个新会话?@John@purepksorpurepk你肯定你进入了
else if(isset($_GET['recovery')
语句?添加
echo'I'm here!'
死亡('Yes,我在else if');
上面
echo$\u会话['user'];
在您进入语句时进行调试。感谢您的回答,我已经尝试过了,它没有真正改变,只是没有显示出与以前一样的内容。此外,我刚刚注意到您的表单元素设置为通过POST提交其操作。除非您在URL中手动设置GET,或者我在代码中错过了GET I的位置在调用header()之前由PHP设置。您将永远不会遇到IF..THEN块(即-isset($\u GET['recovery'])&&&$\u GET['recovery']=='success')。啊!我看不到它;它直接在对header()的调用中为什么?这有什么问题吗?我设置会话,然后重定向到GET recovery=success,在代码外我检查页面是否为GET recovery=success,如果是,则显示会话?在最顶端,确保我这样做:if(!isset($\u GET['recovery'])){谢谢你的回答,我已经尝试过了,它并没有真正改变,只是没有显示出与以前一样的内容。另外,我刚刚注意到表单元素设置为通过POST提交其操作。除非你在URL中手动设置GET,或者我在代码中错过了一个由PHP在调用header()之前设置GET的位置你永远不会点击你正在寻找的IF..THEN块(即-isset($\u GET['recovery'])&&&$\u GET['recovery']=='success')。啊!我看不到它,它直接在对header()的调用中为什么?这有什么问题吗?我设置会话,然后重定向到GET recovery=success,在代码外我检查页面是否为GET recovery=success,如果是,则显示会话?在最顶端,确保我这样做:if(!isset($\u GET['recovery'])){