PHP使用会话

时间:2013-03-27 16:00:16

标签: php html phpmyadmin

我有一个用户登录的login.html页面及其信息;名称和邮政编码显示。此信息显示在login.php页面上。

<?php
session_start();

echo "systemResult=Success";
        $row=mysql_fetch_array($result);
        echo $row['Name']." is located at".$row['Postcode'];
        $_SESSION['name'] = $row['User_id'];

我希望此信息以不同页面的形式显示,而不是在此时显示的页面上显示。 (如下所示)

<form name="form1" method="post" action="info.php">
            <strong>info</strong>
            <br />
            <br />
            Name: <input name="name" type="text" id="name" />
            <br />
            Postcode: <input name="postcode" type="text" id="postcode" />
            <br />

            </form

            <div data-role="content">
            <?php
            session_start();
            echo $_SESSION['user_id'] 

我已经在login.php页面上设置了会话,但它仍然显示错误页面上的信息。在“信息”页面上,信息会显示,但不会显示在表单中。

总而言之,我希望login.php中显示的信息显示在info.php中,这样当用户登录时,它会自动将它们带到info.php,显示它们的信息。

该信息来自phpmyadmin数据库。

提前致谢

Info.php页面

<!DOCTYPE html>
<?php
session_start();
echo $_SESSION['user_id'] 
?>
<html>

    </head>
    <body>
        <!-- Home -->
        <div data-role="page" id="page1">
            <div data-theme="a" data-role="header">
            <a data-role="button" data-theme="c" href="menu.html" data-icon="arrow-l" data-iconpos="left" class="ui-btn-left">
                    Main Menu
                    </a>
                <h3>
                    Your info
                </h3>
            </div>
            <form name="form1" method="post" action="login.php">
            <strong>Details</strong>
            <br />
            <br />
            Name: <input name="name" type="text" id="name" />
            <br />
            Postcode: <input name="postcode" type="text" id="postcode" />

            </form


         </div>
    </body>
</html>

3 个答案:

答案 0 :(得分:3)

首先,您的网页必须为.php

其次,在页面上呈现ANYTHING之前,您必须使用session_start()启动会话。在页面开头的标题上方开始会话。

阅读PHP SESSIONS

<强>更新

将您的info.php代码更改为:

<?php
session_start();
// This needs to go before ANYTHING else on the page.
?>
<!DOCTYPE html>
<html>

    </head>
    <body>
        <!-- Home -->
        <div data-role="page" id="page1">
            <div data-theme="a" data-role="header">
            <a data-role="button" data-theme="c" href="menu.html" data-icon="arrow-l" data-iconpos="left" class="ui-btn-left">
                    Main Menu
                    </a>
                <h3>
                    Your info
                </h3>
                <p>
                    <?php // Put this where you want to echo the user_id on the page
                     echo $_SESSION['user_id']; ?>
                </p>
            </div>
            <form name="form1" method="post" action="login.php">
            <strong>Details</strong>
            <br />
            <br />
            Name: <input name="name" type="text" id="name" />
            <br />
            Postcode: <input name="postcode" type="text" id="postcode" />

            </form


         </div>
    </body>
</html>

答案 1 :(得分:0)

亲爱的朋友,我认为你对会话变量感到困惑。请记住,你应该开始

session_ start( );

在你的php页面的最前面,在任何事情开始之前。 您可以将值存储到会话变量中,如下面的showm

$_SESSION['demo'] = 'Hello';

您可以将会话变量检索为showm

echo $_SESSION['demo'];

就是这样。 仔细检查你在分配到会话变量

之前从db获取值

答案 2 :(得分:0)

您的会话变量名为$ _SESSION ['name'],在login.php文件中将其更改为$ _SESSION ['user_id'] = $ row ['User_id']。也许你想要多个会话变量?如:

$_SESSION['user_id']  = $row['User_id'];
$_SESSION['name']     = $row['name'];
$_SESSION['postcode'] = $row['code'];

如前所述,session_start()需要在其他任何事情之前完成,将php代码移到DOCTYPE之前。