トップページにログインフォームを作成したい
kemshim > Re: トップページにログインフォームを作成したい @ 2014/8/9 12:56 |
---|
n1215 様
ご丁寧に解説していただき、ありがとうございます! その方法で、トップページに実装してみると、見た目は希望通りになりました。 ただ、マイページ用のユーザでログインしようとすると、以下のメッセージだけが出るページに遷移します。
試しに登録していないIDを入れてみても同様の結果になります。 どうすればいいでしょうか… <動作環境> |
n1215 > Re: トップページにログインフォームを作成したい @ 2014/8/12 12:11 |
---|
kemshim 様
まずプレフィックスの設定($currentPrefix)は'mypage'ではなく'mypege'となっていませんか? 上記が正しく設定されている場合、 "以下のメッセージだけが出るページ"について全く状況が把握できないので詳しく教えてください。 ・遷移先のページのURLはどうなってますか? ・トップページのログインフォームのformタグのaction属性に入ってる値を教えてください 正常な状態では値が/mypage/members/ajax_loginとなるはずです Twitter: @n_1215 |
kemshim > Re: トップページにログインフォームを作成したい @ 2014/8/12 17:16 |
---|
n1215 様
ご返信いただきありがとうございます。 引用: まずプレフィックスの設定($currentPrefix)は'mypage'ではなく'mypege'となっていませんか? 申し訳ありません、フォーラムに入力する際にスペルを誤って入力していたようです。 実際のプレフィックス設定は'mypage'になっております。 引用: 上記が正しく設定されている場合、 スクリーンショットで撮ったものが以下になります。 ↓ここからスクリーンショット ↑ここまで 引用: ・遷移先のページのURLはどうなってますか? URLは、http://example.com/mypage/members/ajax_login となっております。 引用: ・トップページのログインフォームのformタグのaction属性に入ってる値を教えてください action属性とは、こちらのことでしょうか。
'ajax_login'となっています。 仮に上記のaction属性に、/mypage/members/ajax_loginと記述した場合、以下のような画面が表示されます。 <動作環境> |
n1215 > Re: トップページにログインフォームを作成したい @ 2014/8/12 20:10 |
---|
kemshim 様
3.0.2ではログインはAjaxで処理されるのでブラウザ上で/mypage/members/ajax_loginに移動することは実際にはありません。 表示されているページはログイン後にリダイレクトされるべきページのURLが表示されていますね。 本来はページ遷移なしにAjaxリクエストの返り値としてこの値を受け取り、/mypage/members/editに遷移するというのがAjaxによるログイン処理の流れです。 何らかの原因でAjaxによるフォームの送信が行えず、 通常のHTMLのフォームのPOSTが行われ、画面が/mypage/members/ajax_loginに遷移してしまっているものと推測します。 ブラウザの機能(たとえばChromeなら要素を検証機能)を用いるとJavaScriptやCSS,ファイル読込のエラーを見ることができます。 ページを読み込んだ時点でブラウザにJavaScriptのエラーは出ていないでしょうか? またjquery.form-2.94.jsは正常に読み込まれていますか? ログインボタンを押した後にJavaScriptのエラーが出ていませんか? ※他のIDでの試行結果も書かれていますが、会員ページにすでにログインした状態になっているためだと思います。 引用: action属性とは、こちらのことでしょうか。 違います。PHPが出力したHTMLソースの話です。おそらくaction属性は正しそうなのでこれはもういいです。 参考:正常な場合の処理 lib/Baser/Config/setting.php(ないしこれをコピーしたファイルapp/Config/setting.php)に会員ページログイン後のリダイレクト先が指定されていますよね? 初期設定のままだと/mypage/members/ajax_loginに向けてAjaxでのログイン処理が成功すると /mypage/members/editにリダイレクトされるようになっています。 lib/Baser/Config/setting.php
そしてこのページのテンプレートは下記です。 lib/Baser/View/Members/mypage/edit.php
lib/Baser/Controller/MembersController.phpのmypage_editメソッドで Viewの$pageTitle変数に"メンバーマイページ(デモ)"という値が設定されているので 上記の出力結果はメンバーマイページ(デモ)と表示されるはずですね。 Twitter: @n_1215 |
kemshim > Re: トップページにログインフォームを作成したい @ 2014/8/16 11:22 |
---|
n1215 様
ご返信いただきありがとうございます。 引用: ブラウザの機能(たとえばChromeなら要素を検証機能)を用いるとJavaScriptやCSS,ファイル読込のエラーを見ることができます。 ChromeでJavaScriptのエラーをチェックした所、以下のような文章が表示されました。
下記のエラー
の解決策として、JavaScriptの記述の順番を変えてみたところ、/mypage/members/editのページが表示されるようになりました! app/webroot/theme/{テーマ名}/Layout/default.phpで、もともとは、
のように、JavaScriptの後に
のようにJavaScriptの前に
参考) jQueryで「Uncaught ReferenceError: $ is not defined (anonymous function)」 ― HattaraTecLog : http://teclog.hattara.info/?p=221 何度も何度もご丁寧に回答頂き、本当にありがとうございました! <動作環境> |
n1215 > Re: トップページにログインフォームを作成したい @ 2014/8/18 22:26 |
---|
kemshim 様
なるほどLayout/default.phpに記述されていたんですね。トップページとおっしゃっていたので Page/index.phpに記述しているものかと勘違いしていました。 jQueryによる記述やプラグインの前にjQuery自体が読み込まれていなければ動かないのは当然ですね……。 Twitter: @n_1215 |