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

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

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

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

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

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

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

関連情報は
>>2-3
0147nobodyさん2006/02/28(火) 16:45:58ID:???
>>146
文字列処理が弱いからな。
POSIX正規表現も低速だし、使いづらい。

Perl普及の背景には強力な正規表現が実装されててCGIに必要不可欠な文字列処理が強力だったって言うのもあるな。
0148nobodyさん2006/02/28(火) 16:48:48ID:???
低速といっても、Perlから見た低速とは意味が違うけどな。
0149nobodyさん2006/02/28(火) 17:02:23ID:???
今からCGIやるなら、PerlよりもPHPのいいですかね?
JavaScriptはこれらとは別物なんですよね?
0150nobodyさん2006/02/28(火) 17:13:09ID:???
>>149
JavaScriptはクライアントサイドスクリプト。
ブラウザ上などで実行される。

対してPerlやPHPはサーバサイドスクリプト。
サーバー上で実行され、実行結果がクライアントに返る。

PerlとPHPと言うのは好みだろう。
0151nobodyさん2006/02/28(火) 17:42:59ID:???
仕事でもやっていきたいならPHPかJavaかという選択肢
正直新規のプログラムでperlを使うってのは少ない
DBを扱うなら尚更perlの出番なし
好きなんだけどねperl…
0152nobodyさん2006/02/28(火) 17:49:33ID:???
掲示板を扱うならば、PerlかPHPがお勧めで、どちらを選ぶかは好みの問題。
ってことでおk。
0153nobodyさん2006/02/28(火) 17:57:24ID:???

皆さんはCGIを動かす為のWebサーバソフト(フリー)は何使われてますか?
0154nobodyさん2006/02/28(火) 17:59:04ID:???
Apache
0155nobodyさん2006/02/28(火) 18:00:48ID:???
ttp://www.kent-web.com/www/index.html

これとかどうなんだろ?
0156nobodyさん2006/02/28(火) 18:02:28ID:???
個人的にAnHTTPDはアレだ
0157nobodyさん2006/02/28(火) 18:09:13ID:???
あれとは?
0158nobodyさん2006/02/28(火) 18:17:58ID:???
Apache。

使ったことないから実際にどうなのかは知らんのだけど、
AnHTTPdがアレだという話は確かによく聞くな。
0159nobodyさん2006/02/28(火) 18:24:56ID:???
lighthttpd
0160nobodyさん2006/02/28(火) 19:17:33ID:???
AnHTTPdはPHPとPerlを動かすと正常に動いてたPerlスクリプトにエラーが出るようになる
CGI アクセスが多いと (といっても1日のトータルで2〜3000ほど) 1日経たずにサヨナラ
0161nobodyさん2006/02/28(火) 19:39:22ID:???
Apacheが一番無難そうだね。ユーザーも多いし。
0162nobodyさん2006/02/28(火) 19:48:01ID:???
ある程度CUI操作に慣れてればAnHTTPDを使う理由も無いしな。
0163nobodyさん2006/02/28(火) 20:04:21ID:???
Apacheって2.2と1.3がある。どちらも最新バージョンらしいし、どちらを選べばいいのか
もう訳わからんです
0164nobodyさん2006/02/28(火) 20:06:19ID:???
>>163
2.0系統使え
0165nobodyさん2006/02/28(火) 20:07:29ID:???
WindowsユーザーがとっつきやすいWeb鯖ってなんですか?
0166nobodyさん2006/02/28(火) 21:07:35ID:???
Perl CGI で。
外部公開ウェブサーバのCGIで受けたPOSTデータを、そのまま
ローカルウェブサーバのCGIにリダイレクトしたいのですが…
可能でしょうか??
0167nobodyさん2006/02/28(火) 21:56:54ID:???
> 163
1.3 のほうが微妙に速いこともあるけど、使うなら2系がいい

> 165
Apache

