- ベストアンサー
PHP初心者のためのエラーチェックについての解説
- PHPを勉強中の初心者によるエラーチェックの問題について解説します。
- 名前や内容の未入力時に正しくエラーチェックを行い、適切な画面に遷移させる方法について詳しく説明します。
- コードの一部を修正することで、エラーチェックの表示を正しく行うことができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> hiddenタグで$_SESSIONを使用するのは可能でしょうか? hiddenタグはPOSTでデータを送る場合にフォームに表示されないデータの受け渡しに利用されます。 あくまでフォーム経由なので PHPでソースに埋め込み → クライアントがPOST → 遷移先PHPソースで受信 という流れになります。 $_SESSIONの場合は PHPソースで変数に設定 (→ クライアントでページ操作) → 遷移先PHPソースで変数を読み込み というように、クライアントの操作とは無関係にサーバー側で独自に保持するデータになるので、hiddenにするしないを意識することなく、変数として保持できます。 > header()を使用する場合は3つめの$_SESSIONを使用したほうがよろしいのでしょうか? これはどういう設計で作るかという作り手のセンスの問題なので一概にどうということは言えません。 セッション変数($_SESSION)を使う場合は、その使用範囲で同一のセッションだと認識できるようにセッション管理をきちんと行う必要があります。(この辺りはPHPのセッション管理機能を詳しく調べてください) header()による転送でもURLの後ろにパラメータを付ければ$_GETでデータを送ることはできます。 別の作り方を考えれば、form.phpのフォームのPOST先をform.php自身にして、その中でエラーチェックをして、エラーの場合は再表示、そうでないならconfirm.phpに転送とかいうやり方もあります。
その他の回答 (2)
- tenderfeel
- ベストアンサー率56% (215/379)
値を保持したいならCookieという手もあります。 if(empty($name)){ setcookie("name", '未入力'); } if(empty($comment)){ setcookie("comment", '未入力'); } <input type="text" name="name" value="" /><?php print($_COOKIE["name"]);?> 難点:Cookie無効の場合は記憶できない
- magicalpass
- ベストアンサー率58% (378/648)
PHPの変数はセッション変数等の一部を除けば、ページを跨いで保持することは出来ません。 ページを跨いでデータを保持する場合は、 ・フォームを通じて$_POST変数に渡す(要submit操作) ・URLパラメータを通じて$_GET変数に渡す ・$_SESSION変数に保持する(要セッション管理) ・ファイルに一時保存 ・データベースに一時保存 などの方法が必要です。 header()を用いたページ転送の場合、一番上のPOSTは使えないのでそれ以外の方法が必要です。
お礼
お忙しい中、ご回答有難う御座います。 そうなんですか・・・ header()を使用する場合は3つめの$_SESSIONを使用したほうがよろしいのでしょうか? hiddenタグで$_SESSIONを使用するのは可能でしょうか?