トップページ⇒php
1001コメント345KB

△▲ WebProg 初心者の質問 Part21 ▼▽

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/11/09(月) 02:32:15ID:???
2ちゃんねるは初めて。 WebProg 板は初めて。
質問したいけど、どうしたら良いか分からない。

そんなときは、ここに書き込んでください。
板の住人や、その他が、けなしながら、厳しく教えてくれるかも。

質問する前に、まずはここを読んでね。
【注意事項】
・質問する前にGoogleで検索してみましょう
http://www.google.co.jp/
・環境(ソフトウェアのバージョンなど)は、必ず書いてください。できるだけ詳しく。
 後から情報を書き足す、いわゆる情報の小出しは極力避けてください。
・何がしたくて、何ができて何ができないのかを書きましょう
・マルチポスト(複数のスレッドで質問する行為)は絶対に禁止です。
・過去ログは必ず読みましょう。あなたと同じ質問をしてる人がいるかも知れません。

2ch 総合ガイド
http://www.2ch.net/guide/

お願い。
適切な、板、スレ、を発見した場合、誘導してあげましょう。
スレの性質上 age 進行でお願いします。

関連情報は
>>2-3辺り

☆前スレ☆
△▲ WebProg 初心者の質問 Part19 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1244038749/
(実質Part20)
0611nobodyさん2010/02/09(火) 23:32:07ID:???
>>608
そのエラーを見るとPHP5.3だな
0612nobodyさん2010/02/09(火) 23:33:17ID:???
>>608
俺みたいな完全潔癖症でエラーを出さないSTRICTなコードを書くなら別だが
そこまでしないのであれば@でもつかってエラーを隠しとけばおk
0613nobodyさん2010/02/09(火) 23:41:56ID:???
完全潔癖症の人間はPHPを使わない
0614nobodyさん2010/02/09(火) 23:46:44ID:???
まぁいえてるな
0615nobodyさん2010/02/11(木) 14:25:06ID:???
DBサーバーにあまり負荷をかけさせないための方法なんですが、
1.十五分経った時に一番最初にDBにアクセスした人が
その結果内容(html)をファイルとして保存させる。
2.二番目以降にアクセスした人は
一番乗りの人が作ったファイルを閲覧する。
3.以下繰り返し
結構良い方法では、と思ったのですがこれって問題はあるのでしょうか
0616nobodyさん2010/02/11(木) 14:28:35ID:???
リアルタイムの情報を知ることができない
って点以外はいいんじゃないの。よくやる手の一つ。
0617nobodyさん2010/02/11(木) 15:03:35ID:???
>>615
単純なものなら問題ない。
もちろん、ユーザー判別クッキー(ようこそ"アカウント名"さん)とか
User-AgentやAccept-Languageなどで出力を変える場合は要注意。
(最初にアクセスした人の環境に出力が固定化されてしまう)
0618nobodyさん2010/02/11(木) 15:59:32ID:???
よほど頻繁にDB入力があるのでなければ
DBに何かを入力した時点でhtmlを静的出力することも検討すればいいんじゃないかな
0619nobodyさん2010/02/11(木) 16:06:26ID:???
15分ごとに変化をチェックして実行すればいいんじゃないかな
0620nobodyさん2010/02/11(木) 16:11:19ID:???
サーバー側に15分間キャッシュさせとくだけだろ。
で、どういう構成のアプリなんだ。
0621nobodyさん2010/02/11(木) 16:57:37ID:???
自分の家にDBを置いて変化があったらHTMLをサーバにFTPしちゃえば良いんじゃないかな
0622nobodyさん2010/02/11(木) 20:38:53ID:???
DBサーバを負荷に耐えられるものへと強化しちゃえばいいんじゃないかな
06236152010/02/11(木) 23:44:00ID:???
ありがとうございます。
アドバイス大変参考になりました、なんとかうまくいきそうです。
DB鯖が強くないとしか情報を頂けず、なおかつ負担は増やしたくない。
DBでselect以外一切禁止、ついでにphpで秘密裏にという面白い状況で困っとりました
0624nobodyさん2010/02/12(金) 08:55:31ID:8P3tqYHt
Zend_MailとかZend_Httpあたりではまったのですが、これらを理解する為にはインターネットの知識(特に接続)なんかがなければサッパリだと思いました
一応上記のZFの部分は勉強したのですが、元となる知識を学習したいと思います