> 166
できるっぽいけど俺には探せなかった
ごめ
0168nobodyさん2006/02/28(火) 22:04:28ID:???
>>166
リバースproxyでググれ
っつーかCGIに何の関係もないけどな
0169nobodyさん2006/02/28(火) 22:56:59ID:???
Linuxで見ると文字化けします。
良い解決策教えてください。
すべてShift-JISで作ってました。
0170nobodyさん2006/02/28(火) 23:03:39ID:???
何を何で見て化けてるのか知らないけど、
Linux板のくだ質で聞いたほうがよくない?
0171nobodyさん2006/02/28(火) 23:29:23ID:???
> 167, 168
ありがとうございます。

リバースproxyってのは知らなかったなぁ。
特定のURLだけでリバースproxyを使うって設定はできるのかな??

調べてみます。
0172nobodyさん2006/03/01(水) 01:39:06ID:Au3MGlrq
Perl等の言語ごとにベンチマークをはかりたいのですが、
Perlをコンパイルして保存、それをFastCGIでPersistentにすることってできるでしょうか??
0173nobodyさん2006/03/01(水) 05:29:37ID:QDiV6++O
「enctype="multipart/form-data"」のフォームで送られてきたデータは
それぞれの項目が改行で区切られるているらしいのですが、
その際の改行コードはクライアントのプラットフォームに関係なく
絶対にCRLF(\r\n)なんでしょうか?
0174nobodyさん2006/03/01(水) 06:21:35ID:???
>>173
区切りは改行じゃなくてセパレータ文字列じゃなかったっけ?
単なる改行ならCRLFが有力候補だけど、ブラウザまかせ。要テストですね。
0175nobodyさん2006/03/01(水) 06:25:23ID:???
>>173
つRFC2046
結論から言えばRFC常は必ずCRLF

この辺参照
4.1.1 Representation of Line Breaks
> The canonical form of any MIME "text" subtype MUST always represent a
> line break as a CRLF sequence. Similarly, any occurrence of CRLF in
> MIME "text" MUST represent a line break. Use of CR and LF outside of
> line break sequences is also forbidden.

5.1.1 Common Syntaxの拡張BNF
> body-part := MIME-part-headers [CRLF *OCTET]
> delimiter := CRLF dash-boundary
等
01761752006/03/01(水) 06:33:30ID:???
セパレータじゃなくてバウンダリだったか。
01771752006/03/01(水) 06:34:20ID:???
ごめん大ボケやった…4.1.1はtextサブタイプだけだ
でもセパレータの前やMIMEヘッダ中に入ってる改行はCRLFで間違いないはず。
準拠してないブラウザが存在しないとは保障できないけど
01781742006/03/01(水) 06:38:46ID:???
名前欄ミスごめん。>>176は俺ですた。ごめんね>>175
01791752006/03/01(水) 06:41:42ID:???
>>178
いやいや、見事な未来レスw
リロードしとけば漏れまで間違えること無かったのにillorz
01801742006/03/01(水) 08:08:27ID:QDiV6++O
どうもありがとうございます!

>>177
>準拠してないブラウザが存在しないとは保障できないけど

境界線の形式が、例えば
-----------------------------7d61f4206e0
(最後だけは-----------------------------7d61f4206e0--)
みたいになっているとも限らないんでしょうか?
0181nobodyさん2006/03/01(水) 08:09:09ID:QDiV6++O
あ、すいません。上の名前は173です。
0182nobodyさん2006/03/01(水) 08:29:37ID:???
>>175-181
お前ら、わけ分からないからIDでも出せよ。
0183nobodyさん2006/03/01(水) 14:08:27ID:???
むしろそれに沿ってないデータは破棄でいいかと
最近マルチパートのテストしてたけどIEとfirefoxはだいじょぶ
あとはsafari、operaで大丈夫ならいいんじゃないかな
0184nobodyさん2006/03/01(水) 14:20:09ID:???
Perlのソースコードを隠蔽して配布したい場合はどうすればいいですか?
0185nobodyさん2006/03/01(水) 14:37:00ID:???
>>184
コードに、
# やだ…覗かないで……。
って書いておく。
0186nobodyさん2006/03/01(水) 15:20:17ID:???
exe化するとか・・・
0187nobodyさん2006/03/01(水) 16:11:08ID:???
ソースをかける
0188nobodyさん2006/03/01(水) 16:59:38ID:Nh3Rcy5s
Web制作板からやってきました。

