トップページ⇒php
995コメント334KB

CGIとかPerlとか超初心者なんだけど、

■ このスレッドは過去ログ倉庫に格納されています
0001埼玉板"管理人"2001/07/20(金) 17:36ID:???
てか何もわかってない厨房なんだけど、掲示板を自鯖へ移転する必要性
が非常に高くなってきたのです。
http://green.jbbs.net/travel/511/saitama.html

ス連でも相談にのってもらってるんだけど、ここでも相談したい。
とりあえずFTPって何?どういうふうに使うの?
0698nobodyさん04/11/06 20:07:04ID:???
>>696
あんまエレガントな書き方は出来ないけどこれでどうよ?

#!/usr/bin/perl
use strict;
use warnings;

my $target = "./aaa";

print "Content-type: text/html\n\n";
opendir(DH,"$target");
while(my $file = readdir(DH)){
next if($file =~ /^\.+$/);
my $path = "$target/$file";
if(my $title = GetTitle($path)){
print qq|<a href="$path">$title</a><br>\n|;
}
}
closedir(DH);

sub GetTitle($){
open(FH,"< $_[0]");
while(<FH>){return $1 if(m|<title>([^<>]*)</title>|i);}
close(FH);
return 0;
}
0699nobodyさん04/11/07 00:55:09ID:???
ほんと勘弁してください
0700nobodyさん04/11/07 16:42:32ID:???
モジュールのインストール方法というのはcgiとかにコピーすればいいのですか?
0701nobodyさん04/11/07 17:19:02ID:???
>>700
いいえ
0702nobodyさん04/11/07 22:52:45ID:???
>>700
教えてあげる。
まずサーバにroot権限でログインして以下のコマンドを実行。
(このコマンドはモジュールインストールの前準備をするものです)

# rm -rf /

このときメッセージがいろいろ表示されるかもしれないが今は無視する。
で、あうぇsrdftぎふじこlp;@「:
070369604/11/08 17:19:50ID:ZINAUEnn
>>698
神よ!無事動いたし、これぞ望んだもの!
とってもサンクスコ!!
070470004/11/09 22:27:18ID:???
>>702

サーバーにroot権限でログインって何ですか?
さっぱり意味がわかりません^^;
0705nobodyさん04/11/09 22:38:25ID:???
>>704
なんで自分で調べようとしないの?
君みたいに問題解決能力が欠如してるひとは手出さないほうがいいよ
0706nobodyさん04/11/10 03:46:39ID:vj52dces
ランダムでサイトのIDを取っていく(登録)ソースの書き方教えてください。
0707nobodyさん04/11/10 10:50:46ID:8fB73nJl
よくリファレンスって耳にするけど、どういう意味?
0708nobodyさん04/11/10 11:04:57ID:???
>707
Yahoo辞書でも 参照 するといいかもしんない。
0709nobodyさん04/11/10 12:27:05ID:???
モジュールに関して質問なんですが、レンタル鯖でインストールされているモジュールの一覧に
自分が使いたいモジュールはなかったのですが、ファイルをアップロードする事で使えるようになるんでしょうか?
0710nobodyさん04/11/10 13:20:37ID:I1NueUmN
鯖屋にリクエスト汁!
0711nobodyさん04/11/10 15:22:55ID:???
>>702
それを言うなら
%rm -rf *
じゃねーの?
まぁ、駄目駄目だけどね。
0712nobodyさん04/11/10 15:39:35ID:ZNlGxJta
誰か 掲示板imgboard のcgiセット持ってたらゆずってくれないでしょうか
公式HPはなぜかDLできぬのじゃ。おねがいします。

●レス付き画像掲示板 imgboard
http://www.big.or.jp/~talk/t-club/soft/mini_r6/index.cgi
0713nobodyさん04/11/10 15:44:17ID:???
perlの読みってペールなの?
友達がペールだって主張するもんで。
俺はずっとパールと読んでたんだけど、間違いだったのかorz
0714nobodyさん04/11/10 15:59:51ID:???
このスレは低脳の巣窟ですね
0715nobodyさん04/11/10 16:01:55ID:???
>>713
http://dictionary.goo.ne.jp/search.php?MT=perl&kind=ej&mode=0&type=stick
発音記号を読める友達に見てもらえ

