CGIだけど、なんか質問ある? part 6
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/04/23 20:28ID:Kp0cZQna<<注意:CGIは特定の言語に依存するものではありません>>
Perlのコーディングに関する質問はこちら
【Perl】初心者コーナーPart11
http://pc.2ch.net/test/read.cgi/php/1017201229/
過去ログは>>2
0577nobodyさん
02/06/12 16:07ID:Zj93qd1P#!/bin/bash
arg='tr"&+" "\012" | sed-e "s/^.*=//"'
echo "Content-type:text/html"
echo ""
echo "<HTML><HEAD>"
echo "<TITLE>index.html search</TITLE>"
echo "</HEAD><BODY>"
ここにプログラムを書く
echo "</BODY></HTML>"
まだシェルスクリプトについて習ったばかりフォームから送られてきた文字をどうやって処理するかもわかりません。
というか、最初はフォームの作り方すら知りませんでした。
というわけで、だれか、おしえてください。ヒントでもいいです。
0578nobodyさん
02/06/12 16:31ID:NJerhR65月の最後の日が簡単に分かる関数がありますでしょうか?
ありましたら教えて頂きないでしょうか?
また、ない場合は、一番サーバーに負荷を掛けずに(軽い)同じ動作を
させるにはどうすればよいか教えて頂けないでしょうか?
自分なりにも考えてみました。
for ( $i = $mday ; ; $i++ ) {
( $k_sec , $k_min , $k_hour , $k_mday , $k_mon , $k_year , $k_day ) = localtime( time + $i * 24 * 3600 );
if ( $k_mon != $mon ){
last;
}
}
0579nobodyさん
02/06/12 16:36ID:???そこまで考えたなら、「次の月の1日の24時間前を調べる」という発想が出てもいいんじゃないか?
それと、Perlのコーディングの話は、専用スレで。
ttp://pc.2ch.net/test/read.cgi/php/1022731565/
0580nobodyさん
02/06/12 16:38ID:NJerhR65逝ってきます。
0581579
02/06/12 16:38ID:???ちゃんと読んでなくて変なレスになってた。
チグハグなレスですまない。
続きはPerlスレにするとして、うるう年とかをどうするかはハッキリさせて質問してくれな。
0585nobodyさん
02/06/12 19:29ID:VJt9CQqy0586577
02/06/12 19:47ID:6bAybkaS0587nobodyさん
02/06/12 19:56ID:???宿題って何のためにあるんだ?
自分で勉強する為だろ?
カンニングはいかんぞ。
0588577
02/06/12 22:09ID:6bAybkaS逝ってきます。
0589nobodyさん
02/06/12 22:41ID:???>フォームから送られてきた文字をどうやって処理するかもわかりません
その部分はもう問題に答が書いてあるじゃん。
送られてきた文字列は変数$argに入る。
ただし577のシングルクォートはバッククォートに直しとけ。
0590577
02/06/13 14:00ID:Db0ssdevどうもありがとうございました。
実はあれからがんばって、何とかやり方がつかめてきました。
変数の処理の方法はわかってきたのですが、どれに入るのかわからなかったので参考になりました。
0591nobodyさん
02/06/13 20:21ID:9mq1CqQx一度認証したメールアドレスから送られたメールのみを受信し、
未知のメールアドレスからのものは着信拒否するようなCGIは
ありますか。
「メールを受信」ってどういう意味で言ってんだ?
自分宛のメールをCGIで選別したいとでも?
0594nobodyさん
02/06/13 20:49ID:IshuAhXl0595591
02/06/13 20:57ID:9mq1CqQx>593
こういうことです。
メール送信者にIDとパスワードを入力させて、あっていたら、メール入力フォームを
表示する。その時に送信側が使用したメールアドレスを記憶しておく。
その後は、メール入力フォームを使用しなくとも、メール送信できるようにする。
ただし、入力フォームからの送信実績のないメールアドレス、つまりIDとパスワード
があってないものからの受信は拒否する。
0597nobody
02/06/13 21:26ID:ZDF6ztrUようするにどーいうことよ。
俺にはサッパリ。。
0599login:root
02/06/13 22:40ID:TI2f9Ncuどうやって看板入れ替えてるんでしょうか…
どういうcgi組んだらああいう動きするのか見当がつきません。
スイッチは何なんでしょうか…
>>598 sudo使えばいいんじゃ
フォームを使用しなくてもということは、普通のメーラからということか?
自分でメールサーバでも持ってるのか?
なんだかよくわからんのぅ。
0601nobodyさん
02/06/14 01:42ID:???俺もよくわからんのだが
奴(>>595)はwebメールサーバーの真似事をCGIで
やりたいんじゃないのか?誰か>>595を解読してくれ。
0602nobodyさん
02/06/14 07:34ID:puWMPG8Rまたどうやってそのidをcgiで参照することができるんでしょうか?
0603nobodyさん
02/06/14 08:15ID:???0606nobody
02/06/14 13:50ID:AFlyc9kuQUERY_STRINGによって動作を分けてるだけでしょ。
0607602
02/06/14 15:27ID:puWMPG8R一度ためしてみます
0608Miku
02/06/14 18:11ID:AX6Bkw1WTripodでCGIを動かしたいのですが、
本体は動いてるのですが画像がぜんぜん表示されません。
gifはcgi-bin以外のフォルダにということだったので
cig-gifというフォルダを作ってその中に入れてるのですが・・・
0609nobodyさん
02/06/14 19:05ID:???http://pc.2ch.net/test/read.cgi/perl/1019752903/
鯖特有の事は、鯖のスレで聞いた方がいいと思われ。
0610577
02/06/14 23:02ID:fQhm2Pa6>>577
>フォームから送られてきた文字をどうやって処理するかもわかりません
その部分はもう問題に答が書いてあるじゃん。
送られてきた文字列は変数$argに入る。
ただし577のシングルクォートはバッククォートに直しとけ。
とあるのですが、argに入った文字列を出力しようとしても、何もでません。
echo $arg
↑
これでは、フォームから送られてきた文字を出力できないのですか?
0611nobodyさん
02/06/14 23:34ID:???それでいいはずなんだけどね。
POSTメソッドで送信してるか?
あとテキストボックスにname属性は指定してる?
<input type="text" name="hogehoge">とか。
name属性をつけないとIEはそのデータを送信しないよ。
0612nobodyさん
02/06/14 23:35ID:???sub header {
print "<html>\n<head>\n";
print "<meta http-equiv=\"content-type\"content=\"text/html; charset=x-sjis\">\n";
print "<title>$title</title>\n";
print "$style\n";
print "</head>\n";
print "<body text=\"$color\" link=\"$color\" alink=\"$color\" vlink=\"$color\" bgcolor=\"$color2\" background=\"$bgcg\">\n";
この場合、背景画($bgcg)を中央にだけ固定して表示したい場合にはどこをどういじれば良いのでしょうか。
BGPROPERTIES="FIXED"で固定だけは出来たのですが中央に一枚だけ表示する方法がわかりません…。よろしくお願いします。
0613577
02/06/14 23:49ID:fQhm2Pa6<BODY>
<FORM action="cgiのあるページのアドレス"
method="post">
<p>文字:<INPUT type="text" name="osu"><BR>
<BR>
<INPUT type="submit" value="送信"></p>
</FORM>
</BODY>
postをgetに変えたりして、色々やってもできません。
誰かヘルプ・・・
0614577
02/06/14 23:51ID:fQhm2Pa6#!/bin/bash
arg=`tr "&+" "\012" | sed-e "s/^.*=//"`
echo "Content-type:text/html"
echo ""
echo "<HTML><HEAD>"
echo "<TITLE>index.html search</TITLE>"
echo "</HEAD><BODY>"
echo $arg
echo "</BODY></HTML>"
もしかして、最初のargに代入するとこが間違ってるのでしょうか?
0617577
02/06/15 00:06ID:a+3gGUcItr "&+" "\012" | sed-e "s/^.*=//"`
この文自体、ただ書いておけといわれただけなので、意味不明だったのです。
どうもありがとうございました。
試してみます。
0618612
02/06/15 01:05ID:???単にCGI・CSS供にド素人なだけです。申し訳ない。
CSSで定義することが出来るのならその方法を教えていただけると・・・
などと思いましたがスレ違いですね。他で聞きますです。
0619577
02/06/15 01:21ID:a+3gGUcIやりたいことは、フォームから入力した文字をホームページから検索し、その行を抜き出すことです。
HTMLファイルから$argと同じものがあれば、その行を抜き出そうとしました。o
grep $arg ファイル名
として、フォームでlinkと打ったら、htmlファイルなのでタグなども一緒に出力してしまい、ます。
文字だけを出力する方法は、もしかして全然考え方が違うのでしょうか?
それとも、直接ホームページの文字だけを対象にして、行を抜き出すことができるのでしょうか?
混乱中です。
0620nobodyさん
02/06/15 01:34ID:???grep で行毎に抜き出すのでHTMLファイルを対象にしたら当然、タグも含まれる
でしょう。
grep 後の各行からタグを抜き取ってみるだけで解決するでしょう。
0621nobodyさん
02/06/15 02:01ID:???検索対象は本当にローカルなファイルなんか?
どうも>>576を見るとURLで指定されたWebページを検索せよと言ってるみたいだぞ。
おそらくlynxコマンドか何かでWebページ取ってこい、つうことじゃないかねえ。
lynxで読めば自動的にHTMLタグも消えるし。
0622577
02/06/15 02:35ID:a+3gGUcIそれを使えば、簡単にできるのでしょうか?
0623577
02/06/15 02:36ID:a+3gGUcIこの辺で寝ることにします。
色々教えてくれた方、ありがとうございました。
0624nobodyさん
02/06/15 02:42ID:HfE3zZiaタイトルをcgiソースで固定するのではなく、フォームで任意に
書き込んで欲しいと思っていじってみたのですが、どうも
うまくいきません。
htmlフォームのソースと
タイトル<br><input type=text name="subject" size=35><br><p>
cgiソース
print MAIL "Subject: $subject\n";
がうまくリンクすれば良さそうなのですが、わかりません。
良いアドバイスをお願いいたします。
0625nobodyさん
02/06/15 02:59ID:CbvAN6fkなんで俺のとこのISP、HTTP_COOKIE対応してないのよ。
0626nobodyさん
02/06/15 07:25ID:???JavaScriptでクッキー使えばいいんじゃない?
0628nobodyさん
02/06/15 13:01ID:YL6dKHgl-----↓史上最低クズ板発見 !! (^o^)丿↓-------------------------
http://pc.2ch.net/hard/
カテゴリ;ハードウェア
★↑馬鹿博之本人 出没板★
------該当板発見、 ↓ちっともお勉強にも屁にもならない板発見 !!↓---------
×http://pc.2ch.net/hard/←チンカス板 or クズの集まり×
↑こいつらの中にスパムやってる奴いるぜ。
なんせ、↑こいつらキチガイ集団だからな。
0630577
02/06/15 14:55ID:73xXxu8B↑
これでHTMLタグが消えると、どこかに書いてたので下のようにやってみました。
sed 's/<[^>]*>//g' フィイル名
grep $arg ファイル名
ですが、うまくいきません。
いらない部分は、<で始まり、>で終わる部分だと思うのですが、それを検索対象にいれない方法がわかりません。
もしかして、621さんの言うlynxというコマンドを使わなければできないのでしょうか?
再び混乱中です。
誰か助けて〜
0631577
02/06/15 16:55ID:73xXxu8B半角英数での入力は問題ないのですが、全角で、例えば「あ」と入力すると「%82%A0」と表示されます。
フォームで全角文字を入力して、それを出力できるようにするにはどうすればいいのでしょうか?
0632577
02/06/15 17:42ID:73xXxu8Bしかし、やはり全角でひらがなとか漢字を入力すると何も出力されません。
たぶんそれを解決すればできると思うんですが、マジ困ってます。
もしかして、htmlファイルのフォームを作るときの記述で、特殊なことをしなければないらないのでしょうか?
0633あぼーん
NGNG0635577
02/06/15 22:16ID:73xXxu8Bhtmlファイルは
sed 's/<[^>]*>//g' ファイル名
によって
<html>
↑のように一行に書いているものは消えるのですが、
<
href=・・・
>
↑のように書いてるものは、「<」「>」はきえますが、href=・・・が消えません。
おそらくファイルの中で改行されてるからだと思いますが、このようなものはどうやって処理できるのでしょうか?
0636nobodyさん
02/06/15 22:54ID:???他の方法でHTML出力のCGIを簡単に起動させる方法ってありますでしょうか。
0637nobodyさん
02/06/15 23:01ID:???最初は、DLLを直接リンクして失敗なんでや
PHPのDLLはリンクするだけでいけたのに
再度Perlをインストールしました
そして、IISにリンクしたらつながったなんでや
0638nobodyさん
02/06/15 23:04ID:???<!--#include virtual="xxx.cgi"-->
普通これでそ。execコマンド怖いよ・・。
>>637
しらんわ
0639nobodyさん
02/06/15 23:11ID:???use Socket
この二つは同じモジュールかい?
使い方もかわるのかい?
0641nobodyさん
02/06/15 23:35ID:???>言語はなんだい?
ActivePerlですが何か
>それはCommon Gateway Interfaceと何か関係が有るのかい?
CGI=Perl これ定説
すれちがいならスマソ
0642nobodyさん
02/06/15 23:53ID:???CGI=Perl これ定説
CGI=Perl これ定説
0643nobodyさん
02/06/16 00:02ID:???0644635
02/06/16 00:05ID:sBhf/8rI0646nobodyさん
02/06/16 03:12ID:???前Socketについて聞いてたヤツか?まずその厨臭い喋り方をやめろ。
人に聞く前にここのページ100回読んでこい。
http://x68000.startshop.co.jp/~68user/net/
0647nobodyさん
02/06/16 08:49ID:???ごめんね
HPなかなかおもしろかったよ
アプリケーションプロトコル作りたいんだけど、CS系ではHTTPを
参考にするのがBESTなの?
0648nobodyさん
02/06/16 09:00ID:???http://x68000.startshop.co.jp/~68user/net/
こういうわかりやすいページって厨房は見つけられません
紹介してくれてありがとうございますた。
0650nobodyさん
02/06/16 16:34ID:yZ1tNdSi0652635
02/06/16 17:36ID:AKIK3E+Wクソスレとかを乱立させるので、注目してください。
今夜12時決行です!
0654nobodyさん
02/06/16 19:16ID:???スケジュールに関するCGIでログファイルのディレクトリを
設定したいんですけど、どうもうまくいかなくて。
#ログファイルのディレクトィまでの絶対パス(相対でも可)
$zettai = '';
#$zettai = '';
と書いてあるんですが、本体を置いてあるディレクトリまでの
絶対パスを書いてもログが生成されないんです。
他のCGIの説明を読むと「絶対パスを指定して下さい。
(URLではなくパスね。。)」などと書いてあるし。
サポート掲示板に同じようにログファイルが生成されないと
質問がいくつかありましたが、4月の質問にレスがついてません。
ログファイル用のディレクトリ作ったり、色々と試したんですが。
どなたかヒントだけでもお願いします。
0655635
02/06/16 19:18ID:AKIK3E+W今日の内に質問の答えが返らなければあきらめましょう。
今夜、この板を含むプログラム関係の板は、荒らしによって消滅します。
0656nobodyさん
02/06/16 19:36ID:z5KHLw2yこっちにももっとヒントを下さい
ものすごく難しいなぞなぞだ・・・
0657654
02/06/16 20:13ID:???ヒントですか、どう説明したらいいんでしょうか。
私は、絶対パスってURLとイコールして考えてたんですね。
なのに、わざわざ「URLではなくパスで」と書いてあるので
そこから悩んでしまったんです。
使いたいスクリプトの解説には
・$zettai = のところをログファイルのディレクトリィまでのパスを指定して下さい
(絶対パスでも相対パスでもOKです)
スクリプト自体には
#ログファイルのディレクトィまでの絶対パス(相対でも可)
$zettai = '/export/home1/aaaaa/public_html/cgi-bin/library/schedule/';
#$zettai = '/www/aaaaa/public_html/cgi-bin/schedule/';
と記述してあるんですけど(aaaaaだけ書き換えました)
私が初歩的なところを分かっていないとは思うんですけど
絶対パスの定義が分からなくなって混乱してます。
0659654
02/06/16 20:16ID:???やっぱり最初のが使い勝手とかいいんで、出来れば最初のを
使いたくて四苦八苦してる次第です。
0660658
02/06/16 20:16ID:???×必要な部分
○個人特定されそな部分
0661nobodyさん
02/06/16 20:29ID:???相対パスでも可なら相対パスにすりゃいいじゃん。
ドキュメントルートの絶対パス
print "Content-type: text/html\n\n";
print "$ENV{'DOCUMENT_ROOT'}";
0662654
02/06/16 21:02ID:???ttp://www.geocities.co.jp/MusicStar-Live/8489/script.txt
>661
絶対パスで混乱して、相対パスをどう定義すればいいのか
分からなくなってたんです。
一人で悩みながらいじってて、頭ん中に?が
ぎゅうぎゅう詰めになってしまって。
0663nobodyさん
02/06/16 21:51ID:???検索してみるといろいろ解説サイトがみつかる
http://www.google.co.jp/search?hl=ja&q=%90%E2%91%CE%83p%83X+%91%8A%91%CE%83p%83X
0664654
02/06/16 22:18ID:???わざわざ有難うございます。
まだ一つ目のページを読んだだけなんですが…。
絶対パスってイコールURLじゃ…なかったんですね。
私の持ってる本だと、URLだと解釈出来たんで
今までずっとそう思ってました。目から鱗。
0665nobodyさん
02/06/16 22:26ID:???パーミッションが正しくない可能性は無いか?
実行はできても書き込めないとか
public_html/cgi-bin/library/schedule/
public_html/cgi-bin/library/schedule/mycalen.cgi
public_html/cgi-bin/library/schedule/cgi-lib.pl
となってるようだが
0666654
02/06/16 23:16ID:???無事に動作しました。
原因は絶対パスを勘違いしていた事に尽きますね。
>663さんの解説サイトの一つに絶対パスを調べるCGIがあったので、
それで調べてみると自分が思っていなかったパスになりました。
勉強不足を実感しましたが、ログが生成されたのを確認出来た時の
嬉しさに声を上げてしまいました。
知識足らずの教えてちゃんにレスを本当に有難うございました。
0667nobodyさん
02/06/17 02:11ID:avz6N9SR$date{'select_1'}
$date{'select_2'}
$date{'select_3'}
$date{'select_4'}
これを、
$date{'select_$x'}
という風に数字の部分を変数にして表したいのですが、どのように表現
すればよいのでしょうか?
0668nobodyさん
02/06/17 02:20ID:???0670nobodyさん
02/06/17 07:14ID:nRo1vqSRこのようにするとうまくいかないのですが・・・。
0671nobodyさん
02/06/17 07:17ID:nRo1vqSR[error] [client 127.0.0.1] syntax error at c:/apache/htdocs/test.cgi line 550, near "}"
このようなエラーが出てきます。
0672hoge
02/06/17 07:25ID:???at: 〜に
line: 行
near: 〜の近くに
0674nobodyさん
02/06/17 14:20ID:oSTbTHVJcookieを使ってROM禁の掲示板をやってますが、
ブラウザをcookieを食べる設定にしても、レスが見えない人がいます。
(その人は、XP&IE6を使ってます。)
レスを見れないと言ってる人は、ログを見るとcookieを食べてないのですが、
ブラウザはcookieを受け付ける設定にしてると言ってます。
掲示板のスクリプトはありふれた物で、変わった事はしてません。
他のユ−ザは問題ないですし、私が動作チェックした時も問題ありませんでした。
一部のIE6ユーザだけが見れないみたいなんです。
これはIE6の不具合なんでしょうか?
0675nobodyさん
02/06/17 14:57ID:???http://www.google.com/search?num=50&lr=lang_ja&q=IE6%20Cookie
0676674
02/06/17 15:22ID:???私もそうだと思うんですが、cookieを食べてるって言い張るんですよ・・・。
取り敢えず上のURLに誘導してみます。
ありがとございました。
■ このスレッドは過去ログ倉庫に格納されています