質問でつ。
HTML中に、JavaScriptから使うデータを埋め込もうとしているのですが、
以下のように自作タグにデータを入れた場合、DOMがタグを正しく解釈
してくれません。(iの子ノードに、jと/jが入る。)

<i id = "data" name = 'T'>
    <j id = '1' text = '一番' key = 't1'></j><j id = '2' text = '二番' key = 't2'></j>
</i>
 
また、以下のように書くと、今度はFirefoxが正しく解釈してくれません。(jのid=1の子ノード
にjのid=2のノードが入る)

<i id = "data" name = 'T'>
    <j id = '1' text = '一番' key = 't1' /><j id = '2' text = '二番' key = 't2' />
</i>

どのようにしてデータを埋め込めばよいのでしょうか。
なお、データを埋め込んでる目的は、Ajax用のスクリプトの実験・デバッグ用途です。
xmlとして読み込むのとページの要素として読み込むのではツリーが変わってしまうのでしょうか?
ページの一部として、iタグの子ノードにjタグがid毎に入るようにはできないのでしょうか?
ちなみに、ページのヘッダには
<meta http-equiv="Content-Type" content="text/xml; charset=shift_jis">
というタグをいれてあります。

よろしくお願いします。
0189nobodyさん2006/03/01(水) 17:47:17ID:???
<!--##FLAG##-->
俺はこうやって HTML とかテンプレートなりに記述しておいて、
Perl で表示する際にちゃんとした HTML に置換してる
0190nobodyさん2006/03/01(水) 18:22:41ID:wgwTKro8
>189
tableタグとかに変換してるんですか? visible=false として?
0191nobodyさん2006/03/01(水) 20:49:19ID:UlTu9SDw
すみません、htmlでフレームを使用しています。
その中でメールフォームをパールで設置しているのですが、
送信ボタンを押すとnot foundと表示されてしまいます。
パスは何度も確認しました、サーバーに上がっていない状態を
ブラウザで確認するとしっかり表示されます。
またフレーム未使用のhtmlならうまくいっています。
フレームが原因なのでしょうか?
もし気をつける場所などありましたら教えていただきたいです。
お願いします。
0192nobodyさん2006/03/01(水) 21:03:10ID:???
>>191
not foundってことは、
1.パス指定が間違ってる。
2.メールフォーム自体が存在しない。
上の二つしか考えられないよ。
しっかり指定出来てる?
何なら必要な部分だけ晒してみそ。
0193nobodyさん2006/03/01(水) 21:17:45ID:i+mKc+lU
プロキシの検出やチェックや疑惑判定を診断くんのように行うためには
どのようにすればよいしょうか?
また、そのようなソースって公開されてますか?
0194nobodyさん2006/03/01(水) 22:11:08ID:???
>>193
環境変数を見て独自に判断
0195nobodyさん2006/03/02(木) 10:15:56ID:???
apacheのmod_rewriteの質問なのですが

RewriteEngine on
RewriteMap lowercase int:tolower
RewriteRule ^/abcde/(.*)$ /vwxyz/$1 [L]