本屋で何度か色んな本を見てみたのですが、そもそも知識が乏しいのでどれがいいのか分かりませんでした
この手の知識を学習するには何か有名な本とかありますでしょうか?
0625nobodyさん2010/02/12(金) 10:15:30ID:1J/95e0f
会員制サイトで、ID(メアド)とパスワードを忘れたら、、って時の対処ロジックを知りたいです
ブログやカード情報とかの重要情報が登録されていて「0からアカウント作り直し」が安易にできない
環境を想定しています。トラブルのケースとしては以下があるとして…
1)パスワードを忘れた場合  2)メアドを忘れた場合  3)両方忘れた場合

1)に対して
 秘密の質問と答えで照合して正しければ登録メールアドレス(ID)に仮パスワード送信。
 一定時間内にログインとパスワード再設定。
2)登録時に緊急用メールアドレスを正メアドとば別に登録させておいて、秘密の質問と答えで確認後
 緊急用メアドに正メアド(ID)を送る(あなたのログインIDは[email protected]です、みたいな)
3)秘密の質問と答えで確認後、緊急用メアドにID,仮パスワードを通知。その後
 一定時間内にログインとパスワード再設定。
 
 こんな感じで良いんでしょうか?
0626nobodyさん2010/02/12(金) 11:58:11ID:???
自分のメアド忘れるアフォにつける薬は無いと思った方がいい
自分のメアド(ID)は忘れることはない前提で作った方がスマート
0627nobodyさん2010/02/12(金) 12:14:33ID:???
はい、また自分が地球の中心にいると思(ry
0628nobodyさん2010/02/12(金) 13:16:57ID:???
>>625
1)の場合はIDがキーになるから良いとして、
それ以外の場合「秘密の質問と答え」だけでユーザーを特定するのは無理だろうね。
0629nobodyさん2010/02/12(金) 13:24:54ID:???
1)は、秘密の質問なんて冗長じゃね?
要求があった時点で再設定用一時URLを登録メールアドレスに送っちゃえばいいと思う。
そうしてるサービスも多いし。
どうしてもやりたいなら、秘密の質問(と回答)も忘れたというトラブルをユースケースに加えること。

2)は緊急用メールアドレスとの二重管理が冗長。個別対応で十分じゃないかね。
こっちでなら本人確認のための秘密の質問が生きるかもね。

3)白根。
0630nobodyさん2010/02/12(金) 13:27:14ID:???
個人的経験から言って
メルアドを2個も入力させるのは非常に嫌がられる、多くの人が登録する気持ちをなえさせるのに十分なくらい
そしてたぶん、チェックを入れないと2個目はウソばっかれると思う

そしてID忘れるようなやつはきっと緊急ようとして書いたメアドも忘れている
(登録時に、しかたなしに取った、その場しのぎのフリーメールだったりして)
06316252010/02/12(金) 14:02:31ID:???
皆さんたくさんの意見ありがとうございます
言われなきゃ気づかなかった点も多くて助かりました
参考にして頑張ります。ありがとうございました
0632nobodyさん2010/02/14(日) 10:19:33ID:???
メールアドレスがIDで困るのは忘れるというより既に使えないアドレスの場合の付け替え
忘れたパスワード送ってもらおうにも、受け取れないという・・・
0633nobodyさん2010/02/15(月) 17:29:55ID:???
住所・電話番号・氏名を登録時に要求
規約に虚偽の情報ならアカウント削除しますと書いておく

