1

ユーザーがログインする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>
4

3 に答える 3

3

まず、あなたのページは.php

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>
于 2013-03-27T16:01:59.697 に答える
0

親愛なる友よ、あなたはセッション変数と混同していると思います。開始する必要があることに注意してください

session_ start( );

何かが始まる前に、あなたのphpページの最初に。以下に示すように、値をセッション変数に保存できます

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

以下に示すように、セッション変数を取得できます

echo $_SESSION['demo'];

それでおしまい。セッション変数に割り当てる前に、uがdbから値を取得していることを再確認してください

于 2013-03-27T17:08:46.710 に答える
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 の前に移動します。

于 2013-03-27T17:15:50.127 に答える