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

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

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

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

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

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

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

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

前スレ
△▲ WebProg 初心者の質問 pert14▲△
http://pc10.2ch.net/test/read.cgi/php/1151501830/
0133nobodyさん2007/02/24(土) 11:21:40ID:???
じゃあ、iframe
01341302007/02/24(土) 17:44:30ID:???
他で聞くことにします。
ありがとうございました。
0135nobodyさん2007/02/24(土) 18:01:14ID:???
>>132
ssi
phpのinlude
jspのinclue

サーバ側でやるのがいやなら
プログラム書いてHTMLを自動出力する
01361322007/02/25(日) 10:47:16ID:???
>>135
PHPを使うことにしました。
perlしか知らなかったので躊躇してたのですが、
やってみるとあまりに簡単でびっくりしました。
ありがとうございました。
0137nobodyさん2007/02/25(日) 22:15:49ID:ZV69tl0F
MotionSWFってフリーのパラパラ漫画みたいなFlashを作る
ソフトがあるんですが、これを再生するとループし続けてしまいます。
10秒で止める方法を教えてください。
l書き換えなきゃ(書き足す?)ダメみたいです。
ちなみにコレ
ttp://www.vector.co.jp/magazine/softnews/020223/n0202231.html
0138nobodyさん2007/02/26(月) 05:26:04ID:zp7D/FQp
質問をさせてください。
BIGLOBEでnickyを設置したいんですが、ケータイ用のcgiがうまく設置できません。
ttp://www.din.or.jp/~raelian/mobile_upper.html
DLしてきたものを何もいじらずアップロードすると始めのページは表示されるんですが、次に進めません。
あやしそうなところ(「a href」のところや「./○○.cgi」など)を
全てフルパス(http://cgi.www○○〜)にしてみると始めのページすら表示されず・・・
nicky.cgiは正常に動作しました。
ご教授よろしくお願いします。
0139nobodyさん2007/02/26(月) 05:49:12ID:iwe9u6xQ
>>137ですが、自己解決しました。
失礼します
0140nobodyさん2007/02/26(月) 06:42:54ID:???
>138

>次に進めません。
ここを具体的に。
01411382007/02/26(月) 12:34:30ID:zp7D/FQp
メールアドレスなどのセットアップページになり、セットアップまではできているみたいです。
セットアップ完了ページからリンクされているmobile.cgiにアクセスすると
nickyのパスワード入力と「mobile up!」というボタンがでてきてパスワードを入力してボタンを押すとServer Errorがでてしまう状態です。
ケータイから入力したメールアドレスに画像添付して送ってもnicky.cgiには反映されていません。
よろしくお願いします。
0142nobodyさん2007/02/26(月) 15:24:29ID:???
perlの質問です。
ある掲示板に二重投稿防止機能がついていなかったので、
それに防止機能をつけたいと思いました。

データは
2(ツリー数)<>4(最終記事��)
2(ツリー��)<>投稿者<>投稿日時<>子記事なら親記事��<>2(総合��)<>コメント<> ※親記事2
<>投稿者<>投稿日時<>2(親記事��)<>4(総合��)<>コメント<> ※親記事2への子記事
1<>投稿者<>投稿日時<>子記事なら親記事��<>1(総合��)<>コメント<> ※親記事1
<>投稿者<>投稿日時<>1(親記事��)<>3(総合��)<>コメント<> ※親記事1への子記事・
・
・
と繋がります。
最終投稿記事を探すには、最終記事�bフある記事を抽出する必要がある。
それにはforeachを使えばいいんじゃないか、というところまではたどり着きました。
open(IN,"$bbslog") || &error("Open Error : $bbslogfile");
@lines =<IN>;
までは考え付いたのですが、左から五番目のデータを探して
最終記事�ai$allcomに代入済み)と一致するデータを抽出するには、
どうしたらいいでしょうか。
0143nobodyさん2007/02/26(月) 18:51:14ID:???
>>142

open(IN,"$bbslog") || &error("Open Error : $bbslogfile");
@lines =<IN>;

$comment #投稿されたコメント
$beforehand = (split(/<>/, $lines[-1]))[4] #最後に投稿されたコメント

if($comment eq $beforehand){error('二重投稿です');} #同じであればエラー処理