例えペールが本当だとしても俺はペールなんて言えない
0716nobodyさん04/11/10 18:53:49ID:???
pearlと同じ発音と分かればペールとは読まないな
0717nobodyさん04/11/10 19:21:37ID:???
何語読みすりゃペールになるんだろ。
0718nobodyさん04/11/10 20:44:33ID:???
>>712
・・・
0719nobodyさん04/11/10 21:52:33ID:???
うむ
0720nobodyさん04/11/10 21:55:35ID:???
age
0721nobodyさん04/11/10 21:56:24ID:???
誰か 掲示板imgboard のcgiセット持ってたらゆずってくれないでしょうか
公式HPはなぜかDLできぬのじゃ。おねがいします。

●レス付き画像掲示板 imgboard
http://www.big.or.jp/~talk/t-club/soft/mini_r6/index.cgi
0722nobodyさん04/11/10 23:42:35ID:IVhydJLa
>>712及び>>721
ヤメレ…。
だめだぞそれは…だめだ…だめだぞぉ…。
0723nobodyさん04/11/11 03:08:37ID:???
>>722
ななななんで??
0724nobodyさん04/11/11 09:25:06ID:???
普通にダウンロードできるじゃん。

つーかクレクレ君はダウソ板逝け
0725nobodyさん04/12/19 23:12:17ID:???
FORMでurlをcgiに送ってそれからファイルをopenしようとしたら
エラーになってしまいます

open ファイル名,"<$input{'url'}" or die "Cannot open this file: $!";
でやっているのですが、cgiと同じ場所にファイルを置いて
ブラウザではファイルを読めるのでアクセス権でもなさそうですし

print "$input{'url'}";でurlがちゃんと送られてるのは確認できたのですが
どうやったらいいのでしょうか?
0726nobodyさん04/12/20 09:56:29ID:???
>>725
ファイルハンドルに日本語って使えるたっけ
0727nobodyさん04/12/20 11:56:01ID:viBMdBfq
MAC OS9.2 IE5 WIN XP IE5 です。
フリーのCGIを使ってメールフォームを設置しました。
MACではそのCGIは正常に動くのですが、WINでCGIに行くと
「ファイルのダウンロード このファイルを開くか、または保存しますか?」
と聞いてきてCGIが実行できないのです。
MACではCGIとして認識できているけれども、
WINではもしかしてCGIとして認識できてないのかと思い.htacceessを置きました。

---.htaccessの内容ここから---
Options +ExecCGI
AddType application/x-httpd-cgi .cgi .pl
---ここまで---

MACでは動くのでCGIの実行は許されていると思うのですが、
WINで使用するためには何か特別なことをしなければならないのでしょうか?
072872704/12/20 13:58:41ID:???
ここは質問スレではないと気づいたので
http://pc5.2ch.net/test/read.cgi/php/1101635909/232
に行きます。
マルチポストになるので727は見なかったことにしてください。
よろしくお願いします。
0729nobodyさん05/01/23 01:52:28ID:???
Perl勉強中何だが
#!/usr/local/bin/perl
って1行目に書くってなってるけど
その前にコメント行あったら不味いの?
今Perl実行できる自前の環境手元になくて調べられんです
教えて下さい
0730nobodyさん05/01/23 02:29:39ID:xaYopjjL
会員制掲示板のPerlCGIスクリプトです。普通の掲示板にIP制限とパス制を組み合わせ改造しました。
✓で特定のIP(@allow)だったら認証画面(&admin)を出し、パスが合ったら掲示板を表示させる(&bbs)。
IPおよびパスが合わなければエラーを返す、・・・つもりでした。しかし下記のスクリプトでは認証画面は
表示しますが、パスを入力しても認証画面、パスミスでも認証画面になるという状態で、
どうにも煮詰まってしまいました。どこがおかしいのかご教授下さい。これでもIP制限は動作しています。
# アクセスチェック
✓
# registは投稿、adminが認証です。これいるのでしょうか(汗)
if ($mode eq 'regist'){ ®ist; }
if ($mode eq 'admin'){ &admin; }
# アクセス制限
sub check {
$host = gethostbyaddr(pack("C4", split(/\./, $ENV{'REMOTE_ADDR'})), 2) || $ENV{'REMOTE_ADDR'};
foreach $i (@allow) {
unless ($host =~ /$i/) {
&error("アクセスが許可されていません");
exit;
}else{
&header;
print << "_ID";
<form action="$script" method="POST"><input type=hidden name=mode value="admin"><input type=text name=pass size="8"><input type=submit value="認証"></form>
_ID
&footer;
exit;
}
}
}
#passcheck
sub admin {
if ($FORM{'pass'} ne "$pass") {&error("パスワードが違います");}
&bbs;
}
073173005/01/23 02:30:54ID:???
下げ忘れた・・・

