POSTでUndefined indexのエラー

このQ&Aのポイント
  • POSTでUndefined indexのエラーが発生しています。
  • ページを表示するとNotice: Undefined index: subというエラーメッセージが表示されます。
  • GOボタンを押すとエラーが消えますが、php.iniの設定が必要なのかもしれません。
回答を見る
  • ベストアンサー

POSTでUndefined indexのエラー

ページを表示すると Notice: Undefined index: sub in C:\apache\htdocs\post.php on line 13 といったエラーがでてしまいます。 <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title></title> </head> <body> <form action="#" method="POST"> <input type="submit" name="sub" value="GO"> </form> <?php print $_POST["sub"]; ?> </body> </html> intoで作ったGOボタンを押すとエラーは消えるのですが、 書き方は間違っていないと思うのずですが、 もしかしてphp.iniの設定が必要?とかでしょうか。

  • PHP
  • 回答数3
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

こんにちは。 >無視しても問題ないエラーということでしょうか。 そもそも「Notice」なので、エラーではありません。 これは警告レベルです。 表示したくなければ、iniファイルで出力させないように設定するか、 if(is_set($_POST["sub"])){ print $_POST["sub"]; } とすればよろしいでしょう・・・。

kiseki777
質問者

お礼

iniファイルでも設定ができるのですね。 有難うございました。

その他の回答 (2)

回答No.2

こんばんは。 単純に、$_POST[]の中には「sub」という文字列のキーが存在しません・・・。 >GOボタンを押すとエラーは消えるのですが はい。 その時には、そのキーが存在するので・・・。

kiseki777
質問者

お礼

そういう意味なのですか。 つまり、無視しても問題ないエラーということでしょうか。

回答No.1

http://www.google.co.jp/search?q=Notice%3A+Undefined+index エラーメッセージでそのまま検索しましょう。

kiseki777
質問者

お礼

$id = $_GET['id']; とする場合、 $id = isset($_GET['id']) ? htmlspecialchars($_GET['id']) : null; というように値があるかどうかを調べる初期化をすれば良いのですね。 それを応用して使っていくと。 有難うございました。

