前回プロフィール編集機能を作りました。今回は投稿(ツイート)機能を作っていきます。メインとなる部分ですね。今までの応用でなんとかなるのですが、せっかくなのでちょっと違うことをしてみようと思います。完了画面という構成で、入力値エラー(必須項目の入力漏れなど)時は、確認画面でエラーを表示し、ユーザーが戻るボタンを押して入力画面に戻っていました。昔はそういうフォームも多かったですが、今時そんな不便なフォームなんてありません。今回はこういう構成でいこうと思います。'上の句が入力されていません。'中の句が入力されていません。'下の句が入力されていません。TODO:サイズのみでバリデーション。'画像が大きすぎます。'上の句が入力されていません。'中の句が入力されていません。'下の句が入力されていません。TODO:サイズのみでバリデーション。'画像が大きすぎます。?>後述しますがリダイレクトの兼ね合いで、ログインチェック部分のロジックを変更しました。enctype="multipart/form-data">formタグのactionに自分自身を指定しています。送信のボタン(ここでは「わびさび」)を押すと、同じページが呼び出されるわけです。value=”わびさび”>こうなっていて、name=”submit”になってます。"わびさび"){〜〜〜この判定は、簡単に説明するとわびさびボタンが押されてきた遷移かどうかの判定をしています。初回呼び出し時は、後続のエラー判定はせずわびさびボタンを押された場合はエラーチェックをしています。同じページだけど、押されたボタンによって処理を振り替えているわけですね。307);exit();}エラーがある場合は$errorsという配列にエラーメッセージを入れていきます。全体のチェックが終了した時にエラーが存在しない場合は、ステータスコード307でDBにデータを保存するphpにリダイレクトしています。ステータスコードはHTTPの話になるので詳しくはググってほしいのですが、307はpostやgetを引き継げるようになっています。リダイレクトはその処理が入るまでに画面に何かを表示するとエラーとなります。307);前回までのログインチェックはその場でHTMLを吐き出していましたが、そうするとログインチェック後にリダイレクトできない。いう問題が発生するので、今回ログインチェックのロジックを変更したわけですね。エラーチェックして、エラーがあればエラーを表示する。初回アクセス時はエラーチェックせずformを表示する。あとは難しいことはしていません。毎回変更していると連続でアクセスするとセッションが破棄されてしまう問題が起きる。回避策として、7秒以内はセッションIDを書き換えないこととした。'ログインされていません。毎回変更していると連続でアクセスするとセッションが破棄されてしまう問題が起きる。回避策として、7秒以内はセッションIDを書き換えないこととした。'ログインされていません。href="'.URL.'/user_login/user_login.php">ログイン画面へ</a>';viewFooter();exit();}}今まではログイン成功時も画面にHTMLを表示していましたが、表示しないように変更しました。session_regenerate_id(true);を連続で呼ぶとセッションがなくなってしまう問題が発生したので(F5連打とか)、session_regenerate_id(true);は少なくとも7秒の間隔を開けるよう変更しました。'</body></html>';}今まではheader.phpに処理ベタ書きしてたんで、require_once(‘header.php’);ってした瞬間にHTMLを書いていましたが、先述の通りリダイレクトできない問題が発生したので出力タイミングを変更するように変更しました。common.phpが相当大きくなってきたのでまた見直しが必要ですが、とりあえず全部common.phpに入れています。common.phpってこの名前使いたくなるけど、何を意味するファイルかわからない名前なので本来使わない方がいいですよ・・・w各HTML出力関数もそう難しくないかな。出力してるだけですね。ただいま障害により大変ご迷惑をおかけしております。EODただいま障害により大変ご迷惑をおかけしております。?>$_SESSIONのlogin_idからuser_idを引っ張ってきて入力されたpostの値をサニタイズ画像を保存してDBに各値を入れる。今までしたことですよね。まとめ入力値のエラーチェックを自分自身ですることで、エラーをその場で出せるし、入力途中の値が飛ばずにそのまま入るようになる。エラーがなかった場合はリダイレクトでその先のページに飛ばす。いう仕組みでエラーチェックってなされてたんですね。リダイレクトは何か画面(ブラウザ)に表示しているとエラーで実行できないので、HTML等を表示するタイミングを考慮しないといけないのがわかりました。参考書等だとうまくいくことがわかりきってる中での積み上げなんで、こうやってミスに気付いて戻って修正。動作がないんですよね。自分で作ると気付きがいっぱいだし、理解していない部分が明確になっていいですね。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。前回ツイート機能を作りました。今回はツイート一覧機能を作っていきます。前回ログイン機能を作りました。今回はプロフィールの編集機能を作っていきます。これも基本的な部分ですね。プログラムを書き出すと漂流してしまうので道しるべを書きます。最近Twitterをはじめました!かじです。前回ツイート一覧機能を作りました。今回はツイート詳細・コメント機能を作っていきます。以前作ったツイート機能の実装と同じように作っていきます。Reserved.Top。