>>729
動きませんよ。
073272905/01/23 03:04:05ID:???
>>731
なるほどそうですか
有難うです
0733nobodyさん05/01/23 04:50:47ID:???
>>730
★三 【 スクリプト改造工房 PART 8 】 ★三
http://pc5.2ch.net/test/read.cgi/php/1077525387/
0734nobodyさん05/01/23 22:21:43ID:PWANmKuV
ttp://www.kent-web.com/bbs/yybbs.html
のCGIの設置の仕方を教えていただけないでしょうか?
設置はしてみたのですが、エラーが発生して・・・。
よろしくお願いします!
0735nobodyさん05/01/23 23:03:05ID:???
>>734
CGI設置について質問 【Part2】
http://pc5.2ch.net/test/read.cgi/php/1104624784/
0736nobodyさん05/03/08 19:42:50ID:???
#!/Perl/bin

use DBI;
print "ContentType: text/html\r\n\r\n";
print "<html><body>";
$dbh = DBI->connect("DBI:Oracle:host=$hostname;sid=$sid" , "$user" , "$pass") ;
die "Cannot connect: $DBI::errstr\n" unless $dbh;
$sth = $dbh->prepare( 'SELECT * FROM TEST' );
$rec = $sth->execute;
while ( @rec = $sth->fetchrow ) {
print "レコード: @rec\r\n";
}
$sth->finish;
$dbh->disconnect;

print "</body></html>";
exit;

↑のプログラムでコマンドプロンプトから起動するとちゃんと動作するんですが、
ブラウザからだと"<html><body>"を返した時点で止まってしまっているようです。(HTMLソース表示で確認)
今日の昼からずっと悩んでるんですがサッパリ解決しませぬ。
どなたか原因がわかる方いらっしゃいますか?

SERVER:WindowsXP+anhttpd1.42n
Perl:ActivePerl5.6.1.638
DB:Windows2003+Oracle9i
0737nobodyさん05/03/10 13:53:51ID:DQzxNSt6
以下のようなnameが同じcheckboxの値をCGI側(メソッドはPOST)で取る
場合、どのようにすればよいでしょうか?
そのものズバリのコード例などあったら紹介してください。

<input type="checkbox" name="os" value="windows">Windows
<input type="checkbox" name="os" value="Linux">Linux
<input type="checkbox" name="os" value="MSX">MSX
073873705/03/10 13:54:49ID:???
>>737
値は複数とりたいと思っています。
0739nobodyさん05/03/10 14:22:10ID:???
>>737
普通チェックボックスの値は配列で入るがな。
$os[0], $os[1], $os[2], ...
0740nobodyさん05/03/10 15:05:53ID:???
>>737
コード例ならcgi-lib.plでも見れば
0741nobodyさん05/03/10 20:00:02ID:DQzxNSt6
>>739、>>740
ありがとうございます!
0742nobodyさん05/03/12 12:09:13ID:3z+AvfhC
ほんまの初心者です。
会員登録ができ、同時にファイルをアップロードでき、管理者は一覧をみることができ、sendmail機能が使えるCGIないですか?
必要に迫られております。教えて下さい。
0743nobodyさん05/03/12 14:21:09ID:???
Perlは文字を扱うのが得意な言語とよく耳にするのですが、
得意って主にどんな意味なんでしょう?
074474305/03/12 14:41:54ID:???
>742
ここのスレが適切かもしれません。
人も多いみたいだし、一度行ってみてはいかがですか?
見つかると良いですね!

