-1

私はクッキーなしで働くことに少し迷っています。URL を介して SID を渡すセッションを作成したいのですが、別のページからデータを渡したり取得したりする方法がわかりません。私はたくさんグーグルで検索しましたが、例の 90% は Cookie を使用しています。

これが私が持っているものです。

index.php

<?php
    ini_set("session.use_cookies",0);
    ini_set("session.use_only_cookies",0);
    ini_set("session.use_trans_sid",1);
    session_start();
?>

<html>
<head>
    <title>Index</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />        
    <link rel="STYLESHEET" type="text/css" href="style.css">
</head>
<body>  
    <a href="index.php?" class="navactive">Index</a>
    <a href="second.php?">Second</a>        

    <form action="access.php" method="POST">
        User: <input type="text" name="user" size="15"/><br>
        Pass: <input type="password" name="pass" size="15"/><br>
        <button type="submit"/>Ok</button>
        <button type="reset"/>Reset</button>
    </form>     

    Logged as: <?php print $_SESSION["name"]; ?>                

</body>
</html>

access.php の最後の部分

........
.......
....

    if($count==1){

    // Register $myusername and redirect to file "second.php"
    ini_set("session.use_cookies",0);
    ini_set("session.use_only_cookies",0);
    ini_set("session.use_trans_sid",1);
    session_name('test');

    session_start();
    $_SESSION['name'] = $myusername; 

    header("location:second.php?".SID);
    exit;
}
else {
    echo "Wrong Username";
}
ob_end_flush();
?>

second.php

<?php
    ini_set("session.use_cookies",0);
    ini_set("session.use_only_cookies",0);
    ini_set("session.use_trans_sid",1);
    session_start();
?>

<html>
<head>
    <title>Second</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />        
    <link rel="STYLESHEET" type="text/css" href="style.css">
</head>
<body>
    <a href="index.php?">Index</a>
    <a href="second.php?" class="navactive">Second</a><br>              

    <a href="logout.php">Logout</a><br>         

    Logged as: <?php print $_SESSION["name"]; ?>                    

</body>
</html>

logout.php

<?php
    ini_set("session.use_cookies",0);
    ini_set("session.use_only_cookies",0);
    ini_set("session.use_trans_sid",1);
    session_start();
    session_unset();    
    session_destroy();
    header('Location: index.php');
    exit;
?>

-「Logged as:」には何を入力する必要がありますか?. "print $_SESSION["name"];" 何も示しません。

- ログインすると、second.php にリダイレクトされ、任意のリンクをクリックすると、実際にログに記録されたセッションが停止し、SID が変更されます。

どうも!

4

2 に答える 2

4

あなたのコードをコピーして、自分でテストしました。すべて問題ありませんが、access.php ファイルで session_name('test') を使用しないでください。それが何をするのかよくわかりませんが、それを含めると壊れます。代わりに、session_name() 関数を呼び出さずに $_SESSION['name'] を使用しましたが、すべてが機能しています。

于 2012-12-26T00:44:29.203 に答える
0

URL を介して何かを渡すには、適切な構文を使用する必要があります。

your.url.com/ ?key=value&key2=value2...など

次に、このデータを取得するには:

echo $_GET['key']echo $_GET['key2']

于 2012-12-26T00:38:07.273 に答える