IDもメアドもパスも忘れてどうしても継続利用して欲しい場合は身分証明書のコピーを送るように伝える
これで諦めてくれる
0634nobodyさん2010/02/15(月) 17:34:03ID:???
そういうので退会の手続きさせるとこがあったな。
退会しないといつまでもクレカから引き落とされる悪質なのが
0635nobodyさん2010/02/16(火) 22:46:55ID:???
ウェブデザイナ向けのphpについての実践的な参考書があれば教えてください

※以前、「やさしいphp」という参考書を買ったのですが、概念的な説明ばかりで、
実際に、WEBサイトとPHPがどうからんでくるのかが理解できませんでした
実際に、「phpのページを作る」「xhtmlをphpに変える」などの実践的な内容が希望です。


ここで質問してよいのか迷ったのですが、スレチでしたら誘導お願いしますm(_ _)m
0636nobodyさん2010/02/16(火) 22:50:07ID:???
phpスレではphpマニュアル以外は信じるなと言われてるので
本の紹介はしてもらえないかと
htmlの基礎知識があるならphpマニュアル読み進めていけばどういうものかわかるはず
http://www.php.net/manual/ja/
0637nobodyさん2010/02/16(火) 23:27:57ID:???
>>635

言語なんてそんなもんじゃね、英語とかでもさ

概念がわかったら、
まずやりたいことを決めて、それをどう実現してるかググルなりして調べたほうがいいよ
それも「phpのページを作る、xhtmlをphpに変える」見たいな抽象的なことじゃなくて
カウンター作ってみる、掲示板を作ってみる、ログインした人だけ見れるサイトを作ってみる
みたいな具体的なできることを増やしていく

そういう目で見れば本だって人に聞かないで自分で選べると思う
0638nobodyさん2010/02/17(水) 01:43:07ID:???
自分はWebプログラミングの深いところはあんまりわからないけど
フレームワークを使っているから欲しい機能だけ集中的にイメージすれば
いいようになって、PHPサンプルとか逆引きとか見て参考にして作るうちに
自分の作りたいサイトが実現できてるようになった。

入門書と実際に作るものの間には、もう1つか2つぐらい段階がありそうだけど
「こんなのが作りたい」っていうイメージがあれば、そこから類推して
足りない部分が見えてくるんじゃない?
そしたらあとはそこを勉強して補っていけばだんだんわかるようになってくる。
0639nobodyさん2010/02/17(水) 11:54:40ID:???
まずは「春男悪度」を表示させるところから。
0640nobodyさん2010/02/17(水) 14:20:32ID:???
スキルを上げるためにショッピングカートを作ってるのですが、
カード決済ってどうやって実装すればいいのでしょうか?
ぐぐっても代行サービスとかに任せる形になってるような感じなのですが、
具体的にはどうしたらよいのでしょう?
あとSSL対応についてですが、
これはサーバがSSL証明書をもっていて、httpsでのアクセスが可能ならば、
スクリプト側では特に何もしなくて大丈夫なのでしょうか?
掲示板程度しか作ったことがなくて業務システムについてはさっぱりです。
どなたかアドバイスお願いします。
0641nobodyさん2010/02/17(水) 14:36:29ID:???
>>640
クレジット決済は代行会社に申し込んで
その会社が指定する方法でデータのやり取りをするから、とりあえずは申し込みor問い合わせすべし

SSLはサーバ側の設定とスクリプト側ではHTMLのリンクだけ注意

0642nobodyさん2010/02/17(水) 15:15:51ID:???
一個人がカード会社と直接は契約できないので、
決済代行と契約してくださいな。
0643nobodyさん2010/02/17(水) 15:25:26ID:???
お勉強のためならそこまでしなくてもオレオレ証明書でSSL通信して
 カード情報入力→一部伏せて確認画面→注文(で、情報取得可なことを確認)
