• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:NoticeとUndefined index)

NoticeとUndefined index: name

このQ&Aのポイント
  • アンケート項目が空欄ではなく、Notice Undefined index: nameという文字列が入るのかが、よく分かりません。
  • 性別のところが未定義の関数になるのかが分かりません。
  • アンケート項目が空欄ではなく、Notice Undefined index: nameという文字列が入るのかが、よく分かりません。性別のところが未定義の関数になるのかが分かりません。

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

  • ベストアンサー
noname#244856
noname#244856
回答No.2

まずこちらをお読みください。 http://d.hatena.ne.jp/sagra-da/20120405/1333587852 非表示にする方法。 http://daisuke-watanabe.com/4/ 但しこの方法に頼らずに、エラーを出さないようなコーディングをすることを「強く」推奨します。 なぜアンケートの入力エリアにエラーが入り込むのか? 答えは簡単。 「<input … value="」 と出力した直後にエラーが発生しているから。 e関数は何をしているのでしょうか? 恐らく $str = htmlspecialchars($str,ENT_QUOTES); この辺りではあるとは思いますが…(そうと仮定します) 以上を踏まえて私ならこう書きます。 http://ideone.com/DPbS7D debug_backtrace関数でなにやらややこしいことしてる箇所がありますが、 func_get_args関数を使うと引数が参照渡しで取れないので仕方なく代用しているだけです。 引数の頭($の前)に1つずつ「&」をつけて参照渡しにしてもいいですが、何個でも受け取れるようにしたほうが使いまわしが利くと思ったので。

dradra33
質問者

お礼

To_aru_Useさま ご回答ありがとうございます! No.3に補足質問をしております。 こちらもご確認いただければ 幸いです。

すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#244856
noname#244856
回答No.3

回答訂正します。 先ほどのdebug_backtraceを使ったNULL初期化関数がうまく機能していないことが分かったので、これは省いてください。 1つずつissetでチェックして初期化してください。

dradra33
質問者

お礼

たびたびのご回答ありがとうございます!

dradra33
質問者

補足

この場合isset関数をどのように使えばよいでしょうか? まだ参考書のコードをを「写経」している段階なので、 コードが思いつきません。恐れ入ります。 変数が存在するかどうかの判別(isset) http://www.phpbook.jp/func/var/index4.html なお、e関数のコードはEncode.phpとして 次のように記述しています。 <?php function e($str, $charset = 'UTF-8') { return htmlspecialchars($str, ENT_QUOTES, $charset); }

すると、全ての回答が全文表示されます。
  • pa_cotta
  • ベストアンサー率43% (25/58)
回答No.1

どちらもsession変数にname, sexという要素がありませんよ、というエラーメッセージです。 var_dump($_SESSION);で適度にsession変数の中身を確認してみるといいかと思います。 多分session変数に代入するところが間違ってると思われます。 あと、$SESSION['sex']って書いてますが、$_SESSION['sex']じゃないとダメですよね。

dradra33
質問者

お礼

pa_cottaさま ご回答ありがとうございます! 補足もご確認いただければ助かります。

dradra33
質問者

補足

>var_dump($_SESSION);で適度にsession変数の中身を確認 というのは、このサイトにあるようなことを すれば良いのでしょうか? var_dumpではなく、echoが使われていますが。 ドットインストール #07 セッションを使ってみよう http://dotinstall.com/lessons/basic_php_advanced/6907

すると、全ての回答が全文表示されます。