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

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

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

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

Q&A

解決済

2回答

1235閲覧

ポストに関するPHPのエラー

rikutahiratsuka

総合スコア16

PHP

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

0グッド

1クリップ

投稿2018/11/24 12:03

ホームページで、データベースに登録した情報を表にして出力するということがしたいのですが、どうしてもエラーが治りません。

php

1<!DOCTYPE html> 2<html lang="en" dir="ltr"> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 </head> 7 <body> 8 <?php 9 $pdo = new PDO("pgsql:dbname=rikuta;host=localhost","rikuta","LLkoO89K"); 10 $st = $pdo->prepare("INSERT INTO aevent VALUES(?,?,?,?,?,?)"); 11 $st->execute(array($_POST['name'], $_POST['day'], $_post['place'], $_post['station'], $_POST['price'], $_POST['comment'])); 12 ?> 13 イベントを追加しました<br> 14 <a href="http://gms.gdl.jp/~rikuta/aevent/aevent_list.php">リストに戻る</a><br> 15 <a href="http://gms.gdl.jp/~rikuta/aevent/aevent_insert.html">イベントを追加</a> 16 </body> 17</html>

テラタームで、調べると、こんな感じのエラーが表示されます。

[rikuta@gms aevent]$ php aevent_insert.php <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title></title> </head> <body> PHP Notice: Undefined index: name in /home/h0/rikuta/public_html/aevent/aevent_insert.php on line 11 PHP Notice: Undefined index: day in /home/h0/rikuta/public_html/aevent/aevent_insert.php on line 11 PHP Notice: Undefined variable: _post in /home/h0/rikuta/public_html/aevent/aevent_insert.php on line 11 PHP Notice: Undefined variable: _post in /home/h0/rikuta/public_html/aevent/aevent_insert.php on line 11 PHP Notice: Undefined index: price in /home/h0/rikuta/public_html/aevent/aevent_insert.php on line 11 PHP Notice: Undefined index: comment in /home/h0/rikuta/public_html/aevent/aevent_insert.php on line 11 イベントを追加しました<br> <a href="http://gms.gdl.jp/~rikuta/aevent/aevent_list.php">リストに戻る</a><br> <a href="http://gms.gdl.jp/~rikuta/aevent/aevent_insert.html">イベントを追加</a> </body> </html>

html

1<!DOCTYPE html> 2<html lang="ja" dir="ltr"> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 </head> 7 <body> 8 <form class="" action="aevent_insert.php" method="post"> 9 名前<br> 10 <input type="text" name="name" value="~フェス"><br> 11 日にち<br> 12 <input type="text" name="day" value="2018-1-1"><br> 13 場所<br> 14 <input type="text" name="place" value="武道館"><br> 15 最寄り駅<br> 16 <input type="text" name="station" value="九段下駅"><br> 17 費用<br> 18 <input type="text" name="price" value="1000"><br> 19 コメント<br> 20 <input type="text" name="comment" value="楽しいイベントです!"><br> 21 <input type="submit" name="" value="公開"><br> 22 </form> 23 <a href="http://gms.gdl.jp/~rikuta/aevent/aevent_list.php">リストに戻る</a><br> 24 <a href="http://gms.gdl.jp/~rikuta/aevent/aevent_insert.html">イベントを追加</a> 25 </body> 26</html>

php

1 2<!DOCTYPE html> 3<html lang="ja" dir="ltr"> 4 <head> 5 <meta charset="utf-8"> 6 <title></title> 7 </head> 8 <body> 9 <table border="1"> 10 <tr> 11 <th>イベント名</th><th>日にち</th><th>場所</th><th>最寄り駅</th><th>費用</th><th>コメント</th> 12 </tr> 13 <?php 14 $pdo = new PDO("pgsql:dbname=rikuta;host=localhost","rikuta","LLkoO89K"); 15 $st = $pdo->query("SELECT * FROM aevent"); 16 while ($row = $st->fetch()) { 17 $name = htmlspecialchars($row['name']); 18 $day = htmlspecialchars($row['day']); 19 $place = htmlspecialchars($row['place']); 20 $station = htmlspecialchars($row['station']); 21 $price = htmlspecialchars($row['price']); 22 $comment = htmlspecialchars($row['comment']); 23 echo "<tr><td>$name</td><td>$day 日</td><td>$place</td><td>$station</td><td>$price</td><td>$comment</td></tr>"; 24 } 25 ?> 26 </table> 27 <a href="http://gms.gdl.jp/~rikuta/aevent/aevent_list.php">リストに戻る</a><br> 28 <a href="http://gms.gdl.jp/~rikuta/aevent/aevent_insert.html">イベントを追加</a> 29 </body> 30</html>

URLはhttp://gms.gdl.jp/~rikuta/aevent/aevent_list.phpです。

もしわかる方いらっしゃったら宜しくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

PHP Notice: Undefined index 〇〇 のエラーについて、
aevent_insert.html内の 公開ボタンでsubmitせずに、テラタームで直接aevent_insert.phpにアクセスしていませんか?
エラーの内容は、
aevent_insert.phpの11行目で、配列に〇〇のindexは定義されていません。という意味合いです。
ここでいう配列は$_POSTです。
テラタームで直接アクセスした場合は、$_POSTには何も定義されていませんのでエラーが出ています。

さて、この11行目で取り出したい配列は
$_POST['name'] $_POST['day'] $_post['place'] $_post['station'] $_POST['price'] $_POST['comment']
ですので、placestationも同じエラーとなるはずですが、間違えて$_postと小文字で書いてしまっていますので、Undefined variable(変数が未定義)のエラーになっています。
phpの変数は大文字小文字を区別しますので、ここは$_POST['place'] $_POST['station'] に直しましょう。

投稿2018/11/24 13:23

編集2018/11/24 14:39
colling

総合スコア798

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

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

kei344

2018/11/24 14:21

回答内の「‘」が全角ですよ。
colling

2018/11/24 14:26

>kei344さん 修正しておきました。 お恥ずかしいw
colling

2018/11/24 14:38

>kei344さん 半角全角の「 ' 」がわかりやすいフォント使ってるんでしょうか?
kei344

2018/11/24 14:53

To: collingさん Windowsなので Meiryo です。
colling

2018/11/24 14:57

そうなんですね。ちょっとwindowsから引っ張ってきて入れてみますw
rikutahiratsuka

2018/11/24 16:09

ありがたいです。早速、試してみます!! 夜勤のバイト中なので、すこしお時間みていただきたいです。 皆さまありがとうございます。
guest

0

解決できました!!迅速な対応と、皆様の温かい丁寧な回答のおかげです。
本当にお世話になりました!!!

投稿2018/11/28 11:42

rikutahiratsuka

総合スコア16

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問