一応解説すると、配列の最後にあるデータが最新のデータなので$lines[-1]で指定。
もし、一番最初が最新のデータなら$lines[0]でおk
split関数でデータ区切り文字<>の5番目の文字を$beforehandに格納
eq で比較して同じであればエラー。
0144nobodyさん2007/02/27(火) 02:43:33ID:???
ここでいいのかな。

http://perl.toshinari.net/cgi/bbs/new2ch/index2.html
の2ch掲示板についての質問なのですが、2chでいう「!test」で「テスト」と名前をを表示させるのはどうすればいいのでしょうか?

名前の変数は$in{'FROM'}なので
if($in{'FROM'} =~ /!test/) {
$in{'FROM'}="テスト\n";
}
と考えたのですが、うまく表示されません。

!testを抽出する部分まではあっているとおもうのですが、名前の値を返すにはどうすればいいのでしょうか?
0145nobodyさん2007/02/27(火) 02:47:59ID:???
それだと名前が

期末!testしぼん

でも名前がテストになっちゃうよ。

eq でチェックするか、

$replacename{'!test'} = 'テスト';
$in{'FROM'} = $replacename{'!test'} if defined($replacename{$in{'FROM'}});

でややこしく組んでみるとか。
0146nobodyさん2007/02/27(火) 07:48:20ID:???
外部には公開しない自宅内イントラネットでCGIの勉強してるのですが、
分からないことがあるので教えてください。
ある場違いな場所でCGIのパスワード機能を教えてもらったのですが、

require './cgi-lib.pl';
require './jcode.pl';

// POST受け取り
&ReadParse(*MYDATA);
$id = $MYDATA{'id'};
$password = $MYDATA{'password'};

