0

これは私のコードです:

<?php
 ob_start();
 session_start();
 include("index.php");
 if (isset($_POST['user'],$_POST['pass'])):
     $con=mysqli_connect("connect info");
     if ( !$con ){
         die('Could not connect to Database: '.mysqli_error());}
 $pass=($_POST['pass']);
 $query0 = "SELECT * FROM user WHERE username = '" . $_POST['user'] ."' AND password = '" . $pass . "'";
 $resource0 = mysqli_query($con,$query0);
 if(!$resource0):
     die("Error conducting query. ".mysqli_error($con));
  endif;
  if(mysqli_num_rows($resource0) == 0){
        echo "Username not find";
        header("Location: /login.php");}

   $result0 = mysqli_fetch_row($resource0);
       $_SESSION['ID'] = $result0[0];
       $_SESSION['userType'] = $result0[3];

    if(!isset($_SESSION['ID'])):
        //header("Location: ...");
    else:
        header("Location: ....");
    endif;
else: 
    if(isset($_POST['from'])):
        $_SESSION['from'] = $_POST['from'];
    endif;

    ?>

<?php endif; ?>

このコードは、ユーザーのユーザー名とパスワード情報を取得し、ユーザー ID をデータベースに格納して検索します。一度、セッション変数「ID」に格納されている情報を見つけます。

問題: セッション 'ID' 変数が次のページに渡されるとき、設定されません。驚いたことに、ob_start 関数のないこのコードは、昨日の朝には機能していましたが、午後には機能しなくなりました。次の 2 つの理由から、設定されていないことがわかっています。次のページでエコーしても何も表示されません。また、セッション 'ID' 変数を使用してクエリを実行しようとすると、クエリを実行できなかったという mysql エラーが発生するためです。

これは、次のページの動作していないコードです。最初は、次のエラーが発生していたため、クエリに問題がある可能性があると思いました。

「クエリの実行中にエラーが発生しました。SQL 構文にエラーがあります。1 行目の '' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください」

しかし、セッション 'ID' 変数を印刷しようとすると、何も印刷されません。

<?php session_start;
  // Create connection
  $con=mysqli_connect(connect info....);

 // Check connection
 if (mysqli_connect_errno($con))
 {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
 }

 $query0 = "SELECT * FROM studentProfile WHERE sID = ".$_SESSION['ID'];
 $resource0 = mysqli_query($con,$query0);
 if(!$resource0):
echo $_SESSION['ID'];
die("Error conducting query. ".mysqli_error($con)); 
 endif;

 .......(rest of code)

すでに試した解決策: すべて試しました...session_write_close()、session_regenerate_id(true)、session_commit()、ob_end_flush()。最初にホームページでセッション変数を設定しようとしましたが、関数がセッションで実行されると、「ID」変数はまったく設定されなくなりました。

助けてください!この問題について見つけたすべてのフォーラムを読みましたが、何も機能していないようです。

4

1 に答える 1