とするとブラウザにhttp://hoge/aBcdeなどと入力すると当然飛ばされずに
元のディレクトリが見えてしまいます。
どう直せばいいんでしょう?
0196nobodyさん2006/03/02(木) 11:23:26ID:???
>>195
[NC]使う
0197nobodyさん2006/03/02(木) 12:11:53ID:???
>>196 どうもありがとう
0198nobodyさん2006/03/02(木) 13:30:55ID:???
>>184
コンパイルする
完全に隠蔽出来ないが
0199nobodyさん2006/03/02(木) 15:08:09ID:???
助詞は‘には’だな
0200nobodyさん2006/03/03(金) 03:00:16ID:???
>189
DIVタグでうまくいきました。
IEだと、好きなアトリビュートをつかってもDOMで解釈してくれますが、
FFだと、インスペクタでは解釈されてるものの、スクリプトからはアクセスできませんね。
結局、害のなさそうなアトリビュートをstringの変数として使いました。

いっそ、jsファイルに、配列への代入式を列挙しても良かったかもしれません。

アリガトウございました。
0201nobodyさん2006/03/03(金) 11:45:40ID:???
>>199
うらにわにはにわにわにはにわにわとりがいる
0202nobodyさん2006/03/03(金) 12:51:26ID:???
>>201
Microsft IME
裏庭に埴輪庭には二羽鶏がいる
0203nobodyさん2006/03/03(金) 17:53:29ID:???
裏庭に埴輪に輪に埴輪鶏がいる
携帯@N901i
02041992006/03/03(金) 19:08:05ID:???
OK 俺が悪かった次行け次
0205nobodyさん2006/03/03(金) 22:01:00ID:???
裏庭に埴輪にわには二羽鶏が居る
0206nobodyさん2006/03/05(日) 09:42:43ID:DFwOEKgI
環境変数についての質問です。
実行しているスクリプト自身のURLを環境変数を使って取得する際
SCRIPT_URIで取得しようとすると、この変数はサーバーによっては
与えられてないことがあると聞いたので
SERVER_NAMEとSCRIPT_NAMEとSERVER_PORTを組み合わせて取得しようと思いますが
これら3つの変数も与えられていないことはあるんでしょうか?
0207nobodyさん2006/03/05(日) 09:48:18ID:???
数行で書けそう
走らせてみれば?
02082062006/03/05(日) 09:54:04ID:???
訳あって色々なサーバーで動かすことを想定して作っているので
取得できない可能性があるのか知りたいです。
0209nobodyさん2006/03/05(日) 10:25:39ID:???
>>208
負荷の問題がシビアでないならば
SCRIPT_URIがとれない場合は組み合わせから取得という処理にすればよいのでは?
0210nobodyさん2006/03/05(日) 11:43:34ID:???
ポイントサイトなどでよく見かける、www.XXX.com?ref=@@@のような、
紹介ID付きページの作り方が載っているプログラミング言語解説サイトを探しています。
できればPHPが良いのですが、知っていればサイト名もしくはURLを教えてください。
0211nobodyさん2006/03/05(日) 11:55:59ID:???
普通にphpの勉強をすれば
すぐにたどり着くと思うけど。
0212nobodyさん2006/03/05(日) 13:17:01ID:HcMB9y3u
htmlで、画像にリンクをつけたのですが、青い枠が出来てしまいます。
青い枠を無くすにはどうすればいいですか?
0213nobodyさん2006/03/05(日) 13:24:10ID:???
>>212
img {
border: none;
}

しかしどうみても板違いです。
0214nobodyさん2006/03/05(日) 13:26:18ID:HcMB9y3u
>>213
わざわざ板違いなのに答えてくださり、どうもありがとうございます。
0215nobodyさん2006/03/05(日) 20:48:45ID:vCHMKEBI
phpで2chのsubject.txtからある特定のスレだけ絞り込む
プログラムを書いているのですが、

