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

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

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

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

Q&A

解決済

1回答

492閲覧

PHPの「Notice: Undefined index」エラーについて

KM46

総合スコア17

PHP

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

0グッド

0クリップ

投稿2019/05/07 03:14

編集2019/05/07 03:17

PHPの一行掲示板で名前が表示できない

「最初に読むPHP」(クジラ飛行机)でサンプルコードを写したところ、
以下のようなエラーメッセージが表示され、名前を表示することができません。

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

Notice: Undefined index: nama in C:\xampp\htdocs\simple-bbs.php on line 20

該当のソースコード

php

1<?php 2 3$save_file = dirname(__FILE__)."/bbslog.txt"; 4 5$mode = isset($_GET["mode"]) ? $_GET["mode"] : "show"; 6switch($mode) { 7 case "show" : mode_show(); break; 8 case "write" : mode_write(); break; 9 default : mode_show(); break; 10} 11 12function mode_show() { 13 show_form(); 14 15 $log = load_data(); 16 print_r($log); 17 echo "<ul>"; 18 foreach ($log as $i) { 19 // $name = isset($_POST["name"]) ? htmlspecialchars($i["nama"]) : ''; 20 $name = htmlspecialchars($i["nama"]); 21 $body = htmlspecialchars($i["body"]); 22 echo "<li><b style='coler:red;'>$name</b>: $body</li>\n"; 23 } 24 echo "</ul>"; 25} 26 27function show_form() { 28 echo <<< __FORM__ 29<form> 30■名前:<input type="text" name="name" size="8" /> 31本文:<input type="text" name="body" size="30" /> 32<input type="submit" value="書く" /> 33<input type="hidden" name="mode" value="write" /> 34</form><hr/> 35__FORM__; 36} 37 38function mode_write() { 39 if ($_GET["name"]== "" || $_GET["body"] == "") { 40 echo "名前か本文が空です。入力してください"; 41 exit; 42 } 43 44 $log = load_data(); 45 array_unshift($log, $_GET); 46 save_data($log); 47 $self = $_SERVER['SCRIPT_NAME']; 48 echo "<a href='$self'>書き込みました‼</a>"; 49} 50 51function load_data() { 52 global $save_file; 53 $log = array(); 54 if (file_exists($save_file)) { 55 $txt = file_get_contents($save_file); 56 $log = unserialize($txt); 57 } 58 return $log; 59} 60 61function save_data($log) { 62 global $save_file; 63 $txt = serialize($log); 64 file_put_contents($save_file, $txt); 65}

試したこと

line 20を、コメントアウトしている部分(line 19)に変更するとエラーメッセージ自体は消えるのですが、名前は相変わらず表示されません。

補足情報(FW/ツールのバージョンなど)

・windows10
・XAMPP

PHPのバージョンは5.2.0です。

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

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

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

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

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

m.ts10806

2019/05/07 03:27

データはどのような形式になっていますか?コード内ではどこにもnameやbodyといった値に対するキーを指定する場所がないように見受けられます。
guest

回答1

0

ベストアンサー

nameではなくnamaになってますね。

投稿2019/05/07 03:27

takara-suc

総合スコア31

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

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

KM46

2019/05/08 01:48

気付けませんでした・・・ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問