初コメント失礼します! 9:45 のところで名前を入力しなかったときは正常に作動するのですが、何かしら入力すると下のようなエラーが出ます。 Warning: Undefined array key "name" in C:\xampp\htdocs\index.php on line 30 一度完成したものからコピーもしてみましたがおなじでした。原因を教えていただけると嬉しいです。
よろしくお願い致します。接続できていたのですが、急に php -S localhost:8888とすると The requested resource / was not found on this server.と出てしまい。接続できませんでした。以前MAMPを導入してwordpressをインストールしたことがあったのですがそれが原因でしょうか?MAMPの設定で何か変更する必要がありますか?
udemyの方でも学習させていただいております。 質問なのですが、 value="を追加すると「 Fatal error: Uncaught Error: Cannot use object of type WP_Post as array in〜」のエラーが出てきてしまいます。 こちら何か対処方法はありますでしょうか?
いつもUdemyでも学習させていただいております! 質問です。FILTER_SANITIZE_STRINGを記入しますと 「Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in 〜」とエラーが出てしまいます。使用しているのはphp8です。エラーについてご教授いただけますと助かります!
index.phpの13行目、else if (!filter_var($_post['email'], FILTER_VALIDATE_EMAIL))のところで、たにぐちさんの書いた場合は正常に動作していましたが、私の場合は、else if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))とpostをPOSTと書き替えたら正常に動作したのは何故でしょうか。
12:34でFILTER_SANITIZE_STRINGとしたところが$_POSTに変わってるのは何でですか?
あぁ、ごめんなさい。これ実は映像が前後していて、途中まで間違えて打ち込んでいたので前に戻って治したのですが、その後の動画で直っていない動画が使われていました・・ 恐れいりますが、その部分は見ないで頂けると幸いです! すみませんー
ちょうどudemyのPHPの講座が終わったタイミングだったので、内容がわかる、ここで教わったことをudemyのコードでも試せる、新しい知識も増えるというとても最高のタイミングで学ぶことができとても感謝しています。
これからも素敵な動画お待ちしております!
良かったです! ありがとうございます!
サクサク見れるのに、非常にわかりやすい説明で、ためになる動画でした!
今後の動画もとても楽しみにしております!!
ありがとうございます。
ありがとうございます! またこんな動画撮影しますねー
めちゃめちゃわかりやすかったです!が、
まだまだ自分には難しいのでたくさんリピートしたいと思います!
こういう動画出してもらえることがほんとにありがたいです!いつもありがとうございます😭✨✨
なんてわかりやすい!
ありがとうございます
ネットで調べてもあまり分からなかったので、細かいところまで説明ありがとうございます泣
うれしいお言葉! ありがとうございます!
このまとめは非っ常〜に助かります!😂
併せて、フォーム作成時のセキュリティの参考のため、CSRF攻撃などのお話も聞きたいです。
いいですね。CSRF攻撃対応のメールフォームを作る的な内容でちょっと考えてみます!
@@tomosta
いつもリクエストに柔軟に応じていただきありがとうございます!
フォームのセキュリティ対策は、どこまでやれば世にリリースするために差し支えのないレベルに達するのか、初心者は想像が難しいです…
CSRF対策やXSS対策など、「一般的にはこれくらいの対策が施されている」というポイントのまとめがあると、僕を含めて皆さん重宝するのではないかと思いました🙌
すごくわかりやすい内容で大変勉強になりました。ありがとうございました。
ありがとうございます!
すごいわかりやすいです。
ありがとうございます!
とてもためになる動画でした。
ありがとうございます!
おぉ、良かったです! ありがとうございます!
入力チェックを作るの説明通りにコードを書いたのですが、なぜかUndefined array key "name"のエラーが更新した時から出てしまいました...]
こちら、PHPのバージョンの違いによるものかも知れません。エラーチェックのところで
if (isset($post['name']) && $post['name'] ...
と「isset($post['name'])」を書き加えてみて頂けるとエラーは出なくなるかなと思います!
非常に参考になりました!ありがとうございます!reCAPTCHAと合わせた設定も教えてほしいです!
ありがとうございます! reCAPTCHAも最近バージョンが変わったりしてますよね。ちょっとチェックしてみます!
解説とてもわかりやすくて勉強になりました。ありがとうございます。
いろんなサイトを見てましたが、ともすたさんが一番わかりやすかったです。
学校で、データベースにアクセスするのは習ったことあったのですが、
忘れてしまってました(^^;
メールで転送するのは知らなくて、勉強になりました。
ありがとうございます。
以下の記述が抜けていましたね。
mb_language("ja");
mb_internal_encoding("UTF-8");
ありがとうございます! なかなか動画出せてないですが、頑張って作りますー
たまたま、未入力項目にエラーを吐くという機能を探していたのでドンピシャな内容に助かりました。ありがとうございます。わかりやすい説明にも感謝です。(^^)
おぉ、良かったです!
いつも楽しく勉強させていただいております、ありがとうございます。
動画の10分ぐらいのところで 名前をいれて確認ボタンを試してみたところ
Notice: Undefined index: name in・・・・ という文字が表示されてしまうのですが理由がわかりませんでした。
Noticeというエラーメッセージは、サーバーの設定によって表示されてしまうのですが、これは表示されてもそれほど問題はないので、気にしないでいただくか表示を抑えてしまっても良いと思います。「php notice 表示しない」などで検索して見てくださいー
初コメント失礼します!
9:45 のところで名前を入力しなかったときは正常に作動するのですが、何かしら入力すると下のようなエラーが出ます。
Warning: Undefined array key "name" in C:\xampp\htdocs\index.php on line 30
一度完成したものからコピーもしてみましたがおなじでした。原因を教えていただけると嬉しいです。
こちら、PHP8からエラーの基準が厳しくなったため、メッセージが表示されてしまいますね。設定で、メッセージを抑えるか、いかにようにプログラムを書き換えると回避できます。
if ( isset($error['name']) && $error['name'] === 'blank') {
エラーが表示される箇所にいずれも「isset(...) &&」というのを加えていただくと、セットされているかどうかを先に検査できるようになりますー!
@@tomosta 返信ありがとうございます!
issetで試したのですがダメでした😭自分なりに調べて似た関数のemptyをissetのところに入れてみたところ無事動作しました!
@@soda_tansan 検証せずに回答してしまったので、失礼しました! 解決したようでなによりです!
Udemyの方でも勉強させていただいております。
質問なのですがselectの項目が必須の場合、どのようにして入力確認できますか?
動画の用な感じでやってみたのですがうまくいきません。
お時間ある時にお返事頂けたら嬉しいです
これからも動画楽しみにしてます!!
PHP初心者で、こちらの動画が非常に勉強になりました!!ありがとうございます!
そして、1点だけお願いがございまして。。
ラジオボタンの場合のエラーメッセージの表示方法をご教示いただけないでしょうか。
お忙しいところ、恐縮ですが、よろしくお願い申し上げます。。
ラジオボタンを必須項目にしたいということですかね? その場合、ラジオボタンを選ばなければ $_POST['****'] が渡ってこないので、
if (!is_set($_POST['****'])) {
echo 'ラジオボタンを選んでください';
}
とすれば、チェックできるかと思います
@@tomosta 早速ご回答いただき、ありがとうございます!!ラジオボタンを必須にしたいということです!
if ($post['****'] === '') {
$error['****'] = 'blank';
}
に代入する認識でよろしかったでしょうか?
そもそもそのくらい自分でわからなければならないのかもしれませんが、、
もしよかったらお返事いただけますと幸いです。
@@komesuke6713 そうですね、$errorに入れて、今度はその変数の内容を確認して、エラーメッセージを出すという流れになるかと思いますー!
@@tomosta わかりやすくご説明いただき、ありがとうございます!
いただいた方法で試してみようと思います!
トークン生成を組み込みたいのですが、上手く動きません。
indexとconfirmところに、
if(!isset($_SESSION['form']) || !isset($post['token']) && $post['token'] !== $_SESSION['token']){
header('Location: index.php');
exit();
}else{
$post=$_SESSION['form'];
}
と変えてみたのですが、上手く動きません。
どうしたら良いですか?
お手数ですが、よろしくお願いします。
度々のご質問失礼いたします!別の箇所でお聞きしたいのですが...
エラーメッセージ出す部分でカラでエラーの際に「※お名前をご記入ください」のテキストが表示することは出来たのですが、
名前を入力した場合「Warning: Undefined array key "name" in〜」というエラーが出てしまいます...(泣)ご教授いただけますでしょうか?お忙しい中申し訳ございません!!
こちら、PHPのバージョンアップによってWarningが出る条件が厳しくなっているんですよね。配列の要素を取得するときに、キーがないものを取得しようとするとWarningが出てしまうので、このあたりを参考にしていただけると!
wingdoor.co.jp/blog/%E3%80%90php%E3%80%91undefined-offset-%E6%9C%AA%E5%AE%9A%E7%BE%A9%E3%81%AE%E9%85%8D%E5%88%97%E5%8F%82%E7%85%A7%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
@@tomosta バージョンアップによるエラーなど色々躓く条件が出てくるんですね...一筋縄ではいかないあたりがプログラミング!って感じで燃えて来ました!諦めないで頑張ってみます!参考サイト、教えてくださり感謝致します!!
よろしくお願い致します。接続できていたのですが、急に php -S localhost:8888とすると The requested resource / was not found on this server.と出てしまい。接続できませんでした。以前MAMPを導入してwordpressをインストールしたことがあったのですがそれが原因でしょうか?MAMPの設定で何か変更する必要がありますか?
こちら、ターミナルの方により詳しいエラーメッセージは出ていませんか? 以下などに似た現象がありました!
qiita.com/aisplay/items/360fe2b6d0d4f9bf5518
@@tomosta いつもわかりやすい解説動画ありがとうございます。上の方と同じ内容の質問なのですが、私もおそらくphpをプロセス終了していなかった事により404エラーが出ているのだと思います。ただ、それが大量にあるらしいので、複数同時の強制終了を行いたいのですが、可能でしょうか。
@@GB-lu9jg 404エラーは、ファイルが見つからなかったときに発生するものなので、おそらくプロセス周りよりは作ったファイルが保存されていないとか、場所が違うとかの問題の方が可能性が高そうに思います! 複数プロセスを終了するのはコマンドでももちろんできますが、コンピューター自体を再起動しちゃうのが一番早くて確実です!
非常に分かりやすく勉強になりました!
質問なのですが、
FILTER_SANITIZE_STRINGのところ、
$_POSTを直接参照のするのは危険で、フィルターをかけて取得しましょう
ってことでしたが、
結局今回はフィルターをかけていないと思うので、$_POSTの複数のデータを一括で取得するための処理って認識で良いでしょうか?
また実際にフィルターをかける場合はどのようにしたら良いでしょうか?
よろしくお願いします。
「結局今回はフィルターをかけていない」というのはどこでそう感じられましたか? 私の動画に抜けがあるかもですが、filter_inputはかけております!
2年前の動画にコメント失礼します!こちら10分5秒までを同じようにコード書いたのですが、文字が何も入ってない際には設定したエラーメッセージが出てくるのですが、入力した際に「undefined array key "name"」と出てきます…何か対処法はありますでしょうか?
入力したときに undefinedと出てくるのでしょうか? キーが間違えているとか? Slackのコミュニティにソースコードなどを共有いただければ、見ることができるかもしれません。
tomosta.jp/community
udemyの方でも学習させていただいております。
質問なのですが、
value="を追加すると「 Fatal error: Uncaught Error: Cannot use object of type WP_Post as array in〜」のエラーが出てきてしまいます。
こちら何か対処方法はありますでしょうか?
こちら「$post」は配列じゃないよ? というエラーなのですが、たぶん「$post->name」の書き間違いかと思います!
@@tomosta
ご返信ありがとうございます。
WordPressの固定ページでお問合せフォームを作りたいと思い、こちらの動画を参考にさせていただきましたが、どうもうまく行かず…
試しにたにぐち様が配布されておりますコードを固定ページのテンプレートにコピペしてみたところ、同じエラーが発生してしまいました…(Local by Flywheelを使用しています)
WordPressだとうまく作動しないということはあるのでしょうか?
何度も質問してしまいすみません…
@@mosada1279 こちら、ご指摘の通りでPHPのプログラムがなんでもWordPress動くという訳ではありません。今回のケースは、おそらく「$post」という変数を別の用途で使っているのが、WordPressは他の用途で使っているのでぶつかっているのだと思います。この変数の名前を変えれば、ひとまずは回避できますが、いずれにしても動作する訳ではないので、「WordPress」についてを学習しないとダメそうに思います。
ちなみに、お問合せフォームはプラグインなどがあるので、自作するよりもそちらを使った方が安全性も含めて良いかと思います!
@@tomosta なるほどです…
wpでのお問合せフォーム自作にかなり手間取っていたので、プラグインでも試してみたいと思います。
ありがとうございます!
いつもUdemyでも学習させていただいております!
質問です。FILTER_SANITIZE_STRINGを記入しますと 「Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in 〜」とエラーが出てしまいます。使用しているのはphp8です。エラーについてご教授いただけますと助かります!
こちら、FILTER_SANITIZE_STRINGはPHP8から使われなくなったみたいです。この動画は7以前に撮影したものなので、8以降の場合はfilter_inputを利用しないか、別のパラメーターを使ってくださいませ!
@@tomosta お忙しい中ご返信いただき感謝致します!
ありがとうございます!8以降の場合、具体的にどように記述をすれば良いのかご教授いただけますと幸いです!別のパラメーターとの事で調べてみましたが、難しく、、つまずいております...
@@mama-nq1dq こちら、特に「これ」というものに置き換わるものではないです。受け取りたい内容によって、非推奨になっていないパラメーターで別のものを使うか、またはフィルターはせずに受け入れるかが変わってきます。
公式ドキュメントでは、FILTER_SANITIZE_STRINGを使うようなケースの場合は表示時にhtmlspecialcharsを使ってくださいと案内されています。
www.php.net/manual/ja/filter.filters.sanitize.php
www.php.net/manual/ja/function.htmlspecialchars.php
このあたりはたぶん、「やり方」として覚えようとせず、「なぜサニタイズが必要なのか」「サニタイズをするとどう安全になるのか、しないとどう危険なのか」という根本を理解してから使って頂いた方が良いかと思います!
@@tomosta 谷口様 ご丁寧かつ親切なご返信に感謝致します!一つ一つ理解し試してみたいと思います!お忙しい中本当にご返信いただきありがとうございました!これからも躓きながらも知識を増やして頑張ります!
いつもわかりやすい動画をありがとうございます。質問がありメッセージさせて頂きました。こちらをLPに実装したのですが、それ以降サイトがローディングされた直後にお問い合わせに勝手にスクロールしてしまいます。考えられる原因などあれば教えていただきたいです。
ブラウザーのアドレス欄をご覧頂きたいのですが、最後が「#contact」など、シャープ記号で始まっていませんか? その場合、勝手にスクロールされるので外してアクセスしてみて頂けると幸いです。ご確認くださいませ。
現在ホームページ作成を知人に頼まれていて、お問い合わせフォームの部分の作成に困っていたので、とても勉強になりました。
そこで質問なのですが、今回の動画で勉強したものを参考にお問い合わせフォームを作成しているのですが、こちらそのまま使用してもセキュリティ上の問題などないのでしょうか?
あと、フォームに入力中に別タブでお問い合わせフォームにアクセスすると、入力内容が残ってしまうのですが、何か対応などありますでしょうか?
こちら、本動画のプログラムはあくまで学習用でして、セキュリティなどに関しては別途学習していただく必要があります。
個人情報を扱いますので、曖昧な知識で自作プログラムなどは作らないほうが良いかと思い、外部の問い合わせフォームサービスを使っていただくとか(Google Formなど)、WordPressでしたらお問い合わせのフォームなどを使っていただいたほうが良いかと思います。
谷口さんのクッキング動画は、簡単に作成できてサクッと動作して、とてもわかりやすいです。
それはそれとしまして、谷口さんが、「chocolateyは、個人では無償ということですけど、企業では有料になってしまうので注意してください」とお話されていましたけど、企業で使うと有償利用となってしまいますでしょうか?
たとえば、Node.jsのインストール時に、chocolateyも一緒にインストールという、checkboxがありますけど、これをcheckしたら、企業での会社利用の場合、有償となってしまうのでしょうか?
こちらは、私からは確定的な回答はできないのですが、企業版はライセンスの違いだけではなくて、一括して複数のコンピューターにインストールなどができるなど機能自体が違います。
そのため、それらの機能が不要なのであれば「個人版」として使うことはできるのではないかなとは思います。とはいえ、このあたりは微妙な問題となるため、心配な場合は開発元にご確認頂けると幸いです。
index.phpの13行目、else if (!filter_var($_post['email'], FILTER_VALIDATE_EMAIL))のところで、たにぐちさんの書いた場合は正常に動作していましたが、私の場合は、else if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))とpostをPOSTと書き替えたら正常に動作したのは何故でしょうか。
こちらですが、$_postではなくて「$post」とアンダースコアが入らないです。その前の方で、$_POSTの内容を「$post」という変数に代入したため、その値を使っています。同じ名前だったのでややこしくて申し訳ありません!
25:30 webサーバーにアップしてもメール送信されないのですが、原因としては何が考えられますでしょうか💦
原因は結構色々あるので、1つ1つ潰していくしかないですね・・
・そもそもメールが送れるサーバーなのか
・fromや toを変数ではなく、直接指定して確実に届くメールアドレスにして届くかどうか
・迷惑メールに入っていないか、メールログに送信の記録は残っているか
など、1つ1つ調べていく感じになります! 地道ですががんばってください・・!
@@tomosta ご返信ありがとうございます。ほかのサンプルソースをアップしてみたらメール送信できたので、サーバーの問題ではないのかもしれないです。。💦地道にしらべてみます>
@@mayuy 他のサンプルソースというのは、WordPressのプラグインなどになりますか? メール送信自体は可能でも、「WordPressからの送信を許可していない」などもあり得るので、ちょっと原因の特定難しいかもですが、場合によっては確実に送れるサーバーに移ってしまった方が早いかも知れませんね・・ 調べてみてください!
メール送信後FROMの後の文字が文字化けしてしまいます。何が原因なのでしょうか?また。対策を教えていただけると嬉しいです。
宜しくお願い致します🥺
php.iniというPHPの設定ファイルの内容で、日本語が上手く送信できていないのだと思います。こちらなどをご参照くださいー
office-obata.com/report/memorandum/post-5300/
@@tomosta お忙しい中ご回答ありがとうございます。参考にさせていただきます。
これからも、UA-camの方頑張って下さい!!応援してます!
最後のthanks.htmlに直接アクセスした場合index.phpに戻す方法を教えてください。
その場合は、まずはcheck.phpの方でジャンプ前に何か値を仕込んでおきます。そして、thanks.htmlはthanks.phpに拡張子を変えた上で、ファイルの中でそのcheck.phpで仕込んだ値が存在しているかを確認する感じですね!
プログラム初心者です。
いつも拝見しております。
php をWindows PowerShell(管理者)でcinst にてインストールし、動画と同様の画面になりましたが、vscodeのターミナルで php -v と打つと「ObjectNotFound:(php:String)」と返ってきます。
他にも設定すべき箇所があるのでしょうか?
インストールはすんでいるようなので、単に Visual Studio Codeを再起動し治したらうまくいくかも知れません。うまく行かないようでしたら、VS Codeを再インストールするなども試してみて頂けると幸いです!
@@tomosta
ご回答ありがとうございます。
再起動、再インストールともに試してみましたが、同様の結果でした。
そもそもphpが正しくインストールできているのでしょうか?
コマンドプロンプトにて php -v と打ってもバージョンが表示されません。
phpが入っているディレクトリがちがうのでしょうか?
お時間あるときにExcelVBAやってくれませんか? databaseの連携など。
VBAはあまりやっていないのですが、面白そうですね。自分でも勉強していずれやってみます!
28:10 メールの確認方法
php 8でやっているのですが、うまく表示されないです。
PHP8だからということはないかと思います。Slackコミュニティにプログラムコードなどを共有頂ければ拝見できるかと思います!
tomosta.jp/community
チョコれーてぃというのは、Node.jsみたいなものですか?
似てますね、パッケージ管理システムというものです。どちらかというと、Macでいうと Homebrewというシステムに似てます!
お問い合わせの控えメールを送る方法を教えて下さい。
Slackコミュニティで回答しました!
アプリを作る上で
商用利用しても大丈夫ですか?
はい、特に制限はありません。安全性などはしっかり確認して開発してくださいませ。(別のアカウントから返信しちゃってました・・
25:30
😍🌈💐
Thanks!
なんか声が苦手
得意不得意ありますよねー
僕はとっても聴き易いです😂
ただ、お声が優しいのに、頭の回転とタイピングスピードが鬼のようで置いてけぼりになることが多々あります笑😂