0

ユーザーは、新しいページを開くリンクをクリックします (以下のコード)。私の問題は、この新しいページを開くと、新しいセッション ID が作成されることです。これが起こらないようにするにはどうすればよいですか?

require_once('../../config.php');    //Database connection details
require_once('../../connect.php');   //Connect to database

session_start();  <----------- HERE


if(isset($_GET['id'])) 
{

$id = $_GET['id'];
$tbl_uploads = $_SESSION['COMPANY_ID'].'_uploads';

$query = "SELECT username, type, size, content FROM $tbl_uploads WHERE id = '$id'";

$result = mysql_query($query) or die('Error, query failed');
list($username, $type, $size, $content) = mysql_fetch_array($result);

header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: inline; filename=$username");
echo $content;

mysql_close($link);
exit;
}
4

5 に答える 5

2

必要なファイルはすべて、実際に出力を送信します。もしそうなら、 session_start() はそれらの前に行くべきです。

于 2010-02-19T17:38:25.823 に答える
1

ファイルの最初の行にあることを確認してください error_reporting(E_ALL);

ここで他のバグが発生していると思いますが、session_start() はこれに影響を与えるべきではありません。

于 2010-02-19T16:44:38.307 に答える
0

session_start()が問題になる可能性があります。セッションを開始すると、セッションIDが作成されます。それはとにかく私にはそう思われる方法です。session_start()のコードを含めてもらえますか?

于 2010-02-19T17:45:09.583 に答える
0

これを試してみませんか:

$sid = session_id();
if ($sid == ""){ 
       //Session should be created
       session_start();
}//else Session already exists
于 2010-02-19T20:13:26.847 に答える
0

$_GET['id']実際に設定されていますか?そのイニシャルにelse句を付けてif、そうでない場合は何らかのエラーを吐き出します。おそらく、何かがあなたのクリックを POST に変えているのでしょう。

于 2010-02-19T17:15:38.003 に答える