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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

Q&A

解決済

2回答

1174閲覧

Notice: Undifined index

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

0グッド

0クリップ

投稿2018/07/24 05:40

前提・実現したいこと

プログラミング&teratail超初心者です。
PHPで掲示板を作っているのですが、Notice: Undifined indexというのが出てどうすれば良いか分かりません。

発生している問題・エラーメッセージ

Notice: Undefined index: id in /var/www/www/index.php on line 83
<br /><b>Notice</b>: Undefined index: title in <b>/var/www/www/index.php</b> on line <b>86</b><br />
Notice: Undefined variable: error in /var/www/www/index.php on line 87
<br /><b>Notice</b>: Undefined index: user_name in <b>/var/www/www/index.php</b> on line <b>94</b><br />
Notice: Undefined variable: error in /var/www/www/index.php on line 96

該当のソースコード

<?php var_dump($_POST); require_once('dbconnect.php'); if (!empty($_POST)) { $statement = $db->prepare('INSERT INTO rooms SET title=?, user_name=?, modified=NOW(), created=NOW()'); $statement->execute( array( $_POST['title'], $_POST['user_name']) ); header('Location: http://192.168.2.52/index.php'); exit(); } $posts = $db->query('SELECT id, title, user_name, modified FROM rooms ORDER BY modified DESC'); ?> <!DOCTYPE html> <html lang="ja" dir="ltr"> <head> <meta charset="utf-8"> <title>掲示板</title> <link rel="stylesheet" href="stylesheet.css"> </head> <body> <div id="wrap"> <header> <a href="index.php"><h1>掲示板</h1></a> <div align="right"><?php echo date('Y/m/d') ?></div> </header> <div class="contents"> <div class="rooms-list"> <table> <tr> <tr><th align="left">タイトル</th> <th align="right">ルーム作成者</th> <th align="right">最終投稿日</th></tr> </tr> <?php foreach ($posts as $post): ?> <tr class="room-detail"> <td align="left"><a href="room.php?room_id=<?php echo htmlspecialchars($post['id'], ENT_QUOTES); ?>"><?php echo htmlspecialchars($post['title'], ENT_QUOTES); ?></a></td> <td align="right"><?php echo htmlspecialchars($post['user_name'], ENT_QUOTES); ?></td> <td align="right"><?php echo htmlspecialchars($post['modified'], ENT_QUOTES) ?></td> </tr> <?php endforeach; ?> </table>
</div> <div class="room-Registration"> <form action="index.php" method="post" > <h3>ルーム登録</h3> <ul> <input type="hidden" name="id" /> <?php echo htmlspecialchars($_POST['id'], ENT_QUOTES); ?> <li align="left"> <label align="left">ルーム名</label> <input type="text" name="title" size="35" maxlength="20" /> <?php echo htmlspecialchars($_POST['title'], ENT_QUOTES); ?> <?php if ($error['title'] == 'blank'): ?>  <p class="error">* 必ず入力してください</p> </li> <?php endif; ?> <li align="left"> <label align="left">名前</label> <input type="text" name="user_name" size="35" maxlength="20" /> <?php echo htmlspecialchars($_POST['user_name'], ENT_QUOTES); ?> <input type="submit" value="登録" class="square_btn"/> <?php if ($error['user_name'] == 'blank'): ?> <p class="error">* 必ず入力してください</p> <?php endif; ?> </li> </ul> </form> </div> </div>
</div> </body> </html>

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

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

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

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

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

guest

回答2

0

ベストアンサー

noticeなので調整次第でしょうけど

PHP

1<?php echo htmlspecialchars($_POST['id'], ENT_QUOTES); ?>

のところを、とりあえずこうしてみてください

PHP

1<?php echo htmlspecialchars(filter_input(INPUT_POST,'id'), ENT_QUOTES); ?>

これで問題ないなら、$_POSTなどスーパーグローバル変数は直接参照せず

PHP

1$id=filter_input(INPUT_POST,'id');

のように変数に受けてから作業をされることをおすすめします

投稿2018/07/24 05:59

yambejp

総合スコア114779

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

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

退会済みユーザー

退会済みユーザー

2018/07/24 06:59

試してみたら、エラーが消えました!! 曖昧な質問でしたが丁寧に答えて頂きありがとうございました!!
guest

0

原因になっているファイル名及び行数もエラーに記載されているので、
下記参照しつつ確認してみてください。

参考

投稿2018/07/24 05:47

編集2018/07/24 06:28
terrace

総合スコア249

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

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

terrace

2018/07/24 06:28

これは失礼しました。ご指摘ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問