※ ChatGPTを利用し、要約された質問です(原文:セッション配列の取得の仕方)
セッション配列の取得の仕方
このQ&Aのポイント
PHPで画像ファイルのアップロードスクリプトを作成中です
アップロード用のフォームボタンは1つで、複数のファイルをアップロードしています
最後にアップロードしたファイル一覧表示用のセッション配列を取得するところがうまくいきません
PHPで、画像ファイル(複数)のアップロードのスクリプトを作成しています。
アップロード用のフォームボタンはひとつです。1ファイルアップロードしたら、同じフォームに戻って次をアップロードして、最後に一覧表示で確認するというやり方です。
newfile.php(アップロード用のフォームボタン)
↓
newfileconf.php(アップロードファイルの表示確認)
↓
newfiledone.php(アップロードできました!のメッセージ(とアップロードファイル一覧表示用の配列取得))
買い物などで、商品を追加していくやり方などと似ているのではと思います。
セッション配列にファイル名を入れていけばできるはずだと思うのですが、最後の一覧表示用のセッション配列を取得するところ(newfiledone.php)だけがなぜだかうまくいきません。
アップロードじたいはうまくいっており、$imagefile(ファイル名)、$count も取れています。
単純ミスかもしれませんが、一晩ひっかかっています。わかる方いたら教えて下さい。
newfiledone.phpのコードは下記です。
<?php
/****************************************/
/* 写真の新規登録実行ページ */
/****************************************/
//共通データをインクルードします
require_once("photolibini.php");
session_start();
if( isset( $_SESSION[ "count" ] ) ) {
$_SESSION[ "count" ]++;
} else {
$_SESSION[ "count" ] = 1;
}
//前のページからデータを受け取る
$imagefile = $_POST[imagefile];
$cancel = $_POST[cancel];
if (isset($cancel)) {
//キャンセルボタンが押されたとき
//アップロードされた写真のファイルの実体を削除
unlink("$PHOTOTMP$imagefile");
//写真の新規登録ページへリダイレクト
header("Location: photonew.php");
exit();
}
$body = "登録を完了しました!";
//写真のファイルを一時保存先から最終保存先に移動
rename("$PHOTOTMP$imagefile", "$PHOTODIR$imagefile");
$body .= "<BR><BR>
<INPUT type='button' value='次の写真を登録' onclick='window.location=\"photonew.php\"'>
<INPUT type='button' value='ホームへ戻る' onclick='window.location=\"index.htm\"'>";
//カウンタの数字を配列に入れる
$count = $_SESSION[count];
//imagefileをセッション配列に入れる
$_SESSION['imagefile'][$count] = $imagefile;
//配列がうまくいっているかどうか試しに表示してみる
foreach ( $_SESSION['imagefile'] as $count => $value ){
echo $value."<br />\n";
}
//ページヘッダを出力します
print htmlheader("写真の新規登録実行");
//ページ本文を出力します
print $body;
//ページフッタを出力します
print htmlfooter();
?>
お礼
。。。できました。 ありがとうございました!