- 締切済み
phpでのサイト制作について質問です。
現在、phpを使用して会員制webサイトの作成を勉強しています。 あらかた形になってきたのですが、 なにぶん独学で作成してきたため、いくつか根本的な間違いをしているような気がしたため、 質問させてください。 1、現在、ヘッダーやナビゲーションメニュー、フッターなどの各ページ共通部分のタグを 別ファイルに関数化して、関数から引っ張って出力しています。 ネットで検索したところ、皆さん、ヘッダー用ファイル、フッター用ファイル、 ナビゲーションメニュー用ファイルを作成して、includeしているということを今更ながら知りました。 そこで疑問なのですが、やはり、 関数用ファイルから関数として呼び出して出力するよりも、 別ファイルをincludeしたほうが動作的に軽くなるのでしょうか? また、これらの共通ファイルは公開ディレクトリ以前に置くべきでしょうか? 2、ファイルのパーミッション設定についていまいち理解できていないのですが、 includeやrequireで読み込ませる(ファイル単体で表示させず読み込み専用)ファイルの パーミッションは604で適切でしょうか? 3、メールアドレスのDB保存についてですが、 色々とネットで調べた上で、 現在、PDOでHEX(aes_encrypt(':email','key') を使用しているのですが、 こちらは一般的に使用されていますでしょうか? 沢山質問してしまい、一貫性がなくてすみません。 これを気に、作成したコードを見直したいと思い、質問しました。 どれかひとつでもお分かりになるようでしたらご回答頂きたいです。 よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- anmochi
- ベストアンサー率65% (1332/2045)
1. 別ファイルにするのは単純に部品化手段として分かりやすいからだと思うけど。 > やはり、 > 関数用ファイルから関数として呼び出して出力するよりも、 > 別ファイルをincludeしたほうが動作的に軽くなるのでしょうか? 逆になぜそう思ったのか聞きたい。 それ以前にそもそも別ファイルをincludeするのを「動作的に軽くする目的で」使っていると誰から聞いたの? 2. それはサーバーによりけり。 Webサーバープロセス(あるいは単独でPHPを実行するCGIプロセス)において 表示を行うのと他のファイルからinlucdeされるのに違いはない。 条件によっては400でも動くし条件によっては604じゃないと動かない。 レンタルサーバーだと604のパターンもあろう。VPSだったら自分で好きなように設定すればいい。 3. 多分「MySQL 保存 暗号化」とかで検索した結果を見てそうしたんだと思うけど、これらを根拠にその技法を使うのは・・・・どうかな。 一般的に使うかどうかは知らん。使えるんだから使えばいいと思うけど。 ただ、あなたのやりたい事が実現できていたら他の人がどうやろうが一般的なお作法がどうだろうがどうでもいいのでは? それが気になるなら最初からお作法を学んでから実装すべきだと思う。 私が使うかと問われれば使わない。私がDBを使うシステムを作る時は必ず(設定をすれば)全SQLをログに残せるように作るので、emailどころかkeyが生で出てくるからだ。そっちの方がよほどセキュリティリスクが高いと私は判断する。
お礼
ご回答ありがとうございます! >別ファイルにするのは単純に部品化手段として分かりやすいからだと思うけど。 なるほど!特にファイル化にこだわることでメリットがあるというわけではないのですね。 >逆になぜそう思ったのか聞きたい。 >それ以前にそもそも別ファイルをincludeするのを「動作的に軽くする >目的で」使っていると誰から聞いたの? 誰から聞いたわけでもなく、ネットで調べても、ファイル化してincludeしている内容の記事ばかりで関数化して呼び出している例がないため、 関数化しないのにはそれなりの理由があるからだと思い、 無い頭で考えたところ、「もしかして関数にすると動作が重くなるのかなぁ?」という単純な発想で記述した次第です。 >条件によっては400でも動くし条件によっては604じゃないと動かない。 >レンタルサーバーだと604のパターンもあろう。VPSだったら自分で >好きなように設定すればいい。 ありがとうございます! レンタルサーバーを使用しているので、その辺はレンタルサーバーの動作を見て確認したいと思います。 >ただ、あなたのやりたい事が実現できていたら他の人がどうやろうが >一般的なお作法がどうだろうがどうでもいいのでは? >それが気になるなら最初からお作法を学んでから実装すべきだと思う。 そうですね! 一応、プログラミングのスクールには通っていたのですが、 DB関連についてはあまり深くまで教えてもらえなかったので、 どうしても自分の書くコードが遠回りで要らないステップを踏んでたり、セキュリティ的に甘い気がして自信が持てず、正しい解を欲してしまうフシがあります。 書籍等を見てもう一度学び直してみようと思います。 >私が使うかと問われれば使わない。 >私がDBを使うシステムを作る時は必ず(設定をすれば)全SQLをログ >に残せるように作るので、emailどころかkeyが生で出てくるからだ。 >そっちの方がよほどセキュリティリスクが高いと私は判断する。 なるほど、全SQLのログを残すなんてことも設定できるんですね。 その辺も勉強不足だったので、お作法を学び直してみようと思います! ご回答、ありがとうございました。