###前提・実現したいこと
■入力フォーム・確認画面・アップロード(実行)という構成
■日付やタイトル、作成者や通達内容をCSVに書き出す
■3つの添付ファイルを同時にアップロードする
■入力した内容をHTMLに新しく書き出す(指定したフォルダに作成したい)
上記の条件をふまえた入力フォームの作成を行っています。
それとは別に、ここで書き出されたCSVからデータを読み込んで表示させるページの作成も予定しています。
###問題点
■CSVに書き出すことができたが、ファイルをアップロードすることができない
■HTMLデータを新しく作る記述の仕方がわからない
■複数の添付ファイルをアップロードする記述の仕方
■できればCSVから読み込むデータを範囲指定して表示させる方法
###ソースコード
lang
1■入力フォーム 2<body> 3<form action="check.php" method="post" enctype="multipart/form-data"> 4 ファイル:<br /> 5 <input type="file" name="upfile" size="30" /><br /> 6 <br /> 7 名前:<br /> 8 <input type="text" name="name" size="30" /><br /> 9 <br /> 10 部署名:<br /> 11 <select name="busyo"> 12 <option value="">▼ 選択 </option><!--デフォルトのにはvalueを""にする --> 13 <option>人事</option> 14 <option>広報</option> 15 <option>総務</option> 16 </select><br /> 17 <br /> 18 日付:<br /> 19 <input type="date" name="hiduke" size="30" /><br /> 20 <br /> 21 通達内容:<br /> 22 <textarea name="message" rows="5" cols="100"></textarea><br /> 23 <br /> 24 <br /> 25 <input type="submit" value="アップロード" /> 26</form> 27</body>
lang
1■入力確認画面 2<body> 3<?php 4 $name = htmlspecialchars($_POST['name'], ENT_QUOTES,'UTF-8'); 5 $upfile = htmlspecialchars($_FILES["upfile"]["name"], ENT_QUOTES,'UTF-8'); 6 $busyo = htmlspecialchars($_POST['busyo'], ENT_QUOTES,'UTF-8'); 7 $hiduke = htmlspecialchars($_POST['hiduke'], ENT_QUOTES,'UTF-8'); 8 $message = htmlspecialchars($_POST['message'], ENT_QUOTES,'UTF-8'); 9?> 10<form action="upload.php" method="post" enctype="multipart/form-data" > 11 ファイル:<br /> 12 <?php echo $upfile; ?><br /> 13 <br /> 14 名前:<br /> 15 <?php echo $name; ?><br /> 16 <br /> 17 部署名:<br /> 18 <?php echo $busyo; ?><br /> 19 <br /> 20 日付:<br /> 21 <?php echo $hiduke; ?><br /> 22 <br /> 23 通達内容:<br /> 24 <?php echo nl2br($message); ?><br /> 25 <br /> 26 <br /> 27 <input type='button' onclick="history.back()" value="戻る"> 28 <input type="submit" value="登録" /> 29 <input type="hidden" name="upfile" value="<?php echo $upfile; ?>" > 30 <input type="hidden" name="name" value="<?php echo $name; ?>" > 31 <input type="hidden" name="busyo" value="<?php echo $busyo; ?>" > 32 <input type="hidden" name="hiduke" value="<?php echo $hiduke; ?>" > 33 <input type="hidden" name="message" value="<?php echo $message; ?>" > 34</form> 35</body>
lang
1■アップロード 2<body> 3<p><?php 4if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) { 5 if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) { 6 chmod("files/" . $_FILES["upfile"]["name"], 0644); 7 echo $_FILES["upfile"]["name"] . "をアップロードしました。"; 8 } else { 9 echo "ファイルをアップロードできません。"; 10 } 11} else { 12 echo "ファイルが選択されていません。"; 13} 14 $name = htmlspecialchars($_POST['name'], ENT_QUOTES,'UTF-8'); 15 $upfile = htmlspecialchars($_POST["upfile"], ENT_QUOTES,'UTF-8'); 16 $busyo = htmlspecialchars($_POST['busyo'], ENT_QUOTES,'UTF-8'); 17 $hiduke = htmlspecialchars($_POST['hiduke'], ENT_QUOTES,'UTF-8'); 18 $message = htmlspecialchars($_POST['message'], ENT_QUOTES,'UTF-8'); 19 $line = array($name, $upfile, $busyo, $hiduke, $message); 20 //エクセルはSJIS-winしか読まないのでUTF-8からSJIS-winへ変換が必要 21 mb_convert_variables("SJIS-win", "UTF-8", $line); 22 //CSVファイルへの書き込み 23 $file_name = "answer.csv"; 24 $fp = fopen($file_name, 'a'); 25 $result = fputcsv($fp, $line); 26 fclose($fp); 27 echo "登録が完了しました。"; 28 echo "<br />"; 29 echo '<a href="form.html">入力フォームへ戻る</a>'; 30?></p> 31</body>
###さいごに
インターネットにある情報を参考に記述しているのでおかしな書き方をしていると思いますが、
助言・コードなど、知識をいただけるとありがたいです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/15 04:18