• 締切済み

FORMから指定したファイルのリネームについて

こんにちは! Perlの初心者です。 以下のプログラムは FORMから指定したファイルのリネームをやろうと思い、 途中まで作ったものです。 しかし、実行するとFORMは出来ているのですが、 リネームは行なわれません… print "Content-type:text/html\n\n"; print qq(<html>\n); print qq(<body><h1>ファイル名登録</h1>\n); print qq(<form action="$ENV{'SCRIPT_NAME'}" method="POST">\n); print qq(変更前:<input type="FILE" name="$user1"><br>\n); print qq(変更後:<input type="FILE" name="$user2"><br>\n); print qq(<inupt type="subimt" value ="登録">\n); print qq(</form>\n); print qq(</body>\n); print qq(</html>\n); rename ($usesr1,$user2); exit; 多分、FORMで指定したファイル名($user1,$user2)が、 renameの関数まで届いて無いからだと思うのですが… ここまでやって完全にお手上げになってしまいました。 どうしたらリネーム出来るか、分かる方ご指導宜しくお願い致します。 動作環境は、Windows98 or MEで、Internet Explorerを使っています。

  • serus
  • お礼率50% (4/8)
  • Perl
  • 回答数1
  • ありがとう数1

みんなの回答

  • noopee
  • ベストアンサー率38% (114/297)
回答No.1

こんにちは。 まず、 >動作環境は、Windows98 or MEで、Internet Explorerを使っています。 とのことですが、WinにPerlとサーバソフトをインストールして、ローカルで実験しているのでしょうか? それとも、サーバにアップして、ローカルからブラウザで呼び出しているのでしょうか? どちらにしろ、質問内容だけのコーディングでは動かないと思いますが。 見た感じ、perlでフォームも出力しているようですが、ファイル名($user1,$user2)は、この書き方だと$user1,$user2を定義してないと、カラのままなんでは??