これぐらいでいいと思うよ。

「注文」のとこでカード情報を決済代行屋さんにどう投げるのかとかは
実際に契約する用事ができたときに考えればいいんじゃないかな。
06446402010/02/17(水) 16:00:22ID:???
>>641-643
お三方レスいただきありがとうございます。
カード会社の件は了解いたしました。
代行によって違うということは、
実際に申し込んで見ないとどういうものかは分からなそうですね。
とはいえ実際にネットショップを開くわけではないので
とりあえずカードは未対応で作ってみたいと思います。
どうもありがとうございました、
0645nobodyさん2010/02/20(土) 15:31:05ID:???
PHPscriptが動作しているOSの種類やバージョンが分かる関数はあるのでしょうか?

改行コードのバイト数を「 strlen(PHP_EOL) 」で判定する
参考URL
http://blog.fukaoi.org/2010/01/04/php_eol

また日本語名を含むファイルをアップロードした際に日本語が化ける問題はどう対処すればいいのでしょうか?
アップロードしたファイルのファイル名を動作しているOSに合わせて変換はできますか?
参考URL
http://itpro.nikkeibp.co.jp/article/COLUMN/20080515/301933/?ST=oss&P=3

mb_internal_encodingはPHPの設定ですが、OSの設定を知る事はできないのでしょうか?

教えて!エロイお姉さん!
0646nobodyさん2010/02/20(土) 15:42:59ID:???
コピペうぜぇえ
0647nobodyさん2010/02/20(土) 15:50:25ID:???
マルチ乙
0648nobodyさん2010/02/20(土) 18:02:46ID:???
>>645
phpinfo
0649nobodyさん2010/02/24(水) 08:55:37ID:bh88JagV
あ
0650nobodyさん2010/02/24(水) 11:06:11ID:???
>>649
うん
0651nobodyさん2010/02/24(水) 13:53:11ID:???
阿吽の呼吸ですね
0652nobodyさん2010/02/24(水) 16:14:39ID:???
いい感じです
0653nobodyさん2010/02/25(木) 17:47:14ID:???
もっこりしてきました
0654nobodyさん2010/02/26(金) 00:23:13ID:???
mixiアプリ上のゲームやツール類の開発言語はなんでしょうか?
あれは普通にフラッシュゲーム類なのでしょうか?
0655nobodyさん2010/02/26(金) 00:44:39ID:???
javascriptだろ
0656nobodyさん2010/02/26(金) 09:47:43ID:???
サンシャイン牧場とかああいう凝ったゲームもjavaなの?
0657nobodyさん2010/02/26(金) 09:56:14ID:???
>>656
HTMLのソースみなよ。
Flashならソースみるまでもなく単に画面で右クリックして
「Adobe Flash Player 10 について」ってでてくればFlashだよ。
0658nobodyさん2010/02/26(金) 09:58:24ID:???
とは限らない
Flash「も」使っているだけかもしれない
0659nobodyさん2010/02/26(金) 10:01:11ID:???
そりゃそうだろ
0660nobodyさん2010/02/26(金) 10:24:33ID:???
そりゃそうだろって中身の実装が何かが分からないってことを言ってるのだが
クライアントがFlashなだけでJavaでシステム組んでるかもしれないじゃん
0661nobodyさん2010/02/26(金) 10:26:06ID:???
そうだね
0662nobodyさん2010/02/26(金) 10:50:56ID:???
開発言語はなんですか?→知るかボケ本人に聞け
作れますか?→やる気と技術があれば作れるんじゃね
0663nobodyさん2010/02/26(金) 14:43:06ID:???
作れますか?→お前には無理
0664nobodyさん2010/03/08(月) 11:36:16ID:???
そうですか、てめぇの意見参考になりました。
0665nobodyさん2010/03/08(月) 12:25:14ID:???
作れますか?→お前次第
0666nobodyさん2010/03/08(月) 18:02:10ID:2nbdnXAH
管理画面を作っています
form.php?mode=change&id=100
のURLでid100の商品の情報を変更する仕様で、
編集用のフォームを出力するんですが、idに値がセットされていないときは
当然編集対象が不明になってしまいます。

