簡體   English   中英

標頭不能與session_start結合使用嗎?

[英]Header doesn't work in combination with session_start?

為避免非法使用,我在代碼開頭檢查登錄狀態。 我這樣做如下:

if (!isset($_SESSION['loggedin'])){
  header('Location:http://www.name.nl/prg/login.php');
  exit();
} 

這可行。 但是,如果我先使用此代碼,它將無法正常工作。

ini_set('session.save_path',realpath(dirname($_SERVER['DOCUMENT_ROOT'])).'/name.nl/tmp');
session_start();
if (!isset($_SESSION['loggedin'])){
  header('Location:http://www.name.nl/prg/login.php');
  exit();
} 

我想念什么嗎? 我看了兩天了,但找不到原因/解決方案。 在我看來,頭函數應該在ini_set和session_start之后工作。 我是說這是通用代碼?

首先嘗試:ini_set('session.save_path',realpath(dirname($ _ SERVER ['DOCUMENT_ROOT'])。'/ name.nl/tmp'));

(移動括號)

嘗試在這里查看: http : //php.net/manual/en/function.session-save-path.php

不確定這是否有幫助,但似乎與會話文件夾所在的位置有關,然后指向代碼中正確的目錄/文件夾。

適用於他們的解決方案:ini_set('session.save_path',realpath(dirname($ _ SERVER ['DOCUMENT_ROOT'])。'/../session'));

您當前的會話保存:

函數ini_set( '的session.save_path',真實路徑(目錄名($ _ SERVER [ 'DOCUMENT_ROOT'])) '/ name.nl/tmp');

好吧,我找到了原因。 我在標題語句之前有一個“ echo語句”。 刪除此語句后,它可以正常工作。 謝謝您的評論!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM