PHPの送信フォームについての質問です。プログラミング初心者です。現在、送信フォームを作成しています。「postでデータを受け取ったら、『○○受け付けました』と表示させ、指定したテキストファイルにそのコメントを書き込む」という動作をしたいです。また、データが空でも「送信」ボタンを押してない時は、「何も動作しない」ということにしたいです。ですが、ネットとかで調べてみると、条件分岐で「何もしない」という命令は、わざわざ出さなくていいと書いていました。ですが、何も命令文を書かないと、初めてphpファイルをブラウザで開いた時(つまりまだ何も入力・送信していない時)にエラーの表示が出てしまいます。どうすればいいでしょうか?いくら調べてもよくわかりません。どなたか教えて頂けると幸いです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
もう一点、こういったコーディングの質問をされる場合は、スクショした画像ではなくテキストそのものをコピペすべきです。
画像では文字が潰れて何が書かれているか読みにくくなりますし、読めたとしてもそれを実際に動かして確認するにはいちいち一文字ずつキーボードから入力し直さなければならないので、それだけで回答が返ってくる可能性が格段に下がってしまいます。
No.1
- 回答日時:
書かれた処理ですと、初回はPOSTデータ自体が存在しないにも関わらず
$comment = $_POST["comment"];
としているため、ここで Notice: Undefined index が出ますね。
とりあえず、$commentへのPOSTデータ代入はissetでチェックした中で行うことで Notice は出なくなります。
他に、同一のPHPファイル内で処理も表示も行うのであれば、主要な処理はHTMLを表示する前に行なっておいたほうが、結果によるその後の処理の振り分けなどが必要になった場合でも対応しやすいかと思います。
以下、一例です。
<?php
$result = 0;
if(isset($_POST['comment'])) {
$comment = trim($_POST['comment']);
if($comment != '') {
$result = file_put_contents('./data.txt', date('Y-m-d H:i:s'). " {$comment}". PHP_EOL , FILE_APPEND);
}
}
?>
<html>
<head>
<title>sample</title>
<meta charset='utf-8'>
</head>
<body>
<form action='<?=$_SERVER['SCRIPT_NAME']?>' method='post'>
入力欄
<p><input type='text' name='comment' value=''></p>
<p><input type='submit' name='submit' value='送信'></p>
</form>
<?=(isset($comment) && $comment != '' ? htmlspecialchars($comment). ($result === false ? 'を受け付けできませんでした' : 'を受け付けました') : '')?>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPの質問:フォームから受け取...
-
PHPでファイルアップロード時に...
-
phpで、フォームのラジオボタン...
-
PHPのエラーの解消法について教...
-
セッションを使わずに遷移先画...
-
POSTデータをフォームに残す方法
-
ボタンをクリックでPHP文を実行
-
PHPでURLにジャンプするには?
-
HTMLで前の画面に戻る時、入力...
-
<input type="hidden" >で配列...
-
ラジオボタンを押すと、表示が...
-
laravelを利用してコントロール...
-
$_POSTを連想配列で取得したい!!
-
syntax error, unexpected '}' ...
-
チェックボックスのvalueを連結...
-
phpのチェックボックスによる絞...
-
ファイル名を変更してアップロ...
-
PHPでユーザー情報を入力して簡...
-
php を使用しての入力チェック方法
-
配列をhiddenで
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPでURLにジャンプするには?
-
PHPのエラーの解消法について教...
-
セッションを使わずに遷移先画...
-
アマゾンのような評価の星を選...
-
JavaScript変数をPHPへ渡す
-
フォーム送信後の更新ボタンで...
-
テキストリンクをPOST送信したい
-
ボタンをクリックでPHP文を実行
-
フォームで作った送信ボタンが...
-
phpで、フォームのラジオボタン...
-
PHPでファイルアップロード時に...
-
PHPでバーコード読み取りって・...
-
送信ボタンでカウントアップ
-
VBSのIEオブジェクトでフ...
-
Submit(送信ボタン)を押した...
-
PHPの質問:フォームから受け取...
-
POSTデータをフォームに残す方法
-
リンク先のフォームに自動的に...
-
phpのカウンタのリセット方法
-
PHPの送信フォームについての質...
おすすめ情報