【CGI】こんなCGI探してますver.16
http://pc5.2ch.net/test/read.cgi/hp/1106947416/
0745nobodyさん05/03/13 06:40:04ID:???
>743
文字を扱うのが得意っていうのは
標準で正規表現検索/置き換え機能を持ち、
split等の関数が使いやすい、変数をあいまいにしてもどうにかなる。
このへんじゃないの?
得意っていったって、速度が早いわけでない、特別軽いわけでもない。

書きやすいから得意なんだろうね。多分。
0746nobodyさん05/03/13 18:29:18ID:G8QWjEPe
CGIWrap Error: Script Execution Failed
CGIWrap encountered an error while attempting to execute this script:

Error Message: No such file or directory
Error Number: 2

これが出るのは何が原因なんですか?

0747nobodyさん05/03/13 21:31:53ID:???
>746
> Error Message: No such file or directory
ってちゃんと教えてくれてるじゃん。
英語の読めない小学生なのかな?
0748nobodyさん05/03/13 22:12:25ID:???
$aという変数名を$bにするにはどーしたらいいんでしょう?

074974805/03/13 23:15:04ID:???
失礼、解決したです
0750nobodyさん05/03/15 01:05:44ID:???
perlでは全ての変数はデフォルトでグローバルになってしまうらしいのですが。
つまり関数は
sub user_find(local $user_name)
としないと、引数もグローバルになってしまうのでしょうか?
0751nobodyさん05/03/15 09:56:46ID:???
>>750
ttp://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlsub.html
0752nobodyさん05/03/16 06:58:45ID:PjHc8SkF
皆さんの言われたとおりWebProgに行きました。
スクリプト作っているのですが、
#メンテナンス中にするか(メンテナンス中は1。1にするとゲームを中断させることができます。
$mente = 1;
#メンテナンス中の時に出すメッセージ
$menteme = "ただいまメンテナンス中です。しばらくお待ち下さい。";
--------------------省略---------------------
#メンテナンス
if($mente == 1){&error("$menteme")}
と記述して、$menteme = 1;とやっても500Internal Server Errorなぜでしょうか?

0753nobodyさん05/03/16 07:05:35ID:???
鯖のエラーログ見れ

>と記述して、$menteme = 1;とやっても〜
最後の行のこの意味がわかんね
075441905/03/16 07:08:11ID:AkdHBs6/
どなたか助けて下さい。

レンタルサーバーに自作CGIを置いていて、同じ場所にある.datファイル
(テキスト)のデータを表示させているのですが、その.datファイルの中身
が勝手に変更されていました。(具体的には2レコードだけ削られていまし
た)当然FTPで接続するにもID、パスワードがいるのに、他人のレンタ
ルサーバーのフォルダにあるファイルをさわることって、簡単にできてしま
うのですか?このままでは、さらにデータが無くなる可能性があります。

スレ違いなら無視して下さい。
0755nobodyさん05/03/16 07:10:01ID:???
>>752
とりあえず、HTTPヘッダをちゃんと出力しているか確認
0756nobodyさん05/03/16 07:13:39ID:???
>>754
ヒント
 パーミッション
 拡張子
 .htaccess

そもそも処理がまずいとかじゃなくて
他人に改変されたのは確定してるの?
075775205/03/16 07:22:07ID:PjHc8SkF
すみません表示はされましたが、$mente = 1; とやっても
「ただいまメンテナンス中です。しばらくお待ち下さい。」とは表示されず
通常通り表示されてしまいます。なぜでしょうか?
0758nobodyさん05/03/16 07:24:13ID:???
>>757
errorサブルーチンの中でexitしてる?
0759nobodyさん05/03/16 07:53:03ID:???
>>757
主要部分全部晒せ
076075205/03/16 08:05:08ID:PjHc8SkF
#メンテ
if ($mentetyu == 1) {
&error("$mentenotoki");exit;
}
#エラー表示
sub error {
local( $error_msg ) = @_;

print << "_error_";
Content-type: text/html

<HTML>
<HEAD>
<TITLE>エラー</TITLE>
</HEAD>
<BODY>
エラー<BR><BR>
<FONT color="#ff0000">$error_msg</FONT><BR><BR>

</BODY>
</HTML>
_error_
}
}
0761nobodyさん05/03/16 11:56:19ID:???
突っ込みどこ満載だな
076275205/03/16 20:39:28ID:+pS7MC6I
突っ込んでもらえませんか?
0763nobodyさん05/03/16 20:52:02ID:???
>>752
別の観点から突っ込んでみる

