傳遞這是我的代碼:PHP會話變量未與頁眉和Ob_Start功能
<?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函數的代碼昨天早上工作,但在下午不工作。我知道它沒有設置,因爲有兩件事:當我在下一頁上回顯時,什麼也沒有顯示,因爲當我嘗試運行帶有會話「ID」變量的查詢時,我得到一個mysql錯誤,表示查詢無法進行。
這是下一頁不工作的代碼。起初我想,可能是我的查詢出了問題,因爲我得到這個錯誤:
「執行查詢時出錯。您的SQL語法有錯誤;查看與您的MySQL服務器版本對應的手冊正確的語法使用附近''在第1行「
但是,當我試圖打印會話'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(真),session_commit(),ob_end_flush()函數。我曾嘗試在主頁上初始設置會話變量,但一旦函數在會話中執行「ID」變量就不再設置。
請幫忙!我已閱讀了所有關於此問題的論壇,但似乎沒有任何工作。
我更新了信息問題的其他部分。我也試過你建議的代碼。我將它添加到配置文件頁面。但是,由於沒有在索引頁面上設置會話ID,我只是將其重定向回索引頁面。 – user2510805