関連するQ&A

  • FORMを教えてください

    全くの素人で、どなたか教えて下さい。 <HTML> <TITLE>TEST</TITLE> <BODY> <FORM ACTION="test.cgi" METHOD="POST"> 氏名<INPUT TYPE="TEXT" NAME="name"> 住所<INPUT TYPE="TEXT" NAME="tokoro"> <INPUT TYPE="Submit" value="データ送信"> <INPUT TYPE="Reset" value="リセット"> </FORM> </BODY> </HTML> 名前と住所を記入して送信ボタンを押したら記入した内容が表示されるCGIプログラムを教えて下さい。 #!/usr/local/bin/perl print "Content-Type: text/html"; print "<html>\n"; print "<head><title>TEST</title></head>\n"; print "<body>\n"; #受け取ったデータを表示する print "氏名=$in{'namae'}\n"; print "住所=$in{'tokoro'}\n"; print "</body>\n"; print "</html>\n"; exit; とした場合 氏名= 住所= しか表示されません。 何が足りないのでしょうか?

    • 締切済み
    • CGI
  • サブルーチンの受け渡しについて

    以前からいろいろな質問をさせて貰い、 沢山の方に助けてもらったことをまず感謝いたします。 sub html1:{ &serch();#ファイル検索 print qq|Content-type: text/html\n\n|; print qq|<HTML><HEAD><TITLE>ファイル選択</TITLE></HEAD><BODY>\n|; print qq|<BODY text="#660000" bgcolor="#f0f0f0" link="#be7e7e" vlink="#c8c891" alink="#b3b3d9">\n|; print qq|<CENTER>\n|; print qq|<FORM action="edit.cgi" method="GET">|; print qq|<TABLE border="1" width="350" height="100">\n|; print qq|<TBODY>\n|; print qq|<TR>\n|; print qq|<TD colspan="4" height="85" align="center" valign="middle" width="300">|; print qq|<center>テキスト編集プログラム</center></TD>|; print qq|</TR>|; print qq|<TR>|; print qq|<TD colspan="4" align="center">ファイルを選択してください。<BR>|; print qq|<BR>|; print qq|<SELECT name="filename" size="1">|; foreach $file(@filelist){ print qq|<OPTION value="$file">$file</OPTION>\n|; } print qq|</SELECT><BR><BR>|; print qq|</TD></TR>|; print qq|<TR>|; print qq|<TD colspan="4" align="center"><INPUT type="submit" value="決定"></TD>|; print qq|</TR>|; print qq|</TBODY>|; print qq|</TABLE>|; print qq|</FORM>|; print qq|</CENTER>|; print qq|</BODY></HTML>\n|; サブルーチンの受け渡しが勉強が良くわからず、まだ勉強不足なので 申し訳ありませんがどうしたら良いのでしょうか? (ここから編集ルーチンにファイル名を送る手段) あとわかりやすい参考になるサイトなど御座いましたらよろしくお願いします。

    • ベストアンサー
    • Perl
  • PHP4 LINUXサーバー

    「PHP4でカンタンWebDB構築ガイド」を見て、ファイルのアップロードのプログラムを書いてみましたが、参照..→送信の後に表示される筈のuserfile,user_file_name,user_file_size,user_file_typeの情報が表示されません。 また、このサンプルソフトでは、サーバーにアップロードされた筈のファイルが、具体的に何処のフォルダにアップロードされたのか分かりません。何処かデフォルトで保存される場所でもあるのでしょうか? <FORM ENCTYPE="multipart/form-data" ACTION="upload.php" METHOD=POST> <INPUT TYPE ="hidden" name="MAX_FILE_SIZE" value="1000"> <INPUT NAME="userfile" TYPE="file"> <INPUT TYPE="submit" VALUE="送信"> </FORM> <?php print "\$userfile = ". $userfile . "<BR>"; print "\$userfile_name = ". $userfile_name . "<BR>"; print "\$userfile_size = ". $userfile_size . "<BR>"; print "\$userfilei_type = ". $userfile_type . "<BR>"; ?>

    • ベストアンサー
    • PHP
  • ファイル選択ダイアログでファイルの種類を指定する方法

    下記のプログラムでファイル選択のダイアログを表示しますが 【ファイルの種類】をデフォルトでCSVの指定はできますか? よろしくお願いします。 <html> <body> <form enctype="multipart/form-data" action = "test_02.php" method = "post" > <input type="file" name="file_data1"> <input type="submit" name="FILE送信" value="FILE送信"> </form> </body> </html>

    • ベストアンサー
    • HTML
  • フォームデータのcsv保存について

    お世話になります。フォームに入力されたデータを csvファイルに保存するというcgiの作成をしています。 初めてcgiを作成するので、書籍の真似をして作成した のですが、おかしいデータが保存されてしまいます。 質問の項目数は5個で以下のとおりです <FORM ACTION="./ans1.cgi" METHOD="POST"> 名前:<br> <input type="text" name="name" size=30> <br> 1:<br> <input type="text" name="a1" size=30> <br> 2:<br> <input type="text" name="a2" size=30> <br> 3:<br> <input type="text" name="a3" size=30> <br> 4:<br> <input type="text" name="a4" size=30> <br> <INPUT type="submit" value="送 信"> <INPUT type="reset" value="リセット"> <BR> </FORM> cgiの中身です。 #! /usr/bin/perl require './cgi-lib.pl'; $answer = 5; $ansfile = "kotae.csv"; &ReadParse(*in); $name = $in{'name'}; for($n = 1; $n <= $answer; $n++ ) { $a[$n] = $in{"a$n"}; } open (FILE,">>$ansfile"); flock (FILE,2); print (FILE "\"", $name); for($i = 1; $i <= $answer; $i++ ) { $a[$i] = ~ s/\"/""/g; print FILE "\"\,\""; print FILE $a[$i]; } print FILE "\"\n"; flock(FILE,8); close(FILE); print "Content-type: text/plain\n\n"; print "<HTML><BODY>\n"; print "tesuto"; print "</body></HTML>"; exit; csvファイルの中身を見ると、最初の列には、項目1で 記入したデータが入ってますが、項目2以降 は4294967295と数字が入ってます。どうも1個目の回答 欄のデータはちゃんと取得されてるのですがそれ以降の が取得されていないみたいです。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • PHPがHTMLのformの値を受け取らない

    状況: ファイルアップロードを作成しようとしたところPHPがHTMLのformのsubmitした物を受け取らない。 しかしHTML側にjavascriptを読み込ませ XMLHttpRequest によってsendすると受け取れる。 環境: apache 2.2.4 php 5.2.3 ------------HTML <html><body> <form action="test.php" enctype="multipart/form-data"> <input type="text" id="name"> <input type="file" id="file"> </form> </body></html> ------------PHP <?php header('Content-type: text/plain; charset=UTF-8'); print "\$_POST:";var_dump($_POST);print "\n"; print "\$_FILES:";var_dump($_FILES);print "\n"; ?> ------------結果 $_POST:array(0) { } $_FILES:array(0) { } ------------ 原因がphp.iniなのか、httpd.confなのか、はたまたそれ以外に原因があるのかがさっぱり判らず質問しました。 どうやったらHTMLのformの値をPHPで受け取れますか?

  • Perlがサーバー上でうごきません

    htmlファイルには <html> <form action="form2.cgi" method="get"> 食品名1<input type="text"name="form1"> <br> 食品名2<input type="text"name="form2"> <input type="submit"value="送信"> </form> </html> cgiファイルには #! /usr/bin/perl require "cgi-lib.pl"; &ReadParse(); print "Content-type:text/html\n"; print "\n"; print "<html>\n"; print "<head>\n"; print "<title>フォーム</title>\n"; print "</head>\n"; print "<body>\n"; print "おいしい$in{'form1'}\n; print "まずい$in{'form2'}\n; print "</body>\n"; print "</html>\n"; exit; cgi-lib.plはサーバーにいれております。 どうしてうごかないのでしょうか。

    • ベストアンサー
    • Perl
  • FirefoxでFormのfileでファイルのパスが取得できない

    フォーム<form>内のファイル名入力フィールド<input type="file">をPOSTで取得すると、IE6では「パス名:ファイル名」が取得されるのですが、Firefox2.0では「ファイル名」しか取得できません。 FirefoxでもIEと同様に「パス名:ファイル名」を取得するにはどうしたらよいでしょうか? 例えば、デスクトップに「a.txt」ファイルがあれば IE6では「C:\\Documents and Settings\\Administrator\\デスクトップ\\a.txt」 Firefox2.0では「a.txt」 と表示されます。 FirefoxでもIEと同じようにするにはどうすれば良いでしょうか? よろしくお願いします。 以下はソースです。 ---------------------ソース-------------------------------- <html> <body> <form method="post" action="<?=$_SERVER["PHP_SELF"]?>"> <input type="file" name="file"> <input type="submit" name="Submit"> </form> <?php echo $_POST['file']; ?> </body> </html> ---------------------ソース--------------------------------

    • ベストアンサー
    • PHP
  • CGI初心者です

    sub html でフォームに入力してもらい、 sub kekka で入力情報を確認し、 sub shori でテキストファイルに登録。 というプログラムを考えているのですが、 フォームから入力されたデータが入った変数$in{'name'} が、sub shori に移ると消えてしまいます。 いろいろ試行錯誤したのですが分かりませんでしたので 教えていただけたらと思います。 以下がサンプルのソースです。 #!/perl/bin/perl require './jcode.pl'; require './cgi-lib.pl'; &ReadParse; if($in{'action'} eq "set"){&kekka;} elsif($in{'action'} eq "sss"){&shori;} else{&html;} sub html{ print "Content-Type: text/html\n\n"; print <<EOM <html>\n <body>\n <h1>CGIテスト1</h1>\n <form ACTION="./sample.cgi" METHOD="POST">\n <INPUT type=hidden name=action value="set">\n 名前<br><input type=text name="name" size="30" MAXLENGTH="30"><br>\n <input TYPE="submit" value="確認"><INPUT type="reset" value="リセット">\n </form>\n </body>\n </html>\n EOM } sub kekka{ print "Content-Type: text/html\n\n"; print <<EOM <html>\n <body>\n <h1>CGIテスト2</h1>\n <form ACTION="./sample.cgi" METHOD="POST">\n <INPUT type=hidden name=action value="sss">\n name = $in{'name'} <input TYPE="submit" value="登録">\n </form>\n </body>\n </html>\n EOM } sub shori{ print "Content-Type: text/html\n\n"; print <<EOM <html>\n <body>\n <h1>CGIテスト3</h1>\n <form ACTION="./sample.cgi" METHOD="POST">\n name = $in{'name'} </form>\n </body>\n </html>\n EOM }

    • ベストアンサー
    • Perl
  • perlがうごきません

    htmlファイルには <html> <form action="form2.cgi" method="get"> 食品名1<input type="text"name="form1"> <br> 食品名2<input type="text"name="form2"> <input type="submit"value="送信"> </form> </html> cgiファイルには #! /usr/bin/perl require "cgi-lib.pl"; &ReadParse(); print "Content-type:text/html\n"; print "\n"; print "<html>\n"; print "<head>\n"; print "<title>フォーム</title>\n"; print "</head>\n"; print "<body>\n"; print "おいしい$in{'form1'}\n"; print "まずい$in{'form2'}\n"; print "</body>\n"; print "</html>\n"; exit; cgi-lib.plはサーバーにいれております。 どうしてうごかないのでしょうか。 perlの場所も正確です。

    • ベストアンサー
    • Perl

専門家に質問してみよう