
こんにちは。いつもお世話になっています
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォントの色を変えるには?
-
Localeクラスについて
-
PHP mb_send_mail メール送信 5...
-
PHPで、エラーがない場合のみ画...
-
PHPの@includeとは?
-
Notice: Undefined offset: 1を...
-
正規表現での最後尾のバックス...
-
require_once で読み込まれたか?
-
PDO で try~catch 構文を使う...
-
PHP、unpack関数でのエラー
-
PHPでfatal errorが出ても無視...
-
phpでこの記述をもっと簡単に書...
-
phpについて バージョン8.0
-
fsockopenの例外について
-
phpでget_headers()が使えない?
-
クラスの中でincludeするとき、...
-
IIS/PHPのサイトでたまにCGIエ...
-
windows環境でphpのfopenが使用...
-
これは例外処理でしょうか?
-
bindValueエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォントの色を変えるには?
-
PHPでfatal errorが出ても無視...
-
PHP8を使うと、大量のWarningが...
-
PHPで、エラーがない場合のみ画...
-
トランザクションが原因?DBに...
-
phpでお問い合わせフォームを作...
-
PHPで特定のURLにジャンプす...
-
try~catch構文は、どういうメ...
-
ある条件に当てはまったときに...
-
PHPでネットワークドライブのop...
-
SELECTの値を保持する
-
PHP、unpack関数でのエラー
-
functionに括弧を使用するとエラー
-
iframeからのアクセスか、ブラ...
-
phpの質問です
-
外部のHTMLに書かれた文字を取...
-
E_NOTICEでも処理を止められま...
-
日本語をGETで渡す場合UR...
-
エラーが出ない
-
「@$変数」の「@の意味は?」
おすすめ情報