質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2124閲覧

phpで作成中の簡易掲示板のエラーが直せない

sumikko6210

総合スコア138

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/11/30 09:14

編集2016/11/30 09:33

phpで作った簡易掲示板に編集機能を実装中なのですが途中のデバックで詰まってしまいました。

php

1コード 2<?php 3 4$dataFile ='bbs2.txt'; 5$errMsg = ""; 6 7if(isset($_POST['toukou'])) 8{ 9 10 $message = ($_POST['message']); 11 12 $user = ($_POST['user']); 13 14 $postedAt = date('Y-m-d H:i:s'); 15 16 17 18 $newData = (sizeof(file($dataFile)) + 1)."<>".$message."<>".$user."<>".$postedAt. "\n"; 19 20 $fp = fopen($dataFile,'a'); 21 fwrite($fp, $newData); 22 fclose($fp); 23} 24 25 26if (isset($_POST['delete'])) { 27 28$delete = $_POST['deleteNo']; 29$delCon = file("bbs2.txt"); 30for ($j = 0; $j < count($delCon) ; $j++){ 31$delData = explode("<>", $delCon[$j]); 32 33if ($delData[0] == $delete) { 34array_splice($delCon, $j, 1); 35file_put_contents($dataFile, implode("\n", $delCon)); 36 37} 38} 39} 40 41if (isset($_POST['edit'])){ 42 if(!$_POST["editNo"]){$errMsg = "★NOを入力してください<br>";} 43 44 if(!$errMsg){ 45 $edit = $_POST["editNo"]; 46 $ediCon = file("bbs2.txt"); 47 for ($j = 0; $j < count($ediCon) ; $j++){ 48 $ediData = explode("<>", $ediCon[$j]); 49 50 if ($line[0] == $edit) { 51 echo "<font color=blue>NO$line[0]の書き込みを編集できます</font><br>"; 52 echo "<form method=POST action=keizibann2.php>"; 53 echo "message<input type='text' name='message' size='60' value='".$line[1]."'><br>"; 54 echo "user<input type='text' name='user' size='20' value='".$line[2]."'><br>"; 55 echo "<input type='submit' name='uwagaki' value='上書き保存'><input type='hidden' name='edit' value='" . $edit . "'>"; 56 echo "</form>"; 57 break; 58 } 59 } 60 } 61} 62 63?> 64 65 66<!DOCTYPE html> 67<html lang="ja"> 68<head> 69 <meta charset="utf-8"> 70 <title>簡易掲示板</title> 71</head> 72<body> 73 <h1>簡易掲示板</h1> 74 <form action="" method="POST"> 75 76 message:<input type="text" name="message"> 77 user:<input type="text" name="user"> 78 79 <input type='hidden' name='toukou' value=''> 80 <input type="submit" value="投稿"></br></br> 81 82 83 </form> 84 85 <form action="" method="POST"> 86 削除対象番号<input type="text" name="deleteNo"> 87 <input type="hidden" name="delete" value="delete" /> 88 <input type="submit" name="delete" value="削除"> 89 </form></br></br> 90 91 <form action="" method="POST"> 92 編集対象番号<input type="text" name="editNo"> 93 <input type="hidden" name="editNo" value="edit" /> 94 <input type="submit" name="edit" value="管理者編集"> 95 </form></br></br> 96 97 98<?php 99 100 $file=file($dataFile); // ファイルの内容を配列に格納 101 102 103 foreach( $file as $value ){ 104 105 $line = explode("<>",$value); 106 107 echo $value."<br />\n"; // 改行しながら値を表示 108 109} 110 111?> 112 113 114 115</body> 116</html> 117

試したこと
実行するとNotice: Undefined variable: line in C:\xampp\htdocs\php\keizibann2.php on line 54と出てきて54行目のif ($line[0] == $edit) {を中心に間違っていないか見たものの間違いが見当たりませんでした。
変数の間違いなどによるものなのでしょうか?
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

54行目の if ($line[0] == $edit) { の文を実行している時点では、下の方に記載している$line = explode("<>",$value);はまだ実行されてませんので、54行目時点では$line[0]なんていうものは定義されていない変数(Undefined variable)ですよね?


蛇足

phpで作成中の簡易掲示板のバグが見つからない

バグが見つからないならすべて正常動作してますよね?
適切な(困っている問題を)タイトルとしてください。

投稿2016/11/30 09:23

編集2016/11/30 09:24
Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sumikko6210

2016/11/30 09:35

いただいた答えをもとに解決いたしました。ありがとうございます。 不適切なタイトルにしてしまい申し訳ございませんでした。 更新いたしました。
guest

0

処理が同じなら
$ediData = explode("<>", $ediCon[$j]);
とあるので$ediDataを見ればいいのではないでしょうか

投稿2016/11/30 09:27

date

総合スコア1820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問