質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1699閲覧

phpからhtmlに値を渡す方法

romukuro0328

総合スコア15

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/09/12 09:12

php初心者です。
実現したいことがあり、皆様の知恵をお借り出来たらと思います。

MVCでちょっとしたWebアプリケーションを作っています。
今回はそのアプリケーションのログインのロジックについてご教授いただきたいです。

実現したいこと

LoginViewで入力してもらったidを、
LoginControllerで受け取り、
受け取ったidをFirstLoginViewに送り、
FirstLoginView内で使用し、
更に、FirstLoginControllerに送りたい。

現状の処理の流れ

前提:ユーザは自分固有のIDとランダム生成されたパスワードがメールで送られてくることとします。
(尚、セキュリティ面についてはまだ未熟な部分もある為、考慮できていないのが現状です…。)
今回はその中でも初回登録画面の処理についてご教示いただきたいです。

処理の流れは
1.ログイン画面にidとパスワードを入力してもらい、入力された値をPOSTでCに送る(LoginView)
2.入力された値を元にデータベースを参照し、idとパスワードが一致した場合はメイン画面へリダイレクトさせます。
もしデータベースを参照し、そのユーザが初回ログインだった場合のみDBにログイン状態のステータス値が格納されています)
初回登録画面へと遷移します。(LoginController)
3.ユーザに自分の好きなパスワードを入力してもらい、POSTでCに送ります(FirstLoginView)
4.受け取ったパスワードを元にUPDATEクエリを作成し実行します(FirstLoginController)

解決方法…?

【実現したいこと】のすべてを満たす解決方法として素人なりに考えてみたのが
LoginControllerとFirstLoginControllerを1つのControllerとしてまとめてしまう
という方法です。
LoginControllerで一回idを受け取ってしまえば、あとはその値変数にいれ、変数を利用してFirstLoginControllerの処理をしてしまえば良い。
SQL文のWHERE句に当てはめるのもその変数を連結してしまえばいい。
…かなり無茶苦茶だとは承知していますが、私の頭ではこれ以外の選択肢が見つかりません。

上記以外に解決できそうな方法

・セッションID
セッションIDを利用し、idを持ち歩いてもらう方法です。しかしこれをFirstLoginViewで表示させる場合、どうやらphpを使う方法が一般的なようですが
.htmlから.phpに拡張子が変わった場合サーバーサイド処理となってしまうようです。
.htmlの中でphpを動かす場合.htaccessの設定を書き加えることによって可能らしいのですが、理解が及ばず本当にそれで実現可能なのかわかりません。
・LoginControllerからFirstLoginViewにリダイレクトする際にidの値を一緒に渡す
これに関しては調べ方が悪いのか、実現方法を見つけることができませんでした。json形式で…というのも考えましたがLoginControllerにFirstLoginView側からリクエストを送るのか…??とこんがらがっています。

全体的に自身の知識不足からくる疑問で申し訳ありません。
長文となりましたが、なにか解決の糸口やアドバイスなどあればご教示いただきたいです。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tonkun4os

2018/09/12 09:51

そもそも静的ページと動的ページについて勉強してください。
退会済みユーザー

退会済みユーザー

2018/09/12 10:29 編集

HTTPプロトコルについても学習してもらわないと話にならない。特定の動作や処理をwebサーバー上で行うのか、それともwebブラウザー(クライアント)側で行うのか、そこを整理して質問内容を書き直してほしい。でなければ、認識のズレを互いに埋めるためのやり取りばかり増えて解決に至らない。
romukuro0328

2018/09/12 11:01

コメントありがとうございます。自分の勉強不足であること充分承知しています。学校の活動の一環としてプロジェクトが既に進行しており、自分自身の知識が充分に付かないまま中途半端な状態でプロジェクトにあたっているのが現状です。もはや回答のしようがないレベルの質問をしている事を自覚しました…。今回データベースサーバとアプリケーションサーバーを立ち上げ、そこに独自のWebAPIを置き、ユーザのブラウザから特定のURLにアクセスしてもらうことによりWebアプリケーションを利用してもらいます。CとMの動作はサーバ側で、Vはブラウザ側で処理をしたいのです。しかしながらm6u様のおっしゃるとおりこれでは根本的な部分から認識が間違っているようですので、今一度勉強しなおして見ます。折角コメント頂いたのに申し訳ありません。
m.ts10806

2018/09/12 11:01

そのMVCがオープンソースではなく現場で作られたものであればおそらく他人に解決は難しいのでは。
tonkun4os

2018/09/12 11:15

そもそもMVCは概念です。MVCで作られたデスクトップアプリだって有ります。(名前忘れたけど・・・)
guest

回答2

0

いろいろ間違っていそうですが、ちょっと全部を指摘してあげられません。

ログインシステムの概要を学ぶのにちょうどよい記事があるのでそれだけ紹介しておきます。
PHPでログイン機能を実装するチュートリアル
初心者より少し上をターゲットにしていますが、ログインシステムとはどんなものなのか理解するのに役立ちます。
コピペで動かす記事ではないので、不明点を調べながら学習すると良いです。

投稿2018/09/14 09:42

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

【ログイン機能】
LoginController
actionとして、
index(ログイン画面)
firstlogin(初回登録画面)

【トップページ】
ToppageContolloer
index(トップページ画面)

とするのがいいかと思います。

ログイン機能の
indexアクションで
初回ログインの場合はfirstloginのviewに飛ばして
それ以外はtoppageに飛ばせばいいと思います。
もちろんログインエラーの場合はLoginControllerのindexのviewにエラーを持たせてそのまま飛ばせばいいかと。

ログイン情報はセッションで持ち回り
各画面のトップでセッションログインチェックをして
セッションがなければログイン画面に飛ばしてやればいいと思います。

投稿2018/09/14 10:18

ms5025

総合スコア292

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問