日本語の文字列が格納されている配列から
ある特定の文字列を含む要素だけを取り出したいときにはどのような操作をすればいいんでしょうか?
0216nobodyさん2006/03/05(日) 20:55:44ID:???
foreach→strposとか
0217nobodyさん2006/03/05(日) 22:17:39ID:???
>214
× わざわざ板違いなのに答えてくださり、どうもありがとうございます。
○ 板違いなのにわざわざ答えてくださり、どうもありがとうございます。
0218nobodyさん2006/03/06(月) 08:40:43ID:???
>>206
あるよ
ぶっとびねっとという無料レンタルのhttpサーバにはろくな環境変数しかなかった
特殊な例だけどね
0219nobodyさん2006/03/06(月) 12:46:57ID:???
日本語でおk
0220nobodyさん2006/03/06(月) 16:58:53ID:/O3rK/5L
AJAXについて教えて欲しいのですが、外部ドメインのXMLを読み込もうとすると"アクセスが拒否されました"
とエラーが出てしまいます。

phpのfile_get_contentsなどを通して処理をしてみてもできないみたいです。
どなたか外部ドメインのXMLを読み込む方法をご存知でしたら教えてください。

宜しくお願いします。
0221nobodyさん2006/03/06(月) 17:22:29ID:???
他ドメインにアクセスできないのはブラウザの制約だよ
0222nobodyさん2006/03/06(月) 17:46:37ID:???
それもセキュリティ上の配慮からだからアクセスできたら脆弱性だ罠
0223nobodyさん2006/03/06(月) 19:32:05ID:???
適当答えるな馬鹿共
0224nobodyさん2006/03/06(月) 19:58:36ID:???
>>223
何が適当で本当はどうなのか書かないと。ただの荒らしで適当なレス以下になっちゃうよ。
だから聞かせて。どのレスのどこが適当で、正しい答えは?
0225nobodyさん2006/03/06(月) 21:13:02ID:/O3rK/5L
>>221 >>222
RSSリーダーなどですと外部ドメインのXMLを読み込むことができますが、
どうしてできるのでしょうか。ソースを見てもよくわからないので。。。
教えてください。
0226nobodyさん2006/03/06(月) 21:52:49ID:???
それはただのHTTPリクエスト
0227shashin.us2006/03/06(月) 22:57:45ID:0hKTKa0S
初めてサイトを作ってみあした。デジカメで撮った写真からケータイの待ち受けを作るためのサイトです。
http://shashin.us
0228nobodyさん2006/03/06(月) 23:02:10ID:???
>>227
初めてですかそうですか。で。

ものすごい勢いで広告・宣伝を報告するスレ 63
http://qb5.2ch.net/test/read.cgi/sec2chd/1141141884/

ここに貼ってくればいいんですか?
0229nobodyさん2006/03/06(月) 23:30:41ID:???
>227
回転とかしたり、一気に移動したりしてると簡単にバグるのな
てゆか壁紙ぐらい自分で作るよw
0230nobodyさん2006/03/06(月) 23:32:39ID:???
>>225
とりあえず、いろいろ探しなはれ。
ttp://jsgt.org/mt/archives/01/000373.html
0231nobodyさん2006/03/07(火) 02:38:22ID:1LGbU75n
データベースのことは全然わかってないんですが、レン鯖支給のMySQLに接続して指示をだすソフト(?)ってのは自分で探して来て使うものなんですか?
0232nobodyさん2006/03/07(火) 03:08:22ID:???
>>231
普通はコマンドラインからいじるけど。
phpmyadminとか探して入れるのもあり。
0233nobodyさん2006/03/07(火) 03:41:44ID:???
勉強も兼ねてDB使ったスクリプトを作ろうと思ってたりするのですが、
DBそのものやテーブルが存在しなかった時は自動的に作ってあげるのがいいのか、
DBは作成させてテーブルは自動的に作ってゲルのがいいのか、
DBからテーブルまで利用者に作らせるのがいいのか・・・
下手にスクリプトで作るより利用者に用意させたほうがいいとは思ったりしなくもないですが、
そこらへんはどうなんでしょか
0234nobodyさん2006/03/07(火) 04:07:58ID:???
作るスクリプトの内容と目的による
0235nobodyさん2006/03/07(火) 05:08:59ID:???
最初はDDLは避けて事前に用意しておく。
慣れたら対話的に必要なテーブルの作成もできるようにする。XOOPSみたいなの。
0236nobodyさん2006/03/07(火) 14:21:54ID:BZdlj2hH
名前を登録するとその名前のディレクトリを作って、その中にindex.htmlを生成するプログラムを作っているのですが
そうもSAFEMODEが有効になっているらしく、copy()やfopen()を使っても