こういうとき、どうしてますか?
1)警告画面を出力する。(idが不明です。編集対象の商品が不明です。 みたいなメッセージを出す)
2)他のページの同様のエラーもまとめて一つのエラーページに飛ばす。メッセージは「不正なアクセスです」のみ。
3)何もしない。(既存の情報をフォームにプリセットさせる処理などができないけど無視)

一つ前の画面で「この商品の情報を変更する」などのリンクを普通に踏んで来てくれれば
idがセットされてないなんて事はありえないという構造を前提にアドバイスください。
わざわざid値を消すような奴は無視で良いのかな?
このページに限らず、そんなヘンな処理を一つ一つ対応してたらきりがない気がして相談しました
0667nobodyさん2010/03/08(月) 18:35:46ID:???
Webプログラムの基本的な考え方は、クライアントから渡される情報は
すべてチェックしろ、ってのが原則だ

それを踏まえた上で、システムの動作に問題がないのなら好きにしろ
0668nobodyさん2010/03/08(月) 18:39:52ID:???
そういうのって、クライアントがどうしたいかによるんじゃね
どれが正解とかあるの?

明らかに不正なのの、対処は必要だけど
0669nobodyさん2010/03/08(月) 19:28:15ID:???
渡される値を100%信用しちゃ駄目

ってことで>答え
0670nobodyさん2010/03/08(月) 23:06:43ID:???
>>666

> 1)警告画面を出力する。(idが不明です。編集対象の商品が不明です。 みたいなメッセージを出す)
パラメータの過不足はバグ取り用にしか出さない方がいいと思う。利用者に見せると「あーこれがIDなのか、じゃぁここをついて・・・」みたいに悪用する暇人もいる。

> 2)他のページの同様のエラーもまとめて一つのエラーページに飛ばす。メッセージは「不正なアクセスです」のみ。
これが無難かな。

> 3)何もしない。(既存の情報をフォームにプリセットさせる処理などができないけど無視)
サイト自体がおかしいからサヨナラしようかなと思われるから、ノーリアクションはまずい。

私なら、型チェック(期待したストリングか)は当然のようにした上で、IDがないならログインへ、商品がないなら商品選択画面へ戻すかな。親切すぎないほうがいいとおもうけど。
悪意がないけどIDが期限切れで抹消されてるとかありえるしね。ユーザ逃がしちゃ意味ないし。

※ 蛇足だが、中途半端なリンカーソフト(メモ帳に毛の生えたやつとか)から長いURIで飛ぶと?以降が切れてたりするので、いちおうフォロー入れてもいいかなっと。
06716662010/03/08(月) 23:26:29ID:2nbdnXAH
皆さんどうもありがとう

>>670
すごい親切ですね
どんどんコードが長くなっていくなあという感じで、めんどくさいってのが本音だけど
そういうエラー時の処理の流れを管理するクラスのようなものを作ってるんでしょうか?
どのサイトでもちょっとの修正で使いまわせるような…
たぶん、コードが綺麗なんですね。そうじゃなきゃ見づらくなる一方でイライラするし。


もう一つ聞きたいんですが、データのSQL登録やselectで失敗したとき、どうしてるんですか?
エラーをキャッチしたら適宜メッセージページに飛ばしつつ、
エラー情報を管理者にメールするとかしてるんですか? それくらいやるのがプロとして当たり前?

自宅サーバで操作してる分にはクエリの失敗なんて起きないので、
実際にそんなことがどんな頻度でどんなときに起こるのかわからなくて、いまいち重視してないんですが…
0672nobodyさん2010/03/09(火) 00:21:17ID:???
>>671
> データのSQL登録やselectで失敗したとき、どうしてるんですか?