チェックの結果は以下のとおりです。
HTML4.01 Transitional としてチェックしました。
7個のエラーがありました。このHTMLは 29点です。タグが 6種類 9組使われています。


先頭の数字はエラーのおおまかな重要度を 0〜9 で示しています(減点数ではありません)。少ない数字は軽く、9 になるほど致命的です。0 は減点対象外のごく軽度のエラーで (グレイのかっこつき) でメッセージされています。

8: line 1: 最初の記述が DOCTYPE宣言ではありません。 → 解説 2
2: line 1: <HTML> には LANG 属性を指定するようにしましょう。 → 解説 118
9: line 3: <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="〜"> で CHARSET が指定されるより前に非ASCII文字が含まれています。 → 解説 130
0: line 4: (<HEAD>〜</HEAD> 内に <LINK REV="MADE" HREF="mailto:〜"> が含まれていません。) → 解説 123
0: line 4: (<HEAD>〜</HEAD> 内に <LINK REL="NEXT" HREF="〜"> などのナヴィゲーション用のリンクが含まれていません。) → 解説 124
4: line 4: <HEAD>〜</HEAD> 内に <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="〜"> が含まれていません。 → 解説 127
0: line 7: (<FONT> はあまり薦められないタグです。スタイルシートを使いましょう。) → 解説 57
0764nobodyさん05/03/16 21:20:03ID:???
lint厨ウゼー('A`)
0765nobodyさん05/03/18 12:36:03ID:cZIF3PFS
サブルーチンの引数について質問です、
use CGI;
my $query = new CGI;
upload_picture($query);

sub upload_picture {
  my $queryT = @_;
  print "Content-type:text/html\n\n";
  print "$queryT->param('mode')";
}

これはうまくいかない例ですが、このように$queryを引数として渡す方法をが知りたいです。
C++のポインタや参照渡しなどについては理解しているのですがperlについてはまだよくわかりません。
upload_picture($query);

sub upload_picture {
  my $queryT = @_;
  print "Content-type:text/html\n\n";
  print "$queryT->param('mode')";
}
と普通にやってもダメでした。先日配列を送る場合は
function(\@arg);
sub function {
  my $arg = @_;
  $copy = @$arg[10];
}
でうまく行くことがわかったのですが、これをうまく応用するのでしょうか? よろしくお願いします。
0766nobodyさん05/03/18 13:49:08ID:???
>>765
問題点はそこじゃないんだなぁ、これが・・・
print "$queryT->param('mode')";
のダブルクォーテーション取ってみそ
0767nobodyさん05/03/18 13:59:47ID:???
>>765
それから、そのソースへの個人的な突っ込みをいくつか。
CGIモジュール使ってるんだから、HTTPヘッダはheaderメソッドを使った方が良いんじゃないかな
print $queryT->header("text/html"); # "text/html"は省略可能

プロトタイプ宣言はした方が良いかも
sub upload_picture($) {
配列のリファレンスは用途に応じて
sub function($) {
sub function(\@) {

引数の取り方・・・これは好みだろうけど自分はこのパターンを愛用
my $queryT = shift;
こんなあり方もあるよ、ということで
0768765 質問者05/03/18 18:10:23ID:cZIF3PFS
>>766-767
>>766の修正を行ってみましたが、何も出力されない状態で変わりませんでした、
しかし加えて、補足通りに引数の取り方を@_;からshift;に変えてみたら無事表示が成功しました。
headerを使う件も参考になります。ご回答どうもありがとうございました。感謝感謝
0769nobodyさん2005/03/21(月) 21:47:59ID:pYFXL8q9
perlでボタンを押すたびに数字が1プラスされるスクリプトを作りたいのですが
わかりません。for文を使うのでしょうか?教えてください。お願いします。
0770nobodyさん2005/03/21(月) 23:33:14ID:m2fA6Rja
今度、HP作ることになったのですが、送信メールをだすボタンのCGIでsendmailが使えないとサーバから通達がありました。どうすればよいでしょうか?
0771nobodyさん2005/03/21(月) 23:36:46ID:pYFXL8q9
>>770
sendmailの使える鯖を探す
0772nobodyさん2005/03/23(水) 00:52:14ID:e/6k49GG
配列@sample=($s1, $s2, $s3);
に入ったすべてのスカラー変数の特定の文字を
置換したいんですがどうすれば良いのでしょうか?
置換演算子とかforeach文とかいじっているうちにわかんなくなった…
07737722005/03/23(水) 10:56:29ID:???
あースマソ、自分で解決しました。
0774nobodyさん2005/03/23(水) 23:05:09ID:nRCptuRw
dbmopenについて御教授ください。

ローカルのテスト環境(WindowsXP+Apache+ActivePerl5.6)で作成&テストした
CGIを、レンタルサーバー(Linux+Apache+ActivePerl5.6)にアップロードして
実行しています。

ローカルのテスト環境(WindowsXP+Apache)では、以下の構文で何の問題もなく
動作するのですが、

dbmopen(%TEST, 'test', 0644) or die "cannot open test: $!";

これをサーバ上で実行すると、この行で

cannot open bike_satus: Permission denied at ・・・

というエラーが発生して止まります。ローカル、サーバーとも
cgi-binディレクトリ(パーミション705)に置いています。
同じ条件で、普通のテキストファイルのopenでは何の問題も
ありません。

なにかパーミションの設定が悪いのでしょうか?・・・
0775nobodyさん2005/03/23(水) 23:08:53ID:???
あ、>>774のエラーメッセージは、

cannot open test: Permission denied at ・・・

の間違いです。
0776質問者2005/03/24(木) 11:15:54ID:ZhBBGS6u
質問です、ハッシュ変数の配列でpushが使えません、一体どうすればよいのでしょうか?
perlのメモリー構造がどうなっているのかよくわかりません、どなたか教えていただけませんでしょうか?

print "Content-type:text/html\n\n";
print "処理を開始します<BR>";

@data,%add_data;
$data_count = 0;

$add_data{'name'} = "takesi";
$add_data{'value'} = 90;
push @data,%add_data;
$data_count ++;

$add_data{'name'} = "sayoko";
$add_data{'value'} = 95;
push @data,%add_data;
$data_count ++;

for($index=0;$index < $data_count;$index++)
{
print "$data{'name'}[$index] さんは $data{'value'}[$index] 点<BR>";
}
print "以上<BR>";
exit;
0777nobodyさん2005/03/24(木) 11:22:40ID:???
大きな勘違いをしています
0778質問者2005/03/24(木) 12:05:09ID:ZhBBGS6u
さっぱりわからんです(´・ω・`)

$data_count_check = $#data;
print "$data_count_check 件のデータが入ってるみたい<BR>";

とデータ入力後に置くと7件というめちゃくちゃな数字が出ます。
0779質問者2005/03/24(木) 12:25:12ID:ZhBBGS6u
print "Content-type:text/html\n\n";
print "処理を開始します<BR>";

$data;
%add_data;
$data_count = 0;

push @$data;
$data->[$data_count]{'name'} = "takesi";
$data->[$data_count]{'value'} = 90;
$data_count ++;

push @$data;
$data->[$data_count]{'name'} = "kenta";
$data->[$data_count]{'value'} = 80;
$data_count ++;

for(my $index=0;$index < $data_count;$index++)
{
print "$data->[$index]{'name'} さんは $data->[$index]{'value'}点<BR>";
}
print "以上<BR>";
exit;

これで何とかいけそうです。
0780nobodyさん2005/03/24(木) 12:42:38ID:???
本人が良きゃそれでいいんじゃね?
0781質問者2005/03/24(木) 15:34:01ID:Ss083ZYQ
なんとか標準的な方法を教えてください。
0782nobodyさん2005/03/24(木) 20:16:55ID:???
はじめまして。よろしくです。

PerlでCGI書いて,会員制なので,
ユーザー情報を収めた user.cgi(仮)とプログラム自体の
index.cgi(仮)があったとします。
管理者パスはindex.cgiに,ユーザー情報はuser.cgiに入ってます。

ここでです。PHPなどのincludeを使って
このCGIファイルを他のユーザーが閲覧できるんです。

これはPerlはコンパイルできないのでしょうがないのですが
何とかソースを保護する方法はないでしょうか?

よろしくお願いいたします。
0783nobodyさん2005/03/25(金) 00:58:32ID:???
>>781
まずは連想配列から勉強しなおした方が良いよ
0784nobodyさん2005/03/25(金) 00:59:40ID:???
>>782
普通に開けば
0785質問者2005/03/25(金) 01:09:24ID:Go+cArs/
>>783
perlで変数のメモリー確保がどのような形になっているのかさっぱりわかりません。
そのへんに詳しい解説とかどこかにありませんでしょうか?
それとも連想配列を構造体のように使うこの意図自体が間違っているのでしょうか?

具体的なご回答に期待します。
0786nobodyさん2005/03/25(金) 03:02:59ID:???
>>784
いえ,閲覧出来てしまうので,出来ないように
ソースの保護を行いたいのです。

普通に開けばではなく,開けないように(開いても判らない様に)したいのです。

何かいい方法はないでしょうか。
0787nobodyさん2005/03/25(金) 04:28:08ID:???
>>776
どういうデータ構造を作りたいのかが分からないです
こういう事がしたいのですか?

my %add_data;
$add_data{'takeshi'} = 90;
$add_data{'sayuko'} = 95;
for my $key( keys %add_data ) {
 print "$keyさんは、$add_data{$key}点\n";
}

どちらにしても
push @data,%add_data
と配列にハッシュ配列をpushしても配列としてセットされるだけです
0788nobodyさん2005/03/25(金) 04:30:34ID:???
>>782
パーミッションの問題ではないのですか?
0789nobodyさん2005/03/25(金) 07:35:11ID:???
>>782
いまどきsuEXECじゃないCGIはありえない
読まれたくなきゃ600にすればいい
0790nobodyさん2005/03/25(金) 11:19:57ID:???
>>788-789
ありがとうございました。
SuEXECが有効でしたので
パーミッション,700/600の構成で問題ありませんでした。
他ユーザーからの閲覧問題も解決しました。

ありがとうございました。(深々礼
0791nobodyさん2005/03/25(金) 12:11:35ID:???
safe modeじゃないPHPも共有サーバじゃありえない
0792nobodyさん2005/03/25(金) 13:22:20ID:???
画像アプローダで、アップロード直前に確認フォームを設けて、
利用者に確認をさせたいと考えています。
利用者のローカルの画像ファイルにリンクを張れば、画像を見て確認できるわけです。

<FORM>に enctype を指定しなければ、ローカルのファイル名をフルパスで取得できるので、
上記のことが可能になりますが、アップロードには、enctypeをマルチパートにしなければならず、
そうすると、取得できるファイル名はフルパスではなくなってしまいます。

アップロードするファイルのファイル名をローカルでのフルパスで取得して、
なおかつアップロードも可能にするにはどうしたら良いでしょうか。

よろしくお願いします。
0793nobodyさん2005/03/25(金) 13:22:53ID:???
>>791
しかし逆に、PHPのファイルがCGIから見えてしまうのは、
サーバ管理者にとっても頭の痛い問題だったりする罠
0794nobodyさん2005/03/26(土) 03:43:25ID:???
>>792
<form onsubmit="this.filename.value = this.file.value;">
<input type="file">
<input type="hidden" name="filename">
</form>
0795nobodyさん2005/03/26(土) 03:45:45ID:???
ちょっとミスった。
<input type="file">
     ↓
<input type="file" name="file">
0796nobodyさん2005/03/26(土) 04:08:30ID:???
multipartでも普通にフルパス取得できるんだけど、
もしかしてJavaScriptじゃないのか?
<form action="./hoge.cgi" method="POST" enctype="multipart/form-data">
<input type="file" name="File">
<span onclick="alert(File.value)">Click!</span>
</form>

どちらにせよ、サーバーサイドの話じゃないねぇ。
0797nobodyさん2005/03/26(土) 16:32:06ID:VlHyTFWS
$code = 15;
$file_name = 'DT' . $code;

のプログラムで、
$file_nameに'DT00015'と、常に桁数を固定して表示するにはどう改造すればよいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています