※ ChatGPTを利用し、要約された質問です(原文:セッションが動かない)
セッションが動かない | PHPセッションの問題
このQ&Aのポイント
PHPのセッションがうまく動作しない問題について質問があります。他のプログラムは正常に動作することを確認しており、問題はコードにあると考えています。
質問者は特定のコードを使用しており、最初にelseifのブロックを実行し、セッション変数に値を設定しました。しかし、2回目の実行ではifのブロックに移行せず、セッション変数が設定されていることも確認できませんでした。
テストコードを使用して問題を再現したところ、if文の処理は正常に動作しました。この状況下での問題の原因を特定するために、質問者は不足した情報を提供する用意があります。
セッションがちゃんと動かない。
PHPのセッションがちゃんと動きません。
他のプログラムを同じ環境で動かしたところうまく動きましたので、
コードのほうに問題があると思います。
以下のようなコードを書いています
<?php
require_once '../function.php';
require_once '../config.php';
if (!($_SESSION['date'])) {
session_start();
}
connect_db()
?>
<div id="comu_confirm">
<?php
$now = new DateTime();
$date = $now->format('Y/m/d H:i:s');
$title = $_POST['title'];
$contents = $_POST['contents'];
if ($_SESSION['date']) {
$_SESSION = array();
session_destroy();
}elseif($_POST) {
}
//test
$_SESSION['title'] = $title;
$_SESSION['contents'] = $contents;
$_SESSION['date'] = $date;
まず最初はelseifのほうのプログラムを動かして、session変数に値を入れます。
その後、もう一度このファイルに飛んで、二回目はsession変数が入っているので
ifのほうに入って、ifの中の処理をするという形にしたかったのですがif文のほうの処理に行きません。
ちなみに、二回目に見たときはURLの欄にセッションIDは表示されていませんでした。
テストとして
<?php
require_once '../function.php';
require_once '../config.php';
if (!($_SESSION['date'])) {
session_start();
}
connect_db()
?>
<div id="comu_confirm">
<?php
$now = new DateTime();
$date = $now->format('Y/m/d H:i:s');
$title = $_POST['title'];
$contents = $_POST['contents'];
//test
$_SESSION['title'] = $title;
$_SESSION['contents'] = $contents;
$_SESSION['date'] = $date;
if ($_SESSION['date']) {
$_SESSION = array();
session_destroy();
}elseif($_POST) {
}
としてみたところ、if文の処理は動いていました。
なにが悪いのでしょうか?
不足した情報がありましたら開示したいと思いますので教えていただければと思います。
よろしくお願いします。
お礼
回答ありがとうございます。 直らないです。