時間がたったらやり直してね(うふっ) です。「接続できませんでした」みたいなそっけないのは普通の人に意味がないので出しません。

遷移した画面でユーザ側が「あー、データ登録できてないな」って確認できるのが前提で、
超大事なフォーム入力データはDBに書いたのをまたHTMLで返して、最終確認でポチってもらって、そのときにhiddenで送ったデータとDBから読み出したデータが合えばOK。

DBでエラー吐くたびにメール出してたらそっちのが累積して鯖固まるのではないかと。
0673nobodyさん2010/03/09(火) 00:24:41ID:???
ログに吐けばいいだけじゃねーの。
メール飛ばすかどうかはログ監視でやればいいだけの話だし。
0674nobodyさん2010/03/09(火) 00:58:21ID:???
>>672-673
ありがとうございます、すごい勉強になります。

>DBでエラー吐くたびにメール出してたらそっちのが累積して鯖固まるのではないかと。
そんなに頻繁にDBてエラーするんですか?
フォームデータのバリデートするのは当然の前提でもですよね?
プログラムだけの対応じゃどうしようもないエラーってことでしょうか
たとえばどういう条件でおきるものなんですか?

>ログ監視でやればいい
なるほどー

くどくてすみません
0675nobodyさん2010/03/09(火) 01:13:46ID:???
>>674
トランザクションやロック処理で調べるとDBやファイルの扱いで延々とコケる説明が出てきます。
HTTP経由なら同時接続数自体を絞れば、DB側がボトルネックにならずにすむんじゃね。セッションさえ残っていればリトライできるんだし。
0676nobodyさん2010/03/09(火) 01:28:22ID:???
>>674
そんなに起きないよ
でも仮に何かの原因で1ページ10〜20のクエリが失敗した場合が、その数xアクセス数のメールが飛ぶぞw
ログに書き出せばおk
0677nobodyさん2010/03/09(火) 19:09:06ID:???
JavaScriptについて教えてください。

JavaScriptでクッキーを削除したいのですが
Firefoxでは削除されないようです。
ググってみたところ下記の方と同じようです。
http://questionbox.jp.msn.com/qa4057581.html

何かよい方法はないものでしょうか?
0678nobodyさん2010/03/09(火) 19:44:49ID:???
設計からやり直す
0679nobodyさん2010/03/10(水) 00:47:13ID:OK6KN61F
フォームの登録処理(DB)のあと、完了しましたって画面にリダイレクトさせてるんだけど、
そこからブラウザの戻るボタンで戻られても二重登録にならないようにしたい。
どうするのがおすすめ?

DBに入れる登録用データがセッション使って登録画面まで引き回されてる作りなんですが
リダイレクトした完了画面でセッションを破棄させる対応で大丈夫ですか?
(セッションがなかったら警告ページにリダイレクトで)

もっといいやり方ありますか?
0680nobodyさん2010/03/10(水) 01:04:27ID:???
>>679
セッションクリアでいいんでない?
あとメアドとかだったら二重登録自体できないようにするとか画像認証いれるとか
0681nobodyさん2010/03/10(水) 02:42:10ID:OK6KN61F
>>680
ありがとうございます。
セッションクリアだけで大丈夫でしょうか?
ページ戻ったら、セッションのキャッシュがあってそれで再送信されるなんてことないかな