関連するQ&A

  • $error配列がUndefined indexに

    簡単な入力フォームを初心者用の本に沿って作成しているのですが、 入力フォームのチェックで$error配列を使う部分で、 nameがblankかどうか確認する部分で、なぜかnameがNotice: Undefined indexとなってしまいます。 お詳しい方、下記のコードを見て何か原因をお分かりになりますでしょうか? <?php session_start(); if(!empty($_POST)){ if($_POST['name']==''){ $error['name']='blank'; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Upload</title> </head> <body> <form action="" method="post" enctype="multipart/form-data"> <p>次のフォームに必要事項をご記入下さい。</p> <dl> <dt>ニックネーム<span class="required">必須</span></dt> <dd><input type="text" name="name" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'); ?>" /> <?php if ($error['name'] == 'blank'): ?> <p class="error">* ニックネームを入力してください</p> <?php endif; ?> </dd> </dl> </form> </body> </html>

    • 締切済み
    • PHP
  • Undefined index

    PHP のスクリプトで以下のようなエラーが出てしまいます。 エラーを発生させないようにする方法がわかる方がいれば教えてください。 よろしくお願いします。 Notice: Undefined index: id in C:\xampp\htdocs\super\sample.php on line 33 ※33行目は 「 echo "<p>入力値:" . $_POST["id"] . "</p>"; 」です。 ---------------------------------- <html> <head> <title>あ</title> </head> <body> <?php //invatal()関数による変換 $temp_sql = "SELECT * FROM t1 where id=%s"; $id = isset($_POST["id"]) ? intval($_POST["id"]) : ""; $result_sql_intval = sprintf($temp_sql, $id); //sprintf()関数による変換 $temp_sql = "SELECT * FROM t1 WHERE id=%d"; $id = isset($_POST["id"]) ? $_POST["id"] : ""; $result_sql_sprintf = sprintf($temp_sql, $id); ?> <form method="POST" action="<?php echo $_SERVER["PHP_SELF"] ?>"> <table> <tr> <td>ID:<input type="text" name="id" value="<?php echo isset($_POST["id"]) ? $_POST["id"]: "" ?>"> <input type="submit" value="送信" name="sub1"></td> </tr> <tr> </td> </tr> </table> </form> </body> <?php echo "<p>入力値:" . $_POST["id"] . "</p>"; echo "<p>作成されたSQL(sprintf):" . $result_sql_sprintf . "</p>"; echo "<p>作成されたSQL(intval):" . $result_sql_intval . "</p>"; ?> </html>

    • ベストアンサー
    • PHP
  • PHP文法エラーについて

    恐れ入ります。 下記PHP文法で、ブラウザに次のエラーが表示されます。「Notice: Undefined variable: _FORM in C:\xampp\htdocs\Step2Kadai\input.php on line 3」 該当PHP命令文は下記です。 <?php session_start(); $_SESSION['address'] = $_FORM['address']; ?> <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>MF-02 input</title> <meta charset="utf-8"> </head> <body> <h1>MF-02 input</h1> <form action="mf_form.php" method="post"> <p>アドレス: <input type="email" name="address"> <input type="submit" value="送信"></p> </form> </form> </body> </html> 以上。エラーメッセージのline 3は、$_SESSION['address'] = $_FORM['address']; のところです。 ご指摘をよろしくお願い致します。

    • ベストアンサー
    • PHP
  • $_POST変数が受け取れない。

    いつも大変お世話になり誠にありがとうございます。 度々申し訳ございません。 標記の件。 $_POST変数が受け取れません。 一昨日はこれで行けたと思ったのですが var_dump()で調べたらNULLでした。 どうして$_POST変数が受け取れないのでしょうか? すみません。どうか教えてください。 エラーメッセージは Warning: Undefined array key "name" in C:\xampp\htdocs\blog_create.php on line 11 Warning: Undefined array key "title" in C:\xampp\htdocs\blog_create.php on line 12 Warning: Undefined array key "category" in C:\xampp\htdocs\blog_create.php on line 13 Warning: Undefined array key "content" in C:\xampp\htdocs\blog_create.php on line 14 ペンネームブログタイトルカテゴリー 本文 です。 コードは form.php <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <?php if( $mode=='input'){} ?> <h2>ブログフォーム</h2> <form action="/blog_create.php/" method=_POST> ペンネーム<br> <input type="text" name="title"><br> ブログタイトル<br> <input type="text" name="title"><br> カテゴリー<br> <input type="text" name="title"><br> ブログ本文<br> <textarea name="content" id="content" cols="50" rows="80"></textarea><br> <input type="submit" value="確認ページへ"> </form> <p><a href="/">戻る</a></p> </body> </html> blog_create.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Blog</title> </head> <body> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); //$post_at = $_POST["post_at"]; echo "ペンネーム{$name}"; echo "ブログタイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <input type="submit" action="/kanryou.php" value="送信する"> </body> 後退してしまいました。 すみません。 ご回答のほど何卒宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • $_POSTが、上手くできません。。

    PHP勉強中の初心者です。 簡単な教材で勉強しているのですが、何度やっても上手く行かない部分があり、質問させて頂ければと思います。 やりたい事としては、「form.html」で入力した内容を、$_POSTで「view.php」に表示をするということです。 上手くいっていない処理としては、「form.html」のフォームから文字を入力し、「view.php」で、『○○さん、こんにちは』と表示がしたいのですが、実際には、「form.html」に文字を入れて送信すると、「view.php」の全ソースがブラウザ上で、表示されてしまいます。 こちらは、どのようにすれば、『○○さん、こんにちは』という風に表示することが出来ますでしょうか?php自体の設定に問題があるのでしょうか? もしお分かりになる方がいらっしゃれば、ご教授いただけると幸いです。宜しくお願い致します。 ■form.html <HTML> <HEAD> <TITLE>テキスト送信のテスト</TITLE> <META http-equiv="Content-Type" content="text/html; charset=Shift-JIS"> </HEAD> <BODY bgcolor="#FFFFFF" text="#0000000"> <FONT size="4">テキスト送信のテスト</FONT> <FORM name="form1" method="post" action="view.php"> 名前:<BR> <INPUT type="text" name="onamae"> <BR> <INPUT type="submit" value="送信"> </FORM> </BODY> </HTML> ■view.php <html> <head> <title>PHPのテスト</title> </head> <body> <?php print $_POST["onamae"]. "さん、こんにちは"; ?> </body> </html>

    • ベストアンサー
    • PHP
  • POSTされた値をEUCで表示したい

    <?php echo '<html><head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> </head> <body> <form action="test2.php" method="POST"> <input name="str1" value="テストです"> <input type="submit"> </form> </body></html>'; exit; } ?> こうして送信されたデータは <?php echo '<html><head> <meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS"> </head><body>'; echo $_POST['str1']; ・・・・・ として表示しますが、このままのテストソースではSJISで普通に表示されますが、EUCで表示するにはWindowsの中のphp.iniを編集すればよいと思います。 どのようにすればよいですか? test2.phpが・ニ・ケ・ネ、ヌ、ケと表示したら成功です。

    • 締切済み
    • PHP
  • PHP文法エラーについて

    はじめて、お世話になります。よろしくお願い致します。 プログラム文は後述致しますが、実行すると、ブラウザに下記エラーが表示されます。何のエラーで、どこを直せば、よいのでしょうか? Parse error: syntax error, unexpected ';', expecting ',' or ')' in C:\xampp\htdocs\Step2Kadai\kakunin.php on line 16 kakunin.php on line 16のところは、 echo htmlspecialchars($_SESSION['mail']; です。 [input.php] <?php session_start(); $_SESSION['address'] = $_REQUEST['address']; ?> <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>MF-02 input</title> <meta charset="utf-8"> </head> <body> <h1>MF-02 input</h1> <form action="mf_form.php" method="post"> <p>アドレス: <input type="email" name="address"> <input type="submit" value="送信"></p> </form> </form> </body> </html> [mf_form.php] <?php session_start(); $_SESSION['mail'] = $_REQUEST['mail']; ?> <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>MF-02 form</title> <meta charset="utf-8"> </head> <body> <h1>MF-02 form</h1> <p><a href="kakunin.php">確認<?php echo htmlspecialchars($_SESSION['mail']); ?></a></p> </body> </html> [kakunin.php] <?php session_start(); ?> <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>MF-02 kakunin</title> <meta charset="utf-8"> </head> <body> <h1>MF-02 kakunin</h1> <p>アドレス: <?php echo htmlspecialchars($_SESSION['mail']; ?>) <?php </p> </body> </html> 以上です。よろしくお願い致します。

    • ベストアンサー
    • PHP
  • $_POSTの内容をMySQLに保存するには?

    いつも大変お世話になり誠にありがとうございます。 度々申し訳ございません。 標記の件。 エラーメッセージは Parse error: syntax error, unexpected identifier "into", expecting ")" in C:\xampp\htdocs\kanryou.php on line 9 です。 コードは先ほども提示したように blog_create.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Blog</title> </head> <body> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); echo "ペンネーム{$name}"; echo "ブログタイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <form action="/kanryou.php" method=""> <input type="submit" value="送信する"> </form> </main> </body> kanryou.php <?php require_once(blog_create.php); try{ $db = new PDO('mysql:dbname=blog_app;host=localhost;charset=utf8','root'); $count = $db->exec(INSERT into blog (id,name,title ,category ,content,post_at) ($_POST["id"],$_POST["name"],$_POST["title"],$_POST["category"],$_POST["content"],$_POST["post_at"]){ echo 'DB接続エラー' . $e->getMessage(); } </main> </body> echo "送信完了です。ありがとうございました。"; ?> 本当に申し訳ありません どうか教えてください。 どこを直せばいいでしょうか? ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • MySQL
  • エラーメッセージについて

    Parse error: syntax error, unexpected $end in C:\xampp\htdocs\check.php on line 25 とでますが、line 25(一番下の行)が間違っていると言われ、プログラムさえ書いていません。 PHPを学ぶチャレンジをしている最中です。下記のように書きました。 -------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php $nickname=$_POST['nickname']; if($nickname==") { print'ニックネームが入力されていません'; } else { print'ようこそ'; print $nickname; print'様'; } ?> </body> </html> -------- この下が line 25 です。 よろしくお願いいたします。

  • POSTでwarning!

    いつも大変お世話になり誠にありがとうございます。 また、同じような質問で申し訳ありません。 標記の件。 ブログフォームのソースは下記です。 表示のソースも下記です。 どうすれば表示されるでしょうか? ご回答のほど宜しくお願い申し上げます。        記 <h2>ブログフォーム</h2> <form action="blog_create.php" method=_POST> <label>ペンネーム:</label> <input type="text" name="name" value=""><br> <label>タイトル:</label> <input type="text" name="title" value=""><br> <label>カテゴリー:</label> <input type="text" name="category" value=""><br> <label>ブログ本文:</label><br> <textarea name="content" id="content" cols="50" rows="80"></textarea><br> <input type="submit" value="確認画面へ"> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); echo "ペンネーム{$name}"; echo "タイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <input type="submit" action="/kanryou.php" value="送信する"> Warning: Undefined array key "name" in C:\xampp\htdocs\blog_create.php on line 13 Warning: Undefined array key "title" in C:\xampp\htdocs\blog_create.php on line 14 Warning: Undefined array key "category" in C:\xampp\htdocs\blog_create.php on line 15 Warning: Undefined array key "content" in C:\xampp\htdocs\blog_create.php on line 16 ペンネームタイトルカテゴリー 本文

    • ベストアンサー
    • PHP

専門家に質問してみよう