- ベストアンサー
POSTでwarning!
- ブログフォームのPOST送信時にUndefined array keyのwarningが表示される
- 質問文章から表示されないブログフォームの原因を調べる方法を教えてください
- ブログフォームのソースコードの一部を表示させる方法を教えてください
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
回答No.4さま、私が気になっていた点について回答くださってありがとうございます。 ほおっておいてよさそうですね。 「データベース吹っ飛ばす運命が待って」そうですね。 それでと、質問者さまへ。 いろいろ問題個所はありそうですが、まずは、こちらを直してください。 method=_POST → method="post" 以前、属性値の書き方とその値にどのようなものがあるかの理解をお願いしました。 どの属性のどの値とはっきり言わなかったのがいけなかったのか通じてないようなので。 以下のサイトのmethod属性のところを確認しておいてください。 http://www.htmq.com/html5/form.shtml
その他の回答 (5)
- dell_OK
- ベストアンサー率13% (766/5720)
もしこのファイルが前回質問されたform.phpだとしたら、 このページに飛んでくるのは以下のようなリンクからですよね。 ---- <h2><a href="form.php">Blog K.T</a></h2> ---- これだとform.phpではgetの扱いになり、 $_POSTでは参照できないため、 ワーニングになっているのではないでしょうか。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
#3さん <input type="submit" value="確認画面へ"> <input type="submit" action="/kanryou.php" value="送信する"> これは、意外に大丈夫ですよ。 不要なメソッドは無視されるだけとの決まりがあるので <input type="submit" value="確認画面へ"> <input type="submit" value="送信する"> 単に、submitが2個あるだけで、動作は同じですね。 むしろというか答えは「アンスコ」です。 GETでもPOSTでもない、methodの「デフォルト」側に つながってるのが原因みたいですから。 ついでに言えば、 $content = nl2br($_POST["content"]); ここも、私ならやらないな。 生パラメタをこの位置で破壊するのは、よくないでしょうね。 表示するターンでだけやって、変数にはそのままが望ましいのと、 issetなどで存在確認バリデしてからの方がいいでしょうね。 ↑これが原因で、この後この人データベース吹っ飛ばす運命が 待ってるが、それも勉強なので、今は教えないでおきます。 きっちり、バリデとエスケープをするようになれば、 何かには気が付いてもらえるかなってね。 ってことで、今回の回答は <input type="submit" value="確認画面へ"> <input type="submit" action="/kanryou.php" value="送信する"> この2行は「問題はありません」の投稿になります。
- dell_OK
- ベストアンサー率13% (766/5720)
ちょっちょっちょっ。 前回の質問 https://okwave.jp/qa/q10045433.html が締め切られてしまったので補足しておきます。 メッセージがなかったので解決したのかどうかわかりませんが、「あ、表示された」と済まさないでください。 質問者さまのローカル環境では表示されたかも知れませんが、私は意地悪な回答をしたので、あのままサーバーにアップロードしても他の閲覧者にはエラーが表示されてしまいます。 正しいと言うかあるべき書き方については、回答No.6さまの回答をよく読まれて理解し、書き直してください。 それでと。 今回の質問もですが、回答No.2の教えてくださったサイトの情報もよく読まれて理解しておいてください。 warningの前に気になることがあります。 ファイル名は不明ですが、掲示されたコードはひとつのファイル内ですよね。 ワーニングの行番号からそうだろうと思っています。 ---- <form action="blog_create.php" method=_POST> ~ <input type="submit" value="確認画面へ"> ~ <input type="submit" action="/kanryou.php" value="送信する"> ---- 気になっているのは、送信ボタンがふたつあること。 ふたつめの送信ボタンですが、inputタグにaction属性は指定できません。 formaction属性を使えばform要素のaction属性を上書きできますが、そのような目的を質問者さまがお持ちではないと思っています。 もしそのような目的だとしたら、送信先の"blog_create.php"と"/kanryou.php"の使い分けがあるのでしょうか。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
ひとまず、 https://developer.mozilla.org/ja/docs/Learn/Forms/Sending_and_retrieving_form_data 1回読んでわからなければ、100回読む! 次に、あなたが今POSTをしたいってなら、 ちゃんと、Payloadを確認する! いつものように、PHPが~って思ってるうちは 解決しない。1点を見るのをそもそもやめる事! 今回のは「そもそも送られてすらいない」 送られてない物をPHPが受け取れるか? って話。つまりPHPは無関係! なのに、PHPだけをあなたは見た。 これが、原因です。 プログラムする前にプログラムのやり方を 覚えないと、永遠に同じミスしますよ。 (これは、事実です)
- AsarKingChang
- ベストアンサー率46% (3467/7474)
だから!!! 前回 <form action="blog_create.php" method=_POST> ここ直せっていったっしょ! 回答の、ある一点だけを見るんじゃなくて、全体も見ないと! そんだけで治りますけどね。逆に言えば。