△▲ WebProg 初心者の質問 Part16 ▼▽
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/08/22(水) 05:53:43ID:???質問したいけど、どうしたら良いか分からない。
そんなときは、ここに書き込んでください。
板の住人や、その他が、けなしながら、厳しく教えてくれるかも。
質問する前に、まずはここを読んでね。
【注意事項】
・質問する前にGoogleで検索してみましょう
http://www.google.co.jp/
・環境(ソフトウェアのバージョンなど)は、必ず書いてください。できるだけ詳しく。
後から情報を書き足す、いわゆる情報の小出しは極力避けてください。
・何がしたくて、何ができて何ができないのかを書きましょう
・マルチポスト(複数のスレッドで質問する行為)は絶対に禁止です。
・過去ログは必ず読みましょう。あなたと同じ質問をしてる人がいるかも知れません。
2ch 総合ガイド
http://www.2ch.net/guide/
お願い。
適切な、板、スレ、を発見した場合、誘導してあげましょう。
スレの性質上 age 進行でお願いします。
関連情報は
>>2-3辺り
欲しいCGIが見つからないならこっちへGo!!
【CGI】こんなCGI探してますver.22
http://pc11.2ch.net/test/read.cgi/hp/1166794984/
前スレ
△▲ WebProg 初心者の質問 Part15 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1169725490/
0608604
2008/01/19(土) 16:44:59ID:???あ、今日のヤツを表示してたダケなのか、、、スマン確認不足だった。
何かそれっぽい数字が出たのでオッケーだと思ってしまった。
POSTで与えないとダメっぽいね。さらにリファラーを設定せんとダメかもー
0609nobodyさん
2008/01/19(土) 16:58:51ID:???○ LiveHTTPHeadersとかieHTTPHeadersとか入れてブラウザが何やってるのか見ようze
だった なんか短いと思ったんだ
0610nobodyさん
2008/01/20(日) 11:46:56ID:???0611nobodyさん
2008/01/20(日) 12:25:09ID:???0612nobodyさん
2008/01/20(日) 14:42:10ID:jGlr+mbd1)イベントの基本情報(開催日、開始時間、参加費etc)の登録
2)そのイベントへの参加者(複数)の情報(名前、簡単なプロフィールetc)の登録
という流れのプログラムを作ろうと思ってます
で、1)、2)の登録先テーブルはそれぞれ別なんですが、
1)のDBへの登録がすんでから、2)の登録に移るべきなんでしょうか?
それともhiddenで引き回してまとめて登録?
基本情報を先に登録しないとイベントIDをキーにして参加者登録できないから
別々かなって思うんですが、基本情報の登録後に接続エラーが起きて、
参加者だけ登録できない状態で公開みたいになるのも嫌だし、、
どんなやり方がいいんでしょうか?
0613nobodyさん
2008/01/20(日) 15:49:33ID:???0614612
2008/01/20(日) 18:15:26ID:jGlr+mbdレスありがとうございます トランザクションて初めて聞きました
ちょっと高等テクニックぽいですね
トライしてみます、ありがとう
0615nobodyさん
2008/01/20(日) 18:38:48ID:???先に参加者0人の状態で基本情報を追加して
後から参加者を追加削除できる画面へ行かせればいい。
>参加者だけ登録できない状態で公開
公開/非公開を選択できるようにしておく
0616nobodyさん
2008/01/20(日) 23:44:02ID:???Webシステムを構築する際の基本的なところがわかりません。
VBやC++でクライアントアプリケーションを作成する場合、
サーバ側はWebサービス、として動作する仕組みを用意
する必要がある、ということでよろしいでしょうか。
0617nobodyさん
2008/01/21(月) 01:29:00ID:KPl3BNLFファイルアップロード→サーバ解析・・・とするしか
方法ない?
クライアント側で解析してから送信なんてできないよね?
0618nobodyさん
2008/01/21(月) 02:22:13ID:???一般に「Webシステム」というとブラウザを使うもの
どちらにしろサーバ側にシステムが必要という点では合ってる
>>617
意図するところがわからんが
とりあえずサーバ側でやった方が楽
0619nobodyさん
2008/01/21(月) 21:18:46ID:LlcZb9swたとえば、
http://www.google.co.jp/search?q=ほげ
のようにした場合、search内でqを取り出すとどうなるんですか?
今環境がなくて試せないんで、よろしくお願いします。
0620nobodyさん
2008/01/21(月) 22:07:36ID:???0622nobodyさん
2008/01/22(火) 13:50:38ID:???コーディングやプログラムの実行は全部記憶などで
やってるのかな?
0623nobodyさん
2008/01/22(火) 14:21:47ID:???勉強しようという信念がすごい。
0624nobodyさん
2008/01/22(火) 16:27:10ID:???Perlでプログラムを動かし、csvファイルの内容を読み込んだり、
書き込んだりしている場合、csvファイル名というものは簡単に
分かるものなのでしょうか。
input type=hidden タグなどにはcsvファイル名が入っていない
場合の話です。
0625nobodyさん
2008/01/22(火) 16:35:38ID:???自分で変えてれば普通はわかんないでしょ
0626nobodyさん
2008/01/22(火) 16:40:09ID:???自分は、自分で作ってるのとか配布されてるやつのデータ保存先は毎回そうやってる。
0627nobodyさん
2008/01/22(火) 16:42:09ID:???ダメなら.htaccess使おうよ
0630nobodyさん
2008/01/22(火) 16:49:39ID:???バックアップのときとかあと開発中のときときとかはスクリプトの配下にデータディレクトリがあると
なにかと便利なんですよね^^;
0631nobodyさん
2008/01/22(火) 16:55:42ID:???0632nobodyさん
2008/01/22(火) 17:09:20ID:???.htaccessで、csvファイルが置かれているディレクトリやファイルへの
アクセスを出来なくするわけですね。
そうすると安心ですね。
0633nobodyさん
2008/01/22(火) 17:43:57ID:???データファイル置き場をランダムな文字列にした方がいいです
※ 追記
高負荷いってもひっきり無しに HDD が動くほどアクセスがあっての場合の話です
0635nobodyさん
2008/01/22(火) 20:21:08ID:???0637nobodyさん
2008/01/22(火) 23:24:05ID:HbTlLDnk> 一般に「Webシステム」というとブラウザを使うもの
とありますが、サーバ側にServletがあって、
クライアント側がC++とかVBとかで動作する
アプリケーションは何と呼べばよい?
クラサバシステム?
0638nobodyさん
2008/01/22(火) 23:46:13ID:???ありがとーござーました
0639nobodyさん
2008/01/22(火) 23:49:11ID:HbTlLDnk0640nobodyさん
2008/01/22(火) 23:58:42ID:HbTlLDnkWebアプリ≠Webシステム?
0641nobodyさん
2008/01/23(水) 02:09:08ID:???みんなはフォルダ名変更とか.htaccess使うの?
というか、パーミッションってレスがないのは、セキュリティ的な理由があったりする?
0642nobodyさん
2008/01/23(水) 02:31:49ID:???もし、サーバの設定がザルだと他のアカウントから普通に読める。
0643nobodyさん
2008/01/23(水) 03:21:42ID:???スクリプトからのアクセス(スクリプトはファイルI/Oで読む)可能でも
ブラウザからは読めないようにすればいいんじゃね?
.htaccessもいじる必要は無い。
0644nobodyさん
2008/01/23(水) 04:54:08ID:+GfNFwTnディレクトリを自動的に同期させたいのですが、
どうするのがいいですか?
0645nobodyさん
2008/01/23(水) 05:16:07ID:???0646nobodyさん
2008/01/23(水) 06:10:19ID:???自動ではないですが…
0647nobodyさん
2008/01/23(水) 06:25:47ID:+GfNFwTnlfにする処理をどこで行うのがベストでしょうか?
>>646
開発環境に関することなので板違いではないと思いますが…
0649nobodyさん
2008/01/23(水) 06:59:20ID:???やっぱりそれが一番ですか
何かの拍子でcrlfが紛れこんでしまいそうで不安も残りますが
その時はその時ですね
0650nobodyさん
2008/01/23(水) 08:50:27ID:???XAMPPをWinに入れて実行までをやる方法もあるけれど、それは駄目なの?
0651nobodyさん
2008/01/23(水) 09:12:49ID:???0652nobodyさん
2008/01/23(水) 13:19:28ID:???トップページにおいて、リンクが貼られているアドレスと、それをクリックした時に
表示されるアドレスが異なってますよね。
どういった都合であのような仕様にしているのでしょうか。
通常だと 〜.cgi でいいかと思うのですが。
公表されていないことであれば、「わからない」となりますが、プログラム的な
都合であのようにする必要性は、私には無いとしか思えません。
こういう利便性がある、みたいな推測で結構ですので、よろしくお願いします。
0653nobodyさん
2008/01/23(水) 13:22:18ID:???0655nobodyさん
2008/01/23(水) 13:31:49ID:???cgiが動いてますよね。あれはどういう仕組みなのでしょうか。
通常だと以下のようなアドレスになるかと思うのですが。
2ch.net/pc11/read.cgi?1187729623
Apacheの設定では、拡張子の設定はあっても、アドレスにはファイルが
存在していないような設定はないはずですが。
0656nobodyさん
2008/01/23(水) 13:35:21ID:???0657nobodyさん
2008/01/23(水) 13:35:48ID:???0658nobodyさん
2008/01/23(水) 14:00:50ID:???簡単にぐぐってみたら、欲しい情報が出てきましたので、
後で詳しく読んでみます。
0659nobodyさん
2008/01/23(水) 14:14:58ID:???0660nobodyさん
2008/01/23(水) 14:24:15ID:???0661nobodyさん
2008/01/23(水) 16:26:22ID:???0662nobodyさん
2008/01/23(水) 17:02:47ID:???0663nobodyさん
2008/01/24(木) 00:37:44ID:???なるほどね。
まあそんなことはめったに無いか。
あ、でもmod_perlとかで広告挿入スクリプトが誤爆したときとかやばそうだなぁ。
>>643
それなら古典的手法の拡張子.cgiでいい気もする。
0664nobodyさん
2008/01/24(木) 16:05:18ID:oseLc3nhいま、フォームを作っています。
1)記入フォーム 2)確認ページ 3)登録ページ(SQL) 4)完了ページ
という流れがあって、登録ページは登録完了後すぐに4の完了ページに
リダイレクトされるとします。(リロードによる二重送信防止のため)
で、リダイレクト先の完了ページで登録内容を修正したいと思ったユーザが、
ブラウザのバックボタンを押すと確認ページに戻り、そこで「登録」することで
結局2重送信の形になってしまいます
どうしたらいいでしょうか? バックボタン使用禁止などのメッセージを置く以外に
良い方法ないですか?
一度目の登録時に登録完了のフラグを持たせて、用意した「書き直す」ボタンでhidden送信しても
ブラウザの戻るボタン使われたら元も子もないですよね…
みなさんどうやってるんですか?
一応調べたんですが、「戻るボタン使用禁止メッセージ」を使うというのが多くて、
それ以外の考え方が聞きたくてお尋ねしました よろしくお願いします
0665nobodyさん
2008/01/24(木) 16:59:11ID:???http://pc11.2ch.net/test/read.cgi/php/1199956159/775-776
0666nobodyさん
2008/01/24(木) 17:19:17ID:???0667nobodyさん
2008/01/24(木) 17:36:51ID:???0668664
2008/01/24(木) 18:20:31ID:oseLc3nhスレ違いって意味で「どこに書き込んでるんだ」と言われたのかと思い…
質問の件ですが、お願いします
ヒントでもなんでもいいので… よろしくです
0669nobodyさん
2008/01/24(木) 18:22:42ID:???戻るで戻ってパラメタ変えて再送信とかな。
とりあえずHIDDENで時刻やアドレスから作った値でも仕込んでおいて
同じ値は二重送信と判断するとかしてみたら?
0670nobodyさん
2008/01/24(木) 23:18:55ID:???SQL→metaタグで飛ばす→完了しました。
ま、このあたりは深く考えるときりがない話だと思うけどな。
0671nobodyさん
2008/01/24(木) 23:36:37ID:???0672nobodyさん
2008/01/24(木) 23:38:35ID:XLbY+fStひととり説明しているようなサイトってないでしょうか。
サーバサイドだけではなく、クライアント側のC++、VB、Java
等についても何がどうすぐれているのか知りたいのですが。
0673nobodyさん
2008/01/24(木) 23:42:38ID:???そういう比較が欲しい気持ちも分かるが、言語それぞれにモットーが
あるので、目的次第なところがあり、比較しようがないのよね。
だから、大雑把過ぎるもの以外はない。
もっと目的を絞れば詳細に比較をしているサイトはある。
0675nobodyさん
2008/01/25(金) 00:48:12ID:???1)の入力が問題なかったら2)を表示するとともにセッションにデータ入れるでしょ
3)で登録するとともにセッションの該当データ消せばいいよ。
>完了ページで登録内容を修正したいと思ったユーザ
完了ページに編集ページへのリンク置いとくとか。
0676nobodyさん
2008/01/25(金) 00:53:32ID:???0677nobodyさん
2008/01/25(金) 01:01:20ID:???それはGCするしかないだろ、セッション自体そういうものだ。
それより(3)で消したら「戻る」ことができるほうが問題じゃないのかこの場合。
0678nobodyさん
2008/01/25(金) 01:08:19ID:???0679664
2008/01/25(金) 01:49:52ID:???頂いたアドバイスを参考に、以下のやり方を試すことにしました。
1)のフォームページで$_SESSION['inputstart']=1 とする
2)の確認画面にif($_SESSION['inputstart']==0){//エラーページに飛ばす} の処理を追加
4)の完了画面で$_SESSION['inputstart']=0 とする
こんな感じで… まずいですかねー
念のため、ワンタイムトークンていうの調べてみます
ありがとうございました
0680nobodyさん
2008/01/25(金) 02:32:12ID:???画面3の存在が謎だが…
セッションはウィンドウごと複製できちゃうから排他制御したいなら問題だし、
登録ユーザのおいしい情報ならCSRFの問題もあるし、
目的や使いどころによってはそれに応じて別の対策も必要
0681nobodyさん
2008/01/25(金) 03:39:24ID:MSgqQJVyファイルベースで行う方法と、DBベースで行う方法のどちらがいいでしょうか?
DBだと、DBにアクセスするオーバーヘッドがありますが、
ファイルがひとつに固まっているので、メンテナンス性はいい。
ファイルベースだと、DBのようなオーバーヘッドはありませんが
iノードを消費し、大量になるとメンテナンス性が落ちる。
と、一長一短あるとは思うのですが・・・
0682nobodyさん
2008/01/25(金) 03:59:45ID:???一般にDBだとスケールするのが面倒。コネクション数で詰まるからスレーブの台数も多くなる。
0683nobodyさん
2008/01/25(金) 04:10:50ID:???0685nobodyさん
2008/01/25(金) 04:22:27ID:???メンテナンス性っていうのは、
一つのディレクトリにファイルを大量に入れると速度が落ちるからディレクトリを掘らないといけないとか
古いキャッシュを削除する時にファイル数が膨大になると時間がかかるとかです
バックアップも時間かかりそう…と思ったけど
よく考えたらキャッシュのバックアップなんてしなくていいですね
0686nobodyさん
2008/01/25(金) 04:28:10ID:???キャッシュの参照回数など
0687nobodyさん
2008/01/25(金) 04:47:48ID:???DBがメタ情報を持ってることと、キャッシュ本体を持ってることはとくに関係がないな
DBでやるとキャッシュコントロールやバリデーションに応じたレスポンスなど、apacheが
やってる作業を実装する手間があるので、楽をしたいということならURLベースで
キャッシュすることにして全部Squidに任せるのが一番簡単で速いと思う
0688nobodyさん
2008/01/25(金) 05:16:35ID:???なるほどSquidですか…
それは考えたこともなかったです
ちょっと勉強してみます
ありがとうございました
0689nobodyさん
2008/01/25(金) 05:19:27ID:???やはり画像の性質とかサーバ構成など、どのくらいのデータをどうやって捌こうとしてるか次第なところがある。
ごく小規模なシステムで、既存のコンテンツキャッシュと協調させたいとかだとDBも選択肢に入るしね。
まずはファイル削除にどのくらい時間がかかるか、まず試してみることを薦める。
0690nobodyさん
2008/01/25(金) 05:30:13ID:???ブログのアドオンならDBに入れるかな
0691nobodyさん
2008/01/25(金) 05:43:00ID:???リバースプロキシは動的な画像のキャッシュには向かねえべ
任意のタイミングでキャッシュを削除する処理とか必要になったりしないか
ならなきゃそれでいいんだがw
0692nobodyさん
2008/01/25(金) 06:34:54ID:YEESSLoqフォームの要素は名前(name)・年齢(age)・住所(address)で、このセットが
20組くらいあるとします。
出席者は不特定数で、5人のときも20人のときもあります。
登録するテーブルのカラムも上記の3つだけのとき、どうやって
SQL文を書いたらいいんでしょう?
ループをまわすのがよさそうですがどうもよくわかりません
すみませんが教えてください。よろしくお願いします
0693nobodyさん
2008/01/25(金) 06:47:09ID:???出席簿なんだから、来た人物は"何に"あるいは"いつ"出席したかという情報と結びつけなくて良いのか。
0694nobodyさん
2008/01/25(金) 07:27:13ID:YEESSLoqありがとうございます とりあえずそれはいいです
不特定多数のデータを登録する仕組みを知りたいだけなので
よろしくお願いします
0695nobodyさん
2008/01/25(金) 08:02:43ID:???テーブルのカラムのつくりがおかしいと思うよ。
カラムは名前、年齢、住所と出席した講座名として、
その講座に出席した人を登録する。
なお、不特定多数のデータを登録する仕組みはありません。
不特定多数ということはシステム設計上は無限個数データを受け入れるか
ある上限に達したたらデータ登録はしなくてよいという制約を設けるしかありません。
どちらもシステム設計上問題があるので、こうしたアプローチはとりません。
0696nobodyさん
2008/01/25(金) 08:06:45ID:???でも、書き方を知りたいのならば、質問するよりもサイト検索した方が早い。
君が納得するまで、具体例(SQLを実行する前のテーブルの状況と実行結果など)を
書けというつもりなのか?
0698692
2008/01/25(金) 09:04:47ID:YEESSLoq言われてみて読み返すと、自分の文章に問題がありました。
一度の登録は上限20人として、0〜20の間で不特定数です。
(書いてみるとほんとに問題でした、すみません)
くどくてすみませんが、もう一度詳しく説明させてください。
たとえば、テーブルのカラムが最初から20人分あるんだったら
id,name1,age1,address1〜name20,age20,address20のような形で、
insert into table values(0,$name1,$age1,$address1…$name20,$age20,$address20)って
ふうにするのはわかりますが、それだと一人しか参加しないとき大量のNULLが
発生して無駄なので、name,age,addressという3カラムのテーブルにしたいのです。
ただ、このやり方だとどうやって一度に参加人数分のinsertをすればいいのか
わからないのです。
なので、SQLの書き方といったのも間違いで、SQLを表現するプログラム(PHP)の
書き方をしりたいな、と思っています。
フォームの構成は <input name="name"><input name="age"><input name="address">が
20組並んでる構成を考えていますが、それも間違ってるでしょうか?
すみませんが、気が向いたらで結構ですのでご意見お願いします
0699nobodyさん
2008/01/25(金) 10:18:12ID:???これやりだすと面白くてはまる可能性があるが
0701nobodyさん
2008/01/25(金) 11:03:14ID:???だったらテーブルの構造を
id,name,age,address,Attendance
とかにしてAttendanceに出席したら1,出席してないなら0
テーブル増やしちゃいけない場合なら
nameに例えば(小林,1)とかにしてinsertすればいいと思う。
取り出した時にsplitとかで取り出せばOK
0702nobodyさん
2008/01/25(金) 11:53:43ID:???「ある人数分をまとめてinsert into する」という事は通常はやらない。
「1人分のデータをinsert into」を○回行う。を、やる。
htmlでinputタグが20件並んでいて、ボタンを押すということだよな?
だったら、inputの値を取得し、その値が""であれば、SQLは実行しない。
でいいだろ。
工夫してループを書くことが出来ないのであれば、1件分を書いて、
20回コピペしなさい。
0703nobodyさん
2008/01/25(金) 12:02:56ID:???データを同時に一括で登録するというシステムを作ることは少ない。
登録している一覧が表示されており、それに1件追加という
形式の方が多い。
0704nobodyさん
2008/01/25(金) 13:36:45ID:???テーブル名がかかれてなかったので、[テーブル名]としている。
登録したデータ件数は $dat_cnt に入るようになっている。
htmlファイルが、以下のような感じで20件書かれている場合
<input name="name1"><input name="age1"><input name="address1">
<input name="name2"><input name="age2"><input name="address2">
<input name="name3"><input name="age3"><input name="address3">
<?php
$dat_cnt = 0; // データ件数
$i = 1;
while($i < 21){
$name_str = "name" . $i;
$age_str = "age" . $i;
$addr_str = "address" . $i;
// エラーチェック
if($_POST[$name_str] == "" or $_POST[$age_str] == "" or $_POST[$addr_str] =="" ){
// 入力不備なので何もしない。
}else{
// SQL文の準備
$dat[$i] = $_POST[$name_str] . "," . $_POST[$age_str] . "," . $_POST_[$addr_str];
$sql_str = "INSERT INTO [テーブル名] VALUES( " . $dat[$i] . " );"
// ここでSQL実行(省略)
$dat_cnt = $dat_cnt + 1;
}
$i = $i + 1;
}
?>
0705nobodyさん
2008/01/25(金) 14:20:18ID:???http://fair.jmd.ne.jp/detail.asp?feature_cls=1&page=3&merch_set_cd=TECN-10628
上記URLに何か付け足すと買い物かごに入れるURLになるらしいのですが、どなたか分かりませんか?
0706nobodyさん
2008/01/25(金) 14:40:55ID:PGrlWPEk以下のようにしていました。
WindowsXP+IE7だと問題ないのですが、VISTA+IE7環境だと
画像が表示されません。
ローカルファイルへのアクセスが厳しくなったためかと思われますが
設定でもプログラム変更でも結構ですので回避策があれば教えてください。
--------------------------------
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>サムネイル</title>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<script type="text/javascript">
function imgc(objimg) {
document.getElementById("s_img").src= "file:///" + objimg.value;
document.getElementById("s_img").style.display="inline";
}
</script>
</style>
</head>
<body>
<form>
<input type="file" onChange="imgc(this)" /><br />
<img src="" id="s_img" /><br />
</form>
</body>
</html>
■ このスレッドは過去ログ倉庫に格納されています