セッションはサーバーに保管してるものだからブラウザのキャッシュなんて関係ないかな?
知識不足ですね、どうなんでしょう?
0682nobodyさん2010/03/10(水) 03:15:39ID:???
セッションがあってもセッションデータがなければ大丈夫
0683nobodyさん2010/03/10(水) 16:53:26ID:???
心配なら突合せ処理も入れればいいんじゃね。変な鯖じゃなければCPUに余裕あるだろうし。
06846792010/03/10(水) 22:17:53ID:???
>>680-683
ありがとうございます。とりあえずセッションクリアで対応してみます。
0685nobodyさん2010/03/14(日) 00:05:26ID:e6JahMR0
空メールを送ってもらい、登録URLを送り返して個人情報を入力してもらい登録、
登録後はメール配信を行うシステムの構築を考えています。
MySQLを使って情報をデータベース化しても良いのですが、
サーバーが専用サーバーではなくVPSでの運用で、さらにMySQLの知識や経験がほとんどなく、
セキュリティ面が心配なため、登録メールを端末PCで、メールで受信してローカルで保存することを考えています。
ローカルのデータベース化および配信は専用ソフトを使うつもりですが、
専用ソフトの登録情報取り込みがPOPのみでサーバから端末PCまでが暗号化されません。
多少無理してでもSQLで運用した方が良いのか、それともサーバから端末までの
経路での不安を抱えながらが良いのか、識者の方のお考えを伺えたらと思っております。
0686nobodyさん2010/03/14(日) 00:18:42ID:???
DBに格納すれば安全なわけでもないし、
メール受信が平文なら他でいくら心配しても無駄ではない?
0687nobodyさん2010/03/14(日) 00:21:56ID:nHgOFBBV
きっと気にしなくても平気だろうけど

専用ソフトがなんだかわからんけど
個人情報受け取ったcgiが暗号化してメール投げる
受け取っててもとで平文にしてdbにいれる
専用ソフトは暗号化されたsendmailを使う
とかできるんじゃね
0688nobodyさん2010/03/14(日) 00:58:46ID:e6JahMR0
>>686
やはりDBでも安心はできないですよね。
>>687
PHPでの実装を考えています。
専用ソフトは、指定した書式のメールを受信して取り込み自動的にDBに書き込みます。
配信は別のソフトで、こっちはPOPoverSSLに対応しています。
別のメーラーで一度SSL通信で受信後、DBに書き込むことは可能ですが、
あまりにも手間がかかってしまいます。

ユーザー −登録情報(SSL通信)→ サーバー 

サーバー −PHPで指定書式にした登録情報のメール(非SSL POP)→ 管理PC
もしくは
サーバー −登録情報(SSL)→ 管理PC 指定した形式に都度変換→DB
といったところでしょうか。
登録ユーザーは別途名簿があり、対象者に直接書面で登録URLを知らせます。
登録情報はメールアドレスと氏名、登録区分程度で、ウェブなどには公開しないのですが、
それでも平文でメールが流れるのはリスクを伴いますよね。
リスクと手間、どこかで妥協しなければならないですよね・・・。
0689nobodyさん2010/03/14(日) 03:42:39ID:???
ログイン機能のあるウェブサイトのDB設計で
「ユーザテーブル」と「ログイン情報テーブル」のように分けるケースをよく見かけます。
(ユーザテーブルに名前や住所や電話番号などを格納して、ログインテーブルにログインIDとパスワードを格納する感じ)

ユーザテーブルにログインIDやパスワードを保持するのは何か問題あるのでしょうか?
ユーザとログインIDは通常1:1の情報だから同じテーブルに入れるのが筋だと思うのですが。
0690nobodyさん2010/03/14(日) 03:44:04ID:???
いや問題はない
利便性のために意図的に正規形を崩してるだけ
0691nobodyさん2010/03/14(日) 05:17:43ID:???
>>689
ORMとかリレーショナルデータベースでググレ
06926892010/03/14(日) 10:09:58ID:???
>>690
>>691
ありがとうございます。
利便性というのは具体的にはどのような効果があるんでしょうか。
ORMがヒントであるなら、ユーザ情報とログイン情報を別のクラスとして扱いたいということですか?
むしろ面倒くさくなりそうです。
一般的にはログイン後にユーザ情報を取得すると思いますが、
ユーザテーブルとログイン情報テーブルにテーブルを分けてしまうと、ログイン処理の度に二つのテーブルを参照する必要がありますよね。
0693nobodyさん2010/03/14(日) 21:21:48ID:???
たとえば、ログインするのに、そのユーザの住所や電話番号が必要か?
ログインIDとパスワードだけでいいのに、不要な情報まで取得するのは無駄だとも考えられるだろ

