こんにちは。いつもお世話になっています
shingetsuです。
PHPをただいま勉強中で、わからないことがあったので質問させていただきます。よろしくお願いします。
現在自分でサイトを作っているのですが、ユーザー登録フォームに空欄があった場合空欄があります、というようなエラーを表示させたいのですが、その表示方法がよくわかりません。
<?php
//入力されたデータを読み取る
$_SESSION['name'] = $_POST['name'];
$_SESSION['passwd'] = $_POST['passwd'];
$_SESSION['address'] = $_POST['address'];
$_SESSION['tel'] = $_POST['tel'];
$_SESSION['email'] = $_POST['email'];
このように読み取ってから、ここでif文を使ってエラーを表示させればいいのでしょうか?それとももっと簡単な方法がありますでしょうか?PHPの本を読んでみましたが載ってなく、ネット検索してみようにも検索方法がよくわからないのでヒントやアドバイスをよろしければ教えてください。お願いします
No.2ベストアンサー
- 回答日時:
amountainblastさんの改造版です。
>後は何回も同じような分を書くのがめんどくさければこれをfroeachで処理をすれば~
isset()を使わなくても、
if(!$_POST['name']){
//エラー処理
}
でNULLか否かを判定できます。
また項目別にエラー表示を出さなくても良いのなら
if(!$_POST['name']
AND !$_POST['passwd']
AND !$_POST['address']
AND 。。。){}
これでも良いかも。長くなりますね。。。
この回答への補足
ご回答ありがとうございます!
このような方法もあるのですね、勉強になります。
現在はこのエラーを表示するページをつくり、そこへのリンクがうまくいかないので四苦八苦しておりますが、空欄か否かの判定はできたと思います。ありがとうございます。
No.5
- 回答日時:
こんにちは。
PHPページにフォームからのリンクがちゃんと出来ていないと言う事でしょうか?
登録フォームが指定されているとのことですので、HTMLを直接さわれるのかわかりませんが、もしさわれるのでしたら、フォームのページのところに
<form name="XXX" method="post" action="XXX">
みたいな感じになっているところがないですか?
あれば、ここのaction="XXX"のXXXのところに
リンク先のURLを指定してください。
ええと、送ったデータがきちんと送れないのか、リンクがおかしかったのかわからない状態だったので追加で質問した次第です。無事改善したのでよかったです。回答ありがとうございました!
No.4
- 回答日時:
No.3の回答者のcybertです。
回答に誤りがありました。
index.htmlをエラーページにと書き込んでおきながら
コードに書いてなかったですね。間違えました。
正しくは以下のようになります。
header("Location: http://hoge.com/index.html");
exit;
なるほど。ありがとうございます。
みなさんに教えていただいた内容をいろいろ試してみて、利用したいと思います。
ありがとうございました。
No.3
- 回答日時:
ついでにー
>現在はこのエラーを表示するページをつくり、そこへのリンクがうまくいかないので四苦八苦~
header("Location: http://hoge.hoge");
exit;
でうまくいきませんか?index.html部分をエラーページに書き換えて。
※ジャンプ先は絶対パスで。
※ヘッダーを出力するので、headerの前に何も出力してはいけません。
悪い例(headerの前に<html>が出力されてる。)
<html>
<?PHP
header("Location: http://hoge.hoge");
exit;
この回答への補足
2度も回答ありがとうございます。
説明しただいたのですが、いまいち理解できないです;
>>index.html部分をエラーページに書き換えて
とありますが、index.htmlとはどの部分を指しているのでしょうか?
私の場合、index.htmlはユーザ登録ページと商品ページへのリンクがあるTOPページなのですが・・その部分をエラーページにすることになってしまうので、よろしければその部分を教えていただけないでしょうか。
No.1
- 回答日時:
POSTでデータを取得するときにデータがあるか無いかで処理をしたらいいかと思います。
nameですと
if(!isset($_POST['name'])){
$_SESSION['name'] = $_POST['name'];
} else {
print("必須項目に空欄があります");
}
(試していないので、スペル等にミスがあるかもしれません。)
みたいな感じですかね。
isset関数は変数に値が格納されているかどうかでTRUEかFOLSE(?)を返すのでこんな場合には結構便利だと思います。
後は何回も同じような分を書くのがめんどくさければこれをfroeachで処理をすればOK牧場ですかね!!
お粗末ながら・・・
この回答への補足
お早い回答ありがとうございます!
さらにお聞きしたいのですが、あまりにも初歩的なことかもしれませんが、よろしければ教えていただきたいです。
HTMLでユーザー登録フォームを書いているのですがこの登録フォームは指定されたものを変えて利用しています。
<TD><INPUT TYPE="submit" VALUE="送信"><INPUT TYPE="reset" VALUE="クリア"></TD>
ここからif(!isset($_POST['name'])){
$_SESSION['name'] = $_POST['name'];
} else {
print("必須項目に空欄があります");
}
を表示させるために新しいPHPページを作ったのですがそのページへのリンクがうまくいかず、表示されませんでした。リンクさせるにはどの部分に書き込めばよろしいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- PHP phpでこの記述をもっと簡単に書く方法はないでしょうか…? 3 2022/11/16 19:57
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォントの色を変えるには?
-
PHP8を使うと、大量のWarningが...
-
PHP 文字列を代入した配列を変...
-
PHPで、エラーがない場合のみ画...
-
phpでPEAR::DBを使っているので...
-
「@$変数」の「@の意味は?」
-
トランザクションが原因?DBに...
-
error_reporting(0);にも関わら...
-
ワードプレスサイト PHP8.0.25...
-
php5.6でsimplexml_load_string...
-
Parse error: syntax error, un...
-
PHPでネットワークドライブのop...
-
PHPでOut of memoryのエラー解...
-
これは例外処理でしょうか?
-
パースエラーとは?
-
コードユナイターでPHPのプログ...
-
正規表現での最後尾のバックス...
-
windows環境でphpのfopenが使用...
-
phpでクラスのメソッドで同名の...
-
SELECTの値を保持する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHP8を使うと、大量のWarningが...
-
フォントの色を変えるには?
-
ワードプレスサイト PHP8.0.25...
-
トランザクションが原因?DBに...
-
PHPでfatal errorが出ても無視...
-
PHPでネットワークドライブのop...
-
「@$変数」の「@の意味は?」
-
パースエラーとは?
-
PHPで特定のURLにジャンプす...
-
正規表現での最後尾のバックス...
-
phpでクラスのメソッドで同名の...
-
error_reporting(0);にも関わら...
-
PHPで、エラーがない場合のみ画...
-
php7のhtmlentitiesはEUC-JPを...
-
phpのrenameでエラーが出ます
-
phpでget_headers()が使えない?
-
メールアドレスにメールが届い...
-
phpのエラー(T_LNUMBER)について
-
urlの直接入力を防ぐには
-
これは例外処理でしょうか?
おすすめ情報