本業がインフラの為、初心者な質問だったら申し訳ありません。
前提・実現したいこと
現在サーバーをセットアップするにあたってのチェックシートをnginx+PHPで作りたいと思っています。
今回DBを用意していない為、現在のチェックボックスのデータをstatus.csvとして出力し
それを更新の度に読み込み直せばチェックシートの進行を管理できるのでは?という想定でコードを書いてみました。
発生している問題・エラーメッセージ
問題が3つ発生しています。
-
現在のチェックボックスの状態をstatus.csvに吐き出す事は出来ているようなのですが、それを読み込む関数が調べても分かりませんでした。
-
状態が吐き出されたstatus.csvを確認してみるとon, on, の様な、チェックが入っている数はわかるものの、どこにチェックが入ったか、このcsvからだと読み取れない(と思われる)。
-
status.csvがスタート時点だと空ファイルの為、以下のエラーが出てしまいます。
Warning: Undefined array key "status" in /var/www/html/test.php on line 26 Warning: foreach() argument must be of type array|object, null given in /var/www/html/test.php on line 26
該当のソースコード
test.php
PHP
1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5<meta charset="utf-8"> 6<title>チェックシート</title> 7</head> 8 9<body> 10<h1>サーバーセットアップマニュアルチェックシート</h1> 11 12<form action="test.php" method="get"> 13<h2>物理作業</h2> 14// ←この辺にstatus.csvを読み込む記述が必要? 15<div class="boxes"> 16 <input type="checkbox" id="1-1-1" name="status[]"><label for="1-1-1">箱から出す</label><br> 17 <input type="checkbox" id="1-1-2" name="status[]"><label for="1-1-2">ホスト名のテプラを貼り付け</label><br> 18 <input type="checkbox" id="1-1-3" name="status[]"><label for="1-1-3">シリアルナンバーを控える</label><br> 19 <input type="checkbox" id="1-1-4" name="status[]"><label for="1-1-4">Ether Portのテプラを貼り付け</label><br> 20 <input type="checkbox" id="1-1-5" name="status[]"><label for="1-1-5">サーバーセットアップ一覧の更新</label><br> 21</div> 22 23<div align="center"> 24<?php 25 $myfile = fopen("status.csv", "w") or die("Unable to open file!"); 26 foreach($_GET["status"] as $value){ // ←この辺の処理を工夫しないといけない? 27 $content = "{$value}, "; 28 fwrite($myfile, $content); 29 } 30 fwrite($myfile, "\n"); 31 fclose($myfile); 32 33 print '<form action="test.php">'; 34 print '<input type="submit" value="更新">'; 35 print '</form>'; 36?> 37</div> 38</form> 39</body> 40</hmtl>
試したこと
$contentとstatus.csvに書かれているものは同じものでした。(echoで確認しました。)
PHPを書いたのも初めてなもので、恐らく色々わかっていない気がします・・・
補足情報(FW/ツールのバージョンなど)
Docker version:20.10.8, build 3967b7d
nginx image:nginx:stable-alpine
php image:php:fpm
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/19 09:25