0

2つの別々のセッションを作成しようとしています。1つはユーザーが管理者の場合、もう1つはユーザーが作成者の場合です。$ typeは列挙型として格納されたタイプです(作成者または管理者のいずれかです)。ただし、セッションの一意のセッションIDを取得できません。私はPHPとMySQLを初めて使用します。誰かが私のコードのどこにエラーがあるのか​​教えてもらえますか?助けてください

    <?php
      session_start();
    ?>


    <?php
    include("dbconnect.php");
    $con= new dbconnect();
    $con->connect();
    //create and issue the query
    $sql = "SELECT type FROM users WHERE username = '".$_POST["username"]."' AND password = PASSWORD('".$_POST["password"]."')";

    $result = mysql_query($sql);

    //get the number of rows in the result set; should be 1 if a match
    if (mysql_num_rows($result) == 1) {
       $type_num=0;
        //if authorized, get the values
          while ($info = mysql_fetch_array($result)) {
        $type =$info['type'];
        }

         if($type == "admin")
            {
             $_SESSION['type']=1;
             $u = 'welcome.php';
             header('Location: '.$u);  
            }
           else
            {
              $_SESSION['type']=$type_num;
              $u = 'welcome.php';
              header('Location: '.$u);


            }
        } 
          else {
            //redirect back to loginfailed.html form if not in the table
            header("Location: loginfailed.html");
            exit;
            }
            ?>

welcome.phpは次のとおりです。

<?php
  session_start();
?>

<html>
<body>
<h2>Welcome to SOD73.</h2>
<?
if($_SESSION['type']==1){
     echo "You are of the usertype Admin and your session id is ";
     echo session_id();
     session_destroy();
}
else {
echo "You are of the usertype Author and your session id is ";
echo session_id();
session_destroy();

}
?>

</body>
</html>
4

1 に答える 1

1

ファイルでsession_destroy()を呼び出す前に、session_regenerate_id()を使用する必要がありますwelcome.php

于 2012-07-02T06:45:59.520 に答える