まあ、ログイン処理で実テーブルの構造考えるようじゃ、
ORMやる意味ないけどな
0694nobodyさん2010/03/14(日) 23:04:07ID:???
すいません、xampp について質問する板はここでいいんでしょうか。
もし違うなら板を教えてください。よろしくお願いします。
0695nobodyさん2010/03/14(日) 23:06:25ID:???
>>693
その理由だけだと、いらない情報はselectで外せばいい、と返されてしまうよーな。
0696nobodyさん2010/03/14(日) 23:43:24ID:???
>>695
アプリ側だけみればその通りだがDBMSの動作って範囲で考えると違いがでてくることもある

まあ、実際に動作的な問題でテーブル分けてる場合は少ないと思うが
(とくにロックを長時間保持することのすくないWEBアプリなら)
ほとんどは設計が適当だったりした結果別テーブルなだけだと思われ
別テーブルであることに明確な理由はなく
将来の拡張に備えてとか言う言い訳がついたりするパターンだな
0697nobodyさん2010/03/14(日) 23:47:37ID:???
利便性
拡張性
便利な言葉だね
0698nobodyさん2010/03/15(月) 00:06:56ID:???
金取るためにゃ便利な言葉さ
0699nobodyさん2010/03/15(月) 10:05:19ID:???
基本的に、変更がありえないものだけで1つテーブル作って
それ以外は分けるべき。キリが無くなるし、
あとで別の人がメンテしようとしたときにうんざりする
0700nobodyさん2010/03/15(月) 16:32:50ID:???
もうDB板の範囲。WebProgに特化した話題じゃないし。
0701nobodyさん2010/03/16(火) 00:42:52ID:???
>>694
下記にあったよ

xamppってどうよ?
http://pc11.2ch.net/test/read.cgi/mysv/1128262593/

とりあえず何につまづいてるのかわからないと詳しい誘導もできないだろな。
0702nobodyさん2010/03/16(火) 01:23:04ID:???
投稿サイト作ってるのですが
各投稿に番号をつけようと思って
投稿時間(UNIX値)を使いたいのです。

これを重複させないようにするには
ファイルロックしながらtime()関数を使えばいいのでしょうか?
0703nobodyさん2010/03/16(火) 01:41:43ID:???
何故データベース設計は軽視されるのか?
http://pc11.2ch.net/test/read.cgi/db/1228061247/446-447
0704nobodyさん2010/03/16(火) 01:51:17ID:???
>>702
それなら時間+区切り文字+固有のID(プロセスでもなんでもいい。)かな。
IDはユニークでなきゃだめなんだから、ロックしていてもかぶるかもしれんのは使いたくない。
0705nobodyさん2010/03/16(火) 02:52:29ID:???
いろいろ参考になりました!
0706nobodyさん2010/03/16(火) 07:26:49ID:???
ファイルロックのときに1秒待てばいいんじゃね?
0707nobodyさん2010/03/16(火) 13:03:13ID:???
>>702
あちこちで聞いてるね。
答えようと思ったけどどこで答えたらいいか迷うので答えない。
0708nobodyさん2010/03/16(火) 13:07:20ID:???
答えなくていいよw
大した知識があるわけじゃないだろうし
0709nobodyさん2010/03/16(火) 14:03:21ID:???
そんな風に煽ってみたってマルチには答えないよw
0710nobodyさん2010/03/16(火) 17:18:04ID:???
あちこちってどこだよ
■ このスレッドは過去ログ倉庫に格納されています