Warning: copy(): SAFE MODE Restriction in effect. The script whose uid is 40327 is not allowed to access 〜〜

とエラーが出てしまいます。
どうにか解決方法はないものでしょうか・・・・
0237nobodyさん2006/03/07(火) 14:37:45ID:???
そのエラーはphp?
わざわざディレクトリを作る理由は?
ファイル構造の問題ならpathinfoを使えばすむと思うが。
0238nobodyさん2006/03/07(火) 14:39:52ID:BZdlj2hH
>>237
ID登録をしてもらってユーザーが中にどんどんファイルを格納していくので
ディレクトリにばら撒いていくとまずいかと・・・・
0239nobodyさん2006/03/07(火) 15:01:16ID:???
ディレクトリを作る理由しか回答していないわけだが。
0240nobodyさん2006/03/07(火) 20:16:52ID:???
是非教えてください。
Perlでアクセスしてきた人のIPを記述していくスクリプトを作りました。
仕様として日別にログを作ってIPを記述して行っているのですが
同日中の多重アクセスはIPを記述しないようにしたいのです。
どのように書いたらできるのか上手くわからず。。
是非教えてくださるとうれしいです。

スクリプトは以下のとおりです(一部)
open(OUT,">>$dayfile") || &error("error $dayfile");
print OUT "$host\n";
close(OUT);

ログは以下のとおりです。
2006-03-07.cgi
---------------------------
192.168.0.4
192.168.0.5
192.168.0.6

---------------------------
書き込む前にログにアクセス者のIPがすでに記述してあれば
追加記述しない、なければ記述する、という感じでよろしくお願いします。
0241nobodyさん2006/03/07(火) 20:44:29ID:???
while (<OUT>) {
chomp;
exit if $_ eq $host;
}
print OUT $host, "\n";
0242nobodyさん2006/03/07(火) 20:52:32ID:???
my($exist) = 0;
open(OUT, ">>log.dat");
seek(OUT, 0, 0);
while(my $readline = <OUT>){
  $readline =~ s/\x0D\x0A|\x0D|\x0A//;
  if($readline eq $ipaddr){
    $exist = 1;
    last;
  }
}
if(!$exist){
  seek(OUT, 0, 2);
  print OUT $ipaddr . "\n";
}
close(OUT);
0243nobodyさん2006/03/07(火) 20:57:41ID:???
>>241さん
即レス有難う御座います。
なるほど。。
でも読み込んだ内容の中身と一致したらexit、
としてしまうとそのあとにもソースが続いてて。。
教えて君で申し訳ないっす。。
0244nobodyさん2006/03/07(火) 21:00:21ID:???
うおっ、、 >>242さん、
自分が書き込んでいる間に作ってくださっていたのですか。。
なんか・・・めっちゃ・・・すごい。。
早速今から試してきたいと思います!
また結果報告に参ります_(_ _)_
02452382006/03/07(火) 21:19:56ID:BZdlj2hH
>>239
どういうことでしょうか??
0246nobodyさん2006/03/07(火) 21:22:38ID:???
>>243
簡略化したサンプルコード見てもわからないなら、諦めるのも一つの手
0247nobodyさん2006/03/07(火) 22:05:15ID:???
>>242さん
無事できました!
フラグを作ってやればいいのですね。とても勉強になりました。
本当にどうも有り難う御座いました。
■ このスレッドは過去ログ倉庫に格納されています