if ($id eq "hoge" ) {
 if ($password eq "hage") {
  print "Location: http://www.hoge.com/\n\n"; // hogeへ
} else{
  print "残念、パスワードが違います・・・\n";
}

これをhoge.cgiとして実行するとファイルはきちんと見つかるのですが、
ページを表示できませんとエラーになってしまいます。

この場合どうすれば表示できるのでしょうか?
ネット上に落ちてた他のCGIファイルはきちんと動作しています。
0147nobodyさん2007/02/27(火) 09:20:20ID:???
print "content-type: text/plain; charset=お好きなコード\n\n";
の行が抜けてるから。
0148nobodyさん2007/02/27(火) 10:04:42ID:???
>>147
レスありがとうございます。
それはどこに入れるのでしょうか?

最初に入れたのですが動かないです。
0149nobodyさん2007/02/27(火) 10:19:16ID:???
勉強しなおすか、ググってください
0150nobodyさん2007/02/27(火) 13:46:42ID:???
CGIの質問お願いします。
ログに「2007/02/27 00:50」のように保存されている日付データがあります。
現在時間がこの時間の2分以内であればエラーを表示したいのですが、
このようなデータだと簡単に引き算できないように思えます。

2007/02/27 00:50を世界標準時に戻してからtime関数で現在時間を
取得して引き算すれば簡単だと思うのですが、このようなデータを
世界標準時に戻す方法はありますか?うるう年とか考えたら
すごい計算になりそうに思えます。

他によい方法があればご指導お願いいたします。
0151nobodyさん2007/02/27(火) 18:04:31ID:???
Time::Local
0152nobodyさん2007/03/01(木) 18:16:54ID:???
RSSに対応していないページの中にある表示させたい部分だけ抜き取って
RSSのように取得して表示させたいのですが・・・・
どなたか教えてくれませんでしょうか?

myrssなどいろんなサービスがありますが
それらだとどーしても不要な部分まで入ってしまうので困ってます。
0153nobodyさん2007/03/01(木) 22:38:31ID:v5Qv+U7w
サイト内検索を導入しようと思い、いろいろ探しているのですが、
サイトの作りが動的である為、インデックス型だとphpをそのまま拾ってしまい、
タイトルなどが正しく表示されません(タイトルをphpで動的生成してます)

こういう作りの場合、フリーの検索スクリプトでは難しいのでしょうか?
0154nobodyさん2007/03/01(木) 22:45:28ID:???
>>152
マルチしてんじゃねえーよボケが
0155nobodyさん2007/03/01(木) 22:49:14ID:LgvhnFPU
HTML、JavaScriptの世界で、スケジュールの計画、実績を表示する
ガントチャートみたいなのって実現可能?
横列のヘッダーが日付で、縦に各タスクの計画と、実績を横棒で表示します。
進捗が進むごとに、横棒が伸びるのですが、それをどうやって実現すれば
よいのかつまってます。
横棒は画像がいいのかな?
探してもコンポーネントはなかったです。
0156nobodyさん2007/03/03(土) 01:18:52ID:rZwBmn67
変数でチャートを指定したとして
業務日誌の書き込みのフラグで日付を関連付けさせれば
いけないこともないが、めんどいねw
0157nobodyさん2007/03/03(土) 02:07:07ID:???
<table>
  <tr>
    <td>作業</td><td>3/1</td><td>3/2</td><td>3/3</td>
    <td>設計</td><td>●</td><td>●</td><td></td>
    <td>開発</td><td></td><td>●</td><td>●</td>
    <td>テスト</td><td></td><td></td><td>●</td>
  </tr>
</table>

こういうふうにHTMLで作るのはダメなの?
0158nobodyさん2007/03/03(土) 10:31:05ID:???
img の height で進捗を表したほうが楽かと思うよ
0159nobodyさん2007/03/03(土) 14:21:04ID:g6+lfKIp
質問です
勉強の為にアパッチをローカル環境で使用するため
今自分のpcにアパッチをインストールしているのですが、
終了後にブラウザからhttp://localhost/と入力すると「あなたの予想に反して・・・・」
と表示されると初心者講座に書かれてましたが、「It works」と表示されます。
インストール後にアパッチモニター何とか?のエラーが出ていました。
で、そのままググッたら正確には失敗のエラーではなく警告メッセージだという事が判りました。
さらにググッたら80番ポートが使用されているとか言う事で
使用を停止するための作業を判らないなりに調べながらやってみましたが
やっぱり「It works」が出てしまいます。
「あなたの予想に反して・・・・」の画面だ出ると完璧って書かれていたので
今の状態はダメなのでしょうか?
タスクバーには「Running all Apache services」のアイコンが追加されています。

使用環境はwindows xp です。
ちなみに上手くいかなかったので、windowsの更新できる項目を全て更新しました。

助けてくださいm(__)m
0160nobodyさん2007/03/03(土) 14:53:25ID:???
アパッチ以外にIISとかANHTTPDとかサーバソフト入れてない?
0161nobodyさん2007/03/03(土) 15:03:56ID:???
It worksはApache2.2系のテストページよ
0162nobodyさん2007/03/03(土) 15:14:41ID:???
おあとがよろしいようで
01631592007/03/03(土) 16:03:00ID:g6+lfKIp
>>160さん 入れていません。てか初めてこんな事してるので
解からないですが・・・・
>>161さん 
テストページって事は、インストール時に表示されるテストページを
通り越して、通常のテストページを表示させてしまったってことでしょうか?
それとも2.2系ではインストール時のテストページ「あなたの予想に反して・・・」が表示されないのでしょうか?
素人なので解説どうりにいかないとわけ解かんなくなってしまっています。
インストール成功したという事と受け取ってますが、マジで解からないです。

>>162さん ボクには落ちがついたのかも判りません。

これはクリアできったって事でよさそうなので、さらに気になるのが
解説はアパッチ2.0.53で話が進んでいるのですが、新バージョン(2.2.4ダウンロードしちゃった)でも
phpの組み込み方は旧バージョンの設定方法と変わりませんか?
phpも解説は5.0.3だったのにボクは5.2.1をダウンロードした。それしか解からなかった。
0164nobodyさん2007/03/03(土) 16:26:43ID:???
>>163
> それとも2.2系ではインストール時のテストページ「あなたの予想に反して・・・」が表示されないのでしょうか?
そういうこと。2.0系はそのメッセージだったが、2.2系では変わった。

2.2系では、用意されているモジュールとか設定ファイルの構成とか、色々と2.0系と違いがあるから、
2.0系のサイトを見てやるなら2.0系の最新版を入れ直すべきだと思う。まだ2.0なら当分現役だろうし。
それに2.0用にコンパイルされたモジュールは2.2じゃ動かない。PHPのディレクトリにある
Apacheモジュールはそれぞれのバージョン用が用意されているので、適切なほうを読み込む必要がある。
php5apache2.dll - 2.0系
php5apache2_2.dll - 2.2系

PHPのほうは5.2.1を入れていいと思う。そんな混乱するような違いはなかったはずだ。

80番ポートが使用されてるってのは…なんだろうね。
ちゃんとテストページが表示されて動いてるみたいだから、勘違いか一時的なものじゃないか。
01651592007/03/03(土) 16:42:01ID:g6+lfKIp
>>164さん 
詳しい解説ありがとうございます。
アパッチ入れなおしてやり直してみます。
さっき「はじめての人のためのかんたんPHP+MySQL入門」って本を買ってきたのですが
こっちはPHP4だって・・・。もうなにがなんだか・・・。

アパッチ2.0系でダメだったら、本の付録CD使ってやろうかと思います。
01661592007/03/03(土) 16:44:56ID:g6+lfKIp
追記です。
80番ポートの件はグーグルの検索迷宮に
入り込んでいた可能性が高いです。
正直ワカらなすぎて検索結果のフレーズをかたっぱしから見ていったので
0167nobodyさん2007/03/03(土) 16:58:56ID:???
。oO(自分がはじめてプログラミングしたときのことを思い出すレスだなぁ)
0168nobodyさん2007/03/03(土) 21:00:40ID:fNDaKVAP
質問です。
検索エンジンを作ったのですが、サイト名が決まりません。
かっこいいサイト名をおしえてください。
0169nobodyさん2007/03/03(土) 22:26:19ID:???
「おしえてくん」
0170nobodyさん2007/03/03(土) 23:14:46ID:???
>>169
なんという天才
0171nobodyさん2007/03/04(日) 05:41:36ID:50YvVeUU
mixiモバイルについているような、メールを使って日記を書くといった機能は、具体的には何を使ってどのような処理を行っているのでしょうか?
メール送信後にすぐ処理されるというのは、メールサーバーに何かを仕込んだりしているのでしょうか?
0172nobodyさん2007/03/04(日) 13:21:25ID:???
メールを受信したら何らかのコマンドを走らせる、というのが出来た気がする。
負荷が気になるならcronでもいいだろうし。

……微妙に板違いな気もするけど完全に切り分けはできないからいいか。
0173nobodyさん2007/03/04(日) 20:04:57ID:???
ま、aliasesや.forwardで検索してみ
0174nobodyさん2007/03/07(水) 21:41:48ID:???
すみません。まったくのプログラミング初心者なのですが質問があります。
仕事の効率化を図るために何かひとつプログラミング言語を習得してみようと思うのですが、入門に最適な言語はありませんか?
0175nobodyさん2007/03/07(水) 23:32:38ID:???
Javaっていいたいとこだけど
PHPでWebアプリ作るのが一番早そう。
0176nobodyさん2007/03/08(木) 00:00:58ID:???
仕事の効率化つったらPerlをCopalで動かすのが一番効率を感じる時だな。
あとはOffice系のマクロとか。
htmlが都合いいならPHP。覚えるコストも安い。
それにしても仕事の効率化でWebProgってのは何を想定してるのか。
0177nobodyさん2007/03/08(木) 00:31:39ID:???
最近流行りのToDo管理の類じゃなかろか。
0178nobodyさん2007/03/08(木) 15:20:50ID:6RRFOqDL
↓このスクリプトの
ttp://ame.dip.jp/ame/upload_cgi.txt

$filename = int(time/1000000).'/'.(time%1000000).'.'.$ext;
open(W, "> ../upload/$filename");

が理解できない
'/'はファイルネームみたいだけど、こんなのありなの?
ローカルのwindowsと無料ホームページサービス(xrea)で試してきたけど、
スラッシュが入ってるとファイル作成できん

でも配布元じゃ動いてるっぽい
0179nobodyさん2007/03/08(木) 15:27:45ID:???
うpろーだか何か知らないけど
アップロードされたファイルをディレクトリごとに分けるって
よくありがちな仕様だと思うけど。
パーミッションがなくてディレクトリ作れないだけじゃん?
0180nobodyさん2007/03/08(木) 15:49:21ID:6RRFOqDL
xreaで画像を作成するdirを707にしても無理
スラッシュがないと作成できる
この例だとaaa/bbb.jpgのaaaディレクトリを自動で作ってくれるの?
0181nobodyさん2007/03/08(木) 22:03:10ID:???
ファイルの作成先であるディレクトリが既にあるのが前提なので、

$putdir = int(time/1000000);
mkdir $putdir if !-e $putdir;

これを付け加えればいいかと思う
0182nobodyさん2007/03/08(木) 22:49:38ID:???
このスクリプトの頭にはCドライブから始まるperlへのパスが書いてある
つまり、そのままでwindowsで動くということだ
そして大抵の掲示板鯖はunix/linux系だろうから、実際に稼動させてるのを見ると
それ系でもそのまま動いているということになる

これは絶対におかしい
謎だ
0183nobodyさん2007/03/09(金) 01:07:10ID:???
mod rewriteで
http://example.com/hoge?id=12 に来たアクセスを

をpublic_html/PHP/usr/hoge.php?id=12 に送りたいのですがどうしてもできません。
ご教示お願いいたします。

今はこんな感じで書いてます。
RewriteEngine on
RewriteRule hoge\?id=([a-z0-9]+)$ http://example.com/PHP/id/hoge.php?id=$1 [L]
0184nobodyさん2007/03/09(金) 01:18:04ID:???
>>182
いや、これはWinでしか動かないよ。
Winなら勝手にディレクトリ作ってくれるし。
0185nobodyさん2007/03/09(金) 08:50:41ID:eGapl2tj
スクリプト内で作成したファイルの所有者を
そのスクリプト中で変更したいのですができません。
apache:apache→admin:admin
にしたいのですが、いい方法はないでしょうか?
0186nobodyさん2007/03/09(金) 09:17:31ID:???
Pythonって、obj.hoge().huga() みたいな右つながりの書き方できますか?
01871862007/03/09(金) 09:35:52ID:???
できました。
0188nobodyさん2007/03/09(金) 13:09:59ID:???
>>183
RewriteRule ^hoge$ PHP/id/hoge.php?%{QUERY_STRING}
/PHP/usr/なのか/PHP/id/なのかどっちだ
0189nobodyさん2007/03/11(日) 04:19:42ID:lQSNQtRn
パスワード入力での質問なのですが、SSLを使わない場合に
クライアント側で暗号化、送信(JavaScript?) → サーバ側で復号化(Perl)
をする場合、どういった暗号化、復号化処理を行えば良いのでしょうか。

DESとかMD5を使う場合、クライアント側では
http://www.onicos.com/staff/iz/amuse/javascript/expert/
とかのJavaScriptを使って、サーバ側ではcrypt関数を使うでOK?
0190nobodyさん2007/03/11(日) 15:36:43ID:???
>>189
クライアントサイドで暗号化しようとする理由は何?
01911892007/03/11(日) 18:57:32ID:???
>>190
通信データを傍受された際の対処です。
実際に役に立つ日がくるかどうかはともかく、体裁を繕うのに実装しようかと思います。
傍受された暗号文を直接送り込めばイイじゃん、って事に関しては、送信元を限定する
事で対応したいと思っています。
0192nobodyさん2007/03/12(月) 01:34:59ID:???
>189
正直、「体裁を取り繕う」役割すら果たし得ないと思うが。
ActiveXコントロールでも仕込んで暗号化処理を隠蔽するんでもなきゃ、暗号化の仕掛け自体
攻撃者にダダ漏れだってのは分かるよね?
0193nobodyさん2007/03/12(月) 03:18:33ID:???
これは覚えておいて欲しい
Clientで暗号化する以上、暗号化ロジックは漏れてることになる
0194nobodyさん2007/03/12(月) 21:42:47ID:???
>>192,193
お前らMD5が何か分かってないだろ
0195nobodyさん2007/03/12(月) 23:27:30ID:???
>>189
その方法だとcrypt関数は期待したようには動作しない。
確かPerlにはMD5ハッシュ生成モジュールがあったと思うからそれを使う。
01961892007/03/13(火) 00:02:54ID:???
>>195
ありがとうございます。確かにcrypt関数では期待した値がでませんでした。
いろいろ調べて Digest::MD5 を使ってみたところうまくいったので、この方法で
パスワードの検証を行いたいと思います。

追記:暗号化、復号化という言葉が誤解を招いたのかもしれませんね。
0197nobodyさん2007/03/13(火) 07:31:23ID:???
>>191
傍受されたパスワードをそのまま送られたら意味なし
0198nobodyさん2007/03/13(火) 21:53:51ID:???
素で分からないのだけれど、サバの設定で送信元を限定した場合に
>>189のパスを突破する方法ってあるのけ?当然総当りとかナシな
つーか、傍受した暗号パスワードをどうやって送るのか教えてけれ。
あと、方法にこだわらないならAjaxのSSLもどき使う方がラクかもだよ。
0199nobodyさん2007/03/14(水) 00:30:51ID:???
>198
>傍受した暗号パスワードをどうやって送るのか
データをいくら暗号化しようと素のHTTPで送る以上、
「暗号化されたバイト列」を平文で送るよりないわけで……
クラカーは同じ内容の平文を送ればいいだけ。
0200nobodyさん2007/03/14(水) 01:00:58ID:???
>>199意図が伝わってないようで。解説すると、
同一ドメイン以外からのCGIリクエストを許可しない場合、外部から正しい
暗号文を送られてきても拒否れる。
当然に正しいフォームに暗号文を入力しても違う暗号文になるので整合しない。
つまり、リクエスト元を偽装する方法にはどういった事が考えられるか、と。
0201nobodyさん2007/03/14(水) 01:09:35ID:???
>>200
HTTPについて勉強しなおして来い
ブラウザからしかリクエストできないなんて道理は無い。

クラッカーが能動的にリクエストする以上防ぐ手立ては無い。
0202nobodyさん2007/03/14(水) 01:22:34ID:???
なんで初心者スレで質問してるのにこんな高圧的な態度とられるんだろうおrz

質問にまったく答えてない一連の>>201に期待してたオレバカだた
0203nobodyさん2007/03/14(水) 01:56:45ID:???
質問が2つ混ざっててよくわからん。

リクエスト元を偽装したいなら IP Spoofing とか(詳しくは知らんけど)。
同一の暗号文を送りたいなら >>199
0204nobodyさん2007/03/14(水) 02:02:02ID:???
>>203
ブラウザからフォームを通さないとリクエストできないと思ってるんだろ。
あとスクリプトが完全にリクエスト元フォームのURIが取得できるとも。
0205nobodyさん2007/03/14(水) 02:02:42ID:???
盗まれたパスワードを(使いまわしてるとかで)他の攻撃に使われる事を考えると
平文以上にセキュアであることに間違いは無いので
否定するようなものではないと思うけどな。
02061892007/03/14(水) 08:19:30ID:fd6OeGVb
なんだか、変な空気になってる気がしますが・・

結論として、当初の実装+ajaxでの接続時に使い捨てキーを取得する方法でやって
みようかと思います。毎回違う暗号をおくれる&元のパスワードを知らないと暗号化
出来ない、というのが可能なので、能動的なクラカー様でも対応は難しいと思います。
あるいは、>>198さんの言うSSLもどき(aSSLの事でしょうか)をもう少し調べて利用
した方が安心な気もしますが。

という事で今回の質問をクローズさせて頂きます。参考になるコメントをして下さった
方々に感謝です。長々と失礼いたしました。
0207nobodyさん2007/03/14(水) 14:08:37ID:rZAJ9eTa
http://office-yamada.net/
0208nobodyさん2007/03/15(木) 08:40:15ID:U0mN2jGO
動作環境ジオシティズ 言語Perl 5

トップページのBGMを簡易アプローダーで誰でも更新できるようにしたいのですが
旨く行きません><

<a href="index.html">トップページに戻る</A>

<form action="http://cgi.geocities.jp/*******/uploder.cgi"; method="POST" enctype="multipart/form-data">
BGM<a href="bgm.mid">聴く</a><input type=file name=upfile size=50>
<input type=submit value="アップロード">
</form>

不具合はアップローダーでファイルの更新に成功したあと聴くボタンを押しても
ダウンロードされません。さらにトップページにおいてあるwinメディアプレーヤー
のほうでも再生されませんが、なぜかサーバー上には問題なくファイルがアップされて
います。一度ブラウザーを閉じてから再度ブラウザーを立ち上げるとなぜか正常に
作動したりします。
2ページ目CGIソース





0209nobodyさん2007/03/15(木) 08:43:47ID:U0mN2jGO
require 'cgi-lib.pl';
&ReadParse;
$upfile = $in{'upfile'};
if ($ENV{'CONTENT_LENGTH'} < 500) {
&error;
};
if ($ENV{'CONTENT_LENGTH'} > 500) {
&save;
};
sub save{
open(OUT,">bgm.mid");
binmode(OUT);
print OUT $upfile;
close(OUT);
# レスポンスヘッダの出力
print "Content-type: text/html", "\n\n";
# HTMLの出力
(中略)
}
sub error{
# レスポンスヘッダの出力
print "Content-type: text/html", "\n\n";
# HTMLの出力
(中略)
}
長々とすみません。。。
0210nobodyさん2007/03/15(木) 08:49:40ID:???
midをhttp://から書けば?
02112082007/03/15(木) 11:14:58ID:U0mN2jGO
HTTPから書いたところアップローダーのページからはうまくいきました
ありがとうございます。
ただ、トップページの状況は前と同じです><
0212nobodyさん2007/03/15(木) 14:13:39ID:???
<form method="get">
<input type="text" name="comment">
<SELECT size='10' name='comment'>
.
.
</SELECT>
</form>

input の方が未入力なら selectタグの方をGETさせる、
といった方法をjavascriptあたりでする方法はないでしょうか。

formを分けるのも一つの方法かと思いますが、
他にもGETする値があるので。。。
0213nobodyさん2007/03/15(木) 18:40:25ID:10fPSmNF
レンタルサーバの/tmpの内容を削除する方法についての質問です。

現在、レンタルサーバで商品販売のサイトを運営しているのですが、急にプログラムが動作しなくなりました。
サーバの運営会社に問い合わせを行ったところ、/tmpを空にしてもらうことで対応できたのですが、
下記のような内容のメールが届きました。

>念のためにWebエラーログを確認してみましたところ、sessionの
>開始が為されないエラーが発生していました。
>session_save_pathはシステムの/tmpディレクトリが指定されておりますが、
>こちらには2MBの利用制限が設けられております。
>通常は一定時間後に自動で削除されるはずですが、スクリプトの動作により
>削除されないことがあるという事例がございました。
>一度スクリプトの動作を御確認下さい。
>/tmpディレクトリにファイルが確認できましたら、スクリプト経由から削除
>していただき、動作を再度御確認いただけますでしょうか。
>なお、ファイル削除方法等、プログラムの記述方法に関してはサポート対象外
>となりますので、お客様にて専門書やインターネット等でお調べいただきますようお願いいたします。

スクリプトの作成をしようと思い、ネットを探したのですが見つける事が出来なかったので
参考になるサイトなどありましたらお教えください
0214nobodyさん2007/03/15(木) 19:21:24ID:???
>>213
PHPかな
session_save_pathを自分のディレクトリに設定できるからそうすれば
02152132007/03/15(木) 19:34:43ID:???
>>214
ありがとうございます。
前任の担当者が作成したPHPで仕様書等がありませんが
session_save_pathを設定できるか調べてみます
0216nobodyさん2007/03/16(金) 20:21:06ID:???
ウェブサービスのプログラムについての質問です。

画像が貼られたウェブページで、そのページがブラウザから開かれたときは画像が表示されるけど、
画像のURLを直接指定された場合はその画像が開かれないように制御を掛けたいと思っています。

実際にこういったページはあるのですが、どう実現させているのか分かりません。
これを実現するにはどのようにして制御したらいいでしょうか?
0217nobodyさん2007/03/16(金) 21:17:43ID:???
mod_rewriteをApacheに組み込んでリファラーで制限
0218nobodyさん2007/03/18(日) 02:29:53ID:???
正規表現でアンドってどうすればいいんでしょうか?
orは|でいけるみたいなんですが・・・
0219nobodyさん2007/03/18(日) 05:52:40ID:???
>>218
たとえば
OR⇒foo|bar
AND⇒foo.*bar|bar.*foo
基本的に面倒であって、正規表現ではしないことが多い。
検索機能を作りたいならpreg_quote()なりquotemetaなりを忘れずに。
0220nobodyさん2007/03/19(月) 14:15:03ID:OiImoSid
HTMLのサイトを前任者から引き継ぎ
これまで更新の際は、前回のページから変わったところを直して別名保存
新規ページに仕立て上げて、前回のページをバックナンバーに回してきました。
ところが最近になって、あちこちのページで
Stack overflow at line:XX というメッセージボックスが表示されるようになりました。
(XXは任意の数字、4桁の場合もあり。okをクリックすると、そのままページは見られます)
申しわけありませんが、このStack overflow at line はどういう状態なのか
またその対策についてどなたか教えてはいただけないでしょうか。

0221nobodyさん2007/03/19(月) 14:41:17ID:???
>220
http://www.google.co.jp/search?hl=ja&ie=Shift_JIS&q=Stack%81@overflow%81@at%81@line&btnG=Google+%8C%9F%8D%F5&lr=
0222nobodyさん2007/03/19(月) 16:14:32ID:IQmR1GII
質問です。

ttp://hira.hopto.org/web.htm
にあるWeb-Clap CGIを設置しましたが、解析画面を開くとパスワードがかかっています。
そのデフォルトでかかっているパスワードが解りません。
どうかよろしくお願いします。
02232222007/03/19(月) 16:43:53ID:???
すみません、自己解決しました。
本当にすみませんでした。
0224nobodyさん2007/03/19(月) 16:46:32ID:???
>>222
Readme.txtくらい読もうな。パスワードの場所が書いてあるよ
初期設定では、
>#解析画面のパスワード(空白の場合は入力不要)
>$password='12345';
となってる
02252222007/03/19(月) 16:57:13ID:???
>>224
ありがとうございます。clap.cgiの中にあると思い込んで、Readmeを読んだつもりになっていました。
お手数をおかけして申し訳ありませんでした。
0226nobodyさん2007/03/20(火) 02:16:44ID:???
携帯以外はじくように
CGI(Perl)で
unless($ENV{'REMOTE_HOST'} =~ /.*ezweb.*|docomo|jp\-t/){error("携帯以外書き込みを受け付けていません");}
と書いてみたのですが、どうやらホストが取得できないみたいです。
ADDRとAGENTは取得できてるみたいなんですが、なんでだろう。
0227nobodyさん2007/03/20(火) 02:26:14ID:???
IPアドレス⇒ホスト名はコストかかるからサーバの設定で行わないように設定できる。
スクリプト上で解決するならgethostbyaddr等を参照するといい。
0228nobodyさん2007/03/20(火) 02:35:08ID:???
>>227
gethostbyaddrで解決しました。
ありがとうございます。
0229nobodyさん2007/03/20(火) 03:13:27ID:NXot/AQ/
細かく書きますのでよろしくお願いします
今テキストファイルでスクリプト.cgiというファイルをプログラミングしてます
中にはperlとhtmlに出力する内容が書いてあるんですが
文法チェックをしたいんですがperl -cwを使っても
ちゃんとチェックしてもらえません
どうしたらチェックしてもらえるんでしょうか?よろしくお願いします
0230nobodyさん2007/03/20(火) 11:22:01ID:???
普通はチェックされるよな?
02312292007/03/20(火) 20:38:49ID:NXot/AQ/
230さん
本当ですか?htmlのプログラムがあってもでしょうか?
.plにしなきゃダメとかそういうことはないんでしょうか?一度やり直してみます
0232nobodyさん2007/03/20(火) 21:52:15ID:???
アンケートのCGIなんですが、禁止ワードの機能がついていません。
$FORM{'q_0'}から$FORM{'q_20'}までにhttpという単語があったらエラーを出すように
したいのですが、
if($FORM{'q_0'}=~ /http/) {&error(0,"エラーです");}
これを20個も書くのはおかしいと思うのですが、うまく記述する方法はありますか?
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています