• ベストアンサー

サーバカレント配下サブフォルダ内にファイルをアップさせたいのですが…

ブラウザからローカルのファイルを指定して、実行ボタンを押すとサーバに、指定したファイルがアップされるプログラムを作成中です。 『copy($file, $file_name);』で、サーバにアップされるところまでは出来たのですが、このソース(.php)が存在するカレントに、ファイルがアップされてしまいます。 カレント配下に作成してあるサブフォルダ内にアップさせるには、どうすれば良いでしょうか? (もしくは、カレントにアップされたファイルを配下サブフォルダに移動でも良いですが) <以下PHPソースの抜粋> ~~~~~~~~~~~8<~~~~~~~~~~~~8<~~~~~~~~~~~ <TD nowrap><FONT size="-1">ファイル file</FONT></TD> <TD nowrap> <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" SIZE="65536"> <INPUT TYPE="file" NAME="file" SIZE="42"> </TD> ~~~~~~~~~~~8<~~~~~~~~~~~~8<~~~~~~~~~~~ <TD nowrap><INPUT id=submit1 NAME=submit1 type=submit value=" 実 行 "></TD> ~~~~~~~~~~~8<~~~~~~~~~~~~8<~~~~~~~~~~~ if ($file_name != '' && $file_size != 0) { copy($file, $file_name); } ~~~~~~~~~~~8<~~~~~~~~~~~~8<~~~~~~~~~~~

  • THUBAN
  • お礼率76% (771/1002)
  • PHP
  • 回答数3
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

こんにちは。 すごい単純な事なのでおそらく、チェックはしているとは思いますが、一応・・・。 新しいファイルの名前、ここでは「 $file_name 」ですがちゃんと保存させたいパスは通っていますよね・・・? $file_name = "./temp/xxxx.txt"; こんな感じになると思いますが。 php.ini の設定としては(/etc/php.ini) file_uploads On ;ファイルをアップロード可能に upload_tmp_dir /tmp ;一般的なアップロード先 upload_max_filesize 8M ;どのくらいの大きさまで こんな感じでしょうか。

THUBAN
質問者

お礼

失礼しました。自己解決しました。 $path = "./temp/"; ~~~~~~~~~~~8<~~~~~~~~~~~~8<~~~~~~~~~~~ if ($file_name != '' && $file_size != 0) { // copy($file, $file_name); move_uploaded_file($file, $path . $file_name); } とすることで、上手くいきました。 “$path + $file_name”ではなく、 “$path . $file_name”としなければいけなかったんですね。 他の言語のクセがあって、“+”を用いてしまいましたが、PHPでは“.”でつなぐんですね。 すいませんでした。 どうも、ありがとうございました。

THUBAN
質問者

補足

if ($file_name != '' && $file_size != 0) { // copy($file, $file_name); move_uploaded_file($file, "./temp/ppp.pdf"); } という具合に、move_uploaded_fileにパスとファイル名を直接指定すると、上手く移動(実際は移動ではなくコピー元のファイルが残るので、コピー?)されました。 よって、$file_nameの中身が変だったようです。 ちなみに、下のようにして実行したのですが、やはり、“http://localhost/test/”に“0”というファイルが出来るだけです。 “$file_name”の中身がからっぽなのでしょうか? マズいところがありましたら、ご指摘いただけると助かります。 $path = "./temp/"; ~~~~~~~~~~~8<~~~~~~~~~~~~8<~~~~~~~~~~~ if ($file_name != '' && $file_size != 0) { // copy($file, $file_name); move_uploaded_file($file, $path+$file_name); } ちなみに・・・・ php.iniを確認したところ、file_uploads On、他、きちんと設定されておりましたが、$_FILESの設定されている箇所はありませんでした。 尚、当方のPHPヴァージョンですが、phpinfo()の “PHP Variables”欄の“_SERVER["SERVER_SOFTWARE"]”に 『Apache/2.0.53 (Win32) mod_ssl/2.0.53 OpenSSL/0.9.7e PHP/4.3.10』と表示されていました。 よって、PHPヴァージョンは4.3.10だと思います。

その他の回答 (2)

  • re13b
  • ベストアンサー率58% (18/31)
回答No.2

> 『move_uploaded_file()』って、サーバにすでにアップされているファイルを移動するときに用いるのだと思いますが そうです。アップロードされたファイルを移動するためのものです。 アップする場所は、『カレント』又は『カレント下のサブフォルダ』とのことですが、こ れは、この場所しかダメということなのでしょうか? もし、アップロードする場所はどこでもよくて、それを加工する際に指定したフォルダへ移動する ということであれば、『move_uploaded_file()』で良いと思ったのですが・・・ この場合にアップロードされる場所は、環境設定の upload_tmp_dir に記載されたパスになります。 それと、私の書いたコードは、$_FILES を参照できる環境になっていないと、動作しないと思います。 また、環境設定で file_uploads を有効にしておく必要があります。 copy でうまくコピーされない、とのことですが、これは copy を実行した結果が False になっている ということでしょうか?

参考URL:
http://php.s3.to/man/features.file-upload.html
THUBAN
質問者

補足

わかりにく説明になってすいません。 少し詳しく補足させていただきます。 まず、PHPファイルは“http://localhost/test/pppp.php”にあります。 if ($file_name != '' && $file_size != 0) { copy($file, $file_name); } で実行すると、“http://localhost/test/xxxx.txt”という具合に“xxxx.txt”ファイルはアップされます。 で、、、実際にアップしたい場所はというと “http://localhost/test/temp/xxxx.txt”です。 一度、“http://localhost/test/xxxx.txt”にアップされたものを、 “http://localhost/test/temp/xxxx.txt”に移動する形でOKです。 ANo.1[補足]で私が書いたソースで実行したところ、 “http://localhost/test/xxxx.txt”にアップされたと同時に “http://localhost/test/0”という、同じファイルサイズのファイルが出来ました。 当方の『move_uploaded_file()』の使い方が悪かったんだと思いますが、環境設定の方法がイマイチ良くわかっていません。 よって、“upload_tmp_dir”や“$_FILES”を用いずに行いました。 また、「file_uploads を有効にする」とありますが、これら環境設定は、PHPがインストールされているどこかの環境ファイル(.iniや.cnfnなど?)を編集する必要があるのでしょうか? すいません・・・PHPを始めたばかりの初心者なもので。 m(_"_)m

  • re13b
  • ベストアンサー率58% (18/31)
回答No.1

手元に転がっていた奴で、サーバー上では試していないコードですが・・・ これで、アップロード&指定したファイルを操作、というところまでいけると思うのですが。 php ver 4.0.3 以前だとこのコードではダメです。 copy() で操作するよりも move_uploaded_file() のほうが楽っぽいので、もっぱらこっちを使ってます。 <?php $path = "/tmp/temp.ttt"; // サーバー内一時保存ファイル名 if ( !empty( $_FILES[ 'uploaded' ][ 'name' ] )) { if ( move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $path ) == FALSE ) { printf( "ファイルのアップロードに失敗しました:%s<br>\n", $_FILES[ 'uploaded' ][ 'error' ] ); } else { printf( "ファイルのアップロードが完了しました<br>\n" ); } } else { echo <<<EOD <form enctype="multipart/form-data" action="{$_SERVER[ 'PHP_SELF' ]}" method=post> <input type=hidden name=MAX_FILE_SIZE value=10000000> 送信ファイル名 <input type=uploaded type=file size=30> <input type=submit value="アップロード"> </form> EOD; } ?>

参考URL:
http://php.s3.to/man/function.move-uploaded-file.html
THUBAN
質問者

補足

『move_uploaded_file()』関数の存在は知っていたのですが、いまいち使用方法がわからず、うまくいきませんでした。 『move_uploaded_file()』って、サーバにすでにアップされているファイルを移動するときに用いるのだと思いますが、 $path = "/temp/"; ~~~~~~~~~~~8<~~~~~~~~~~~~8<~~~~~~~~~~~ if ($file_name != '' && $file_size != 0)  copy($file, $file_name);  move_uploaded_file($file, $path+$file_name); } 上のように記述して使ってみましたが、移動しませんでした。

関連するQ&A

  • ファイルがdataフォルダにうまくアップできなくて困っています。

    htmlフォームにより、ファイルをアップロードして、 それをphpが受け取ったファイルのファイル名を、 拡張子のみそのまま利用してファイル名は 日付けと時間をdate関数を利用して つけるようにしました。 GetExt関数は、アップされた画像の拡張子のみを取得する自作関数です。 以下のスクリプトを実行しても同一階層にあるdataフォルダに写真がアップされなくて悩んでいます。 アドバイスお願い致します。 <html> <body> <table border=1> <form method="post" action="<?php echo($_SERVER["PHP_SELF"])?>" ENCTYPE="MALTIPART/FORM-DATA"> <tr><TD><INPUT TYPE="FILE" NAME="FILE" SIZE=40></TD></tr> <tr><td><input type=submit value=送信></td></tr> </table> <?php if($_FILES["FILE"]["tmp_name"] != ""){ $FilePath = "./data/" . date("YmdHis") . "." . GetExt($_FILES["FILE"]["name"]); move_uploaded_file($_FILES["FILE"]["tmp_name"],$FilePath); }else{ echo("失敗しました!"); } //GetExt()関数の定義 //ファイル名から拡張子だけを取得する関数 function GetExt($FilePath){ $f = strrev($FilePath); $ext = substr($f,0,strpos($f,".")); return strrev($ext); } ?> </body> </html>

    • ベストアンサー
    • PHP
  • valign=topが機能しません

    CGIファイル内のテーブルのtdにvalign=topを記述しましたが、テキストが上にきてくれません。 ソースは以下です。「メッセージ」の文字が上にくるようにするにはどうすれがいいか教えてください。 よろしくお願いします。 <center> <TABLE BORDER=0 CELLPADDING=10 CELLSPACING=10> <tr> <td align=right nowrap><font size=2>お名前</font></td> <td align=left> <input type="text" name="name" size="30" maxlength="100" class=textarea> </td> </tr> <tr> <td align=right nowrap><font size=2>タイトル</font></td> <td align=left><input type="text" name="title" size="50" maxlength="200" class=textarea></td> </tr> <tr> <td valign=top align=right nowrap ><font size=2>メッセージ</font></td> <td align=left><textarea name="msg" cols="50" rows="7" class=textarea></textarea></td> </tr> <tr> <td align=right nowrap><font size=2>パスワード</font></td> <td align=left><input type="password" name="pass" size="16" maxlength="200" class=textarea value=$cpass></td> </tr> <tr> <td colspan=2> <hr size=1 noshade> </td> </tr> <tr> <td align=center colspan=2> <div align="center"><input type="submit" value="投稿する" class=input2 onClick="writeCookie()"></div></td> </tr></form> </table> </center>

  • file upload でリセットが効かない

    WEBプログラミング初心者でよくわからないので、教えてください。 以下のHTMLで、一旦ファイルを参照しテキストにファイルパスが表示された後、リセットして空白にしても、アップロードをクリックすると、ファイルがアップロードされてしまいます。リセットできないのでしょうか? <form enctype="multipart/form-data" action="XXXXX.php" method="POST"> <table border="0" cellspacing="0"> <tbody> <tr> <td height="30"><input type="submit" value="ファイルをアップロード" name="btnUpload"></td> <td height="30"><input type="reset" value="リセット" name="btnReset"></td> </tr> <tr> <td height="30"><div align="center"><font size="3">在庫CSVファイル:</font></div></td> <td height="30"><input type="file" name="ZaikoUploadfile"></td> </tr> <tr> <td height="30"><div align="center"><font size="3">入庫CSVファイル:</font></div></td> <td height="30"><input type="file" name="NyukoUploadfile"></td> </tr> </tbody> </table> </form>

  • [VBScript]ラジオボタンでform送信

    HTML内でVBScriptを用いて、以下のようなことをしたいと思っています。 <tr>   <td nowrap align="center">東京 or 大阪 </td>   <td><input type="radio" name="ikisaki" value="0" checked>東京 <input type="radio" name="ikisaki" value="1" >大阪 </td> <form method="post" action="xxxx.asp" name="form"> <tr>  <td nowrap align="right">市名</td>  <td nowrap><font size="+2"><%=strCitNm%></font></td> </tr> <tr>  <td>   <input type="submit" name="A1" value="送信">  </td> </tr> 上記なようなラジオボタンが2つあったとして、[送信]を押したときに ラジオボタンのチェックが「東京」なら action="tokyo.asp" に、 「大阪」なら action="oosaka.asp"へform送信を行いたいと思っているのですが、 HTML内でVBScriptを使用する場合、どのような記述にすればいいのかがわかりません。 どうかよろしくお願いします。

    • ベストアンサー
    • HTML
  • ファイルアップローダーで送信するファイルを保存する際にファイル名に自動でURLパラメーターを入れ込む方法を教えてください。

    phpの超初心者です。 phpでファイルをブラウザ上でアップロードするシステム でかつ、 アップロード用のURLにhttp://www.hogehoge.com/up.php?no=1234などのパラメーターを付けてアップロードするファイルを「1234.jpg」という名前で保存するものが必要になり色々調べました。 以下の方法だとアップロードしたファイル名が「.jpg」になってしまいます。 $count_fileに単純な文字列、'image'などを入れるとちゃんと「image.jpg」としてアップロードできます。 <form action="<?= $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data"> <p><input type="file" name="data" /> <input type="submit" value="アップロード"></p> </form> <?php $updir = "./data"; $tmp_file = @$_FILES['data']['tmp_name']; $count_file = $_GET['no']; @list($file_name,$file_type) = explode(".",@$_FILES['data']['name']); $copy_file = $count_file . "." . $file_type; move_uploaded_file($tmp_file,"$updir/$copy_file"); ?> パラメーターなどの環境変数をファイル名に入れ込むにはどうしたらよいのでしょうか?調べ方が悪いのか、検索しまくってもわからなくて困っています。 どなたかご教授いただけませんでしょうか?

    • ベストアンサー
    • PHP
  • VBAでアップロード

    ホームページ作成をしているのですが、ローカルにあるhtmlファイルをvbaでアップロードしたいのですが やり方がよくわかりません。 ソースは *************************************************************** <TABLE border=0 cellSpacing=0 cellPadding=0 width=650> <TBODY> <TR vAlign=top> <TD width="50%"> <TABLE style="FONT-SIZE: 12px" border=0 cellSpacing=1 cellPadding=3 width=323 bgColor=#ff6600> <FORM encType=multipart/form-data method=post action=/tok2_ftp/index.php> <INPUT name=act value=upload type=hidden> <INPUT name=MAX_FILE_SIZE value=300000 type=hidden> <INPUT name=dirname value=/ type=hidden> <TBODY> <TR align=center> <TD bgColor=#ffcc66>ファイルアップロード</TD></TR> <TR align=center> <TD class=line-height1 bgColor=#ffffff> <BR>アップロード可能なサイズは、1ファイル300kbまでです。<BR> <FONT color=#ff0000>※既に同じファイル名が存在する場合は上書きされます。</FONT> <BR><BR> <INPUT name=upfile[] size=40 type=file><BR> <INPUT name=upfile[] size=40 type=file><BR> <INPUT name=upfile[] size=40 type=file><BR> <INPUT name=upfile[] size=40 type=file><BR> <INPUT name=upfile[] size=40 type=file> <BR><BR><INPUT style="WIDTH: 150px" value=アップロード type=submit> <BR><BR></TD></TR></FORM></TBODY></TABLE></TD> *************************************************************** このような感じなのですが、 VBAで objIE.document.all("upfile[]")(0).Value = "test" 'エラーにならないけど値も入らない objIE.document.forms(0).all("upfile[]")(0).Value = "test" 'エラーにならないけど値も入らない 'objIE.document.forms(0)("upfile[]").Value = "test" 'エラー 'objIE.document.all("upfile[]").Value = "test" 'エラー objIE.document.forms(0).submit '押せる こんな事をやってみましたが、値を入れる事ができません。 解決方法を教えてください。

  • fgetcsvでデータが何も表示されないのですが!?

    $data_all = fopen( "maillog.csv","r" ); while (($data_array = fgetcsv($data_all, 1000, ",")) !== FALSE) { $num = count($data_array); for($i=count($num)-1; $i>=1; $i--){ echo "<TR>\n"; echo "<FORM method=\"post\" action=\"./formdb_modify.php\">\n"; echo "<INPUT type=\"hidden\" name=\"data_no\" value=\"".$data_array[0]."\">\n"; echo "<TD nowrap><INPUT type=\"submit\" value=\" 詳細\"></TD>\n"; echo "<TD nowrap><FONT size=-1>" . $data_array[0] . "</FONT></TD>\n"; echo "<TD nowrap><FONT size=-1>" . $data_array[2] . "</FONT></TD>\n"; echo "<TD nowrap><FONT size=-1>" . $data_array[3] . "</FONT></TD>\n"; echo "<TD nowrap><FONT size=-1>" . $data_array[4] . "</FONT></TD>\n"; echo "<TD nowrap><FONT size=-1>" . $data_array[11] ."~" .$data_array[12]. "</FONT></TD>\n"; echo "<TD nowrap><FONT size=-1>" . $data_array[14] . "</FONT></TD>\n"; echo "</FORM>\n"; echo "</TR>\n"; //データ表示件数を1加算 $data_view++; } } fclose($data_all); 上記のプログラムを書いたのですが データが表示されないのです どう修正すれば良いのでしょうか?

    • 締切済み
    • PHP
  • <input type="hidden" name="action"

    <input type="hidden" name="action" <input type="hidden" name="action" value="sendmail"> <table cellspacing="1" cellpadding="5" width="580" bgcolor="black" align="center"> <tr> <td bgcolor="#efffff" width="110"><font color=black>氏名</font></td> <td bgcolor="#ffffff"><input type="text" name="name" size="30" value="" maxlength="70"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black size="2">メールアドレス</font></td> <td bgcolor="#ffffff"><input type="text" name="mail" size="50" value="" maxlength="80"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black>地域</font></td> <td bgcolor="#ffffff"><input type="text" name="address" size="50" value="" maxlength="70"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black>御問合せ内容</font></td> <td bgcolor="#ffffff"><textarea name="comment" rows="5" cols="48"></textarea></td> </tr> </table> <center> <input type="submit" name="sub" value="クリック"> </center> </form> <h2>当サイトへの御要望</h2> <p>■各項目を御記入頂き、下のボタンをクリックして下さい。</p> <form action="form.php" method="post"> <input type="hidden" name="action" value="sendmail"> <table cellspacing="1" cellpadding="5" width="580" bgcolor="black" align="center"> <tr> <td bgcolor="#efffff" width="110"><font color=black>氏名</font></td> <td bgcolor="#ffffff"><input type="text" name="name" size="30" value="" maxlength="70"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black>メールアドレス</font></td> <td bgcolor="#ffffff"><input type="text" name="mail" size="50" value="" maxlength="80"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black>御要望</font></td> <td bgcolor="#ffffff"><textarea name="comment" rows="5" cols="48"></textarea></td> </tr> </table> <center> <input type="submit" name="sub" value="クリック"> </center> </form> (1)これらを含めたサイトを「HTML4,01」(文字コード「shift_jis」)で作成していました。 (2)このフォームタグをそのまま「XHTML1,0」で作成したサイト(文字コード「UTF-8」)に埋め込むには、書き直す箇所がありますでしょうか? PHPファイルも(1)で使用していたモノをそのまま(2)に使用したいと思っているのですが、文字化けがなおりません。 PHPに関しても、記述しなおす箇所があるのでしょうか? 詳しい方、お助け下さい。 宜しくお願いします。 PHPファイルは、(1)の時は正常に動作していました。

    • ベストアンサー
    • PHP
  • 画面の再読込をせずに動作する方法について

    下記のソースで動作は出来ているのですが、画面の再読込が必要な状況となっております。 そのため、再読込をせずに動作させたいと思ったのですが、どうすればできるかわからなかったのでアドバイスいただける方がいらっしゃいましたら、ご教示の程、よろしくお願いします。 【やりたい事】 1. サブ入力画面でcopyボタンを押下時、入力画面の名前とメールアドレスをサブ入力画面にコピーしているのですが、画面の再読込が必要になっているのを、再読込無しで動作させたいです。 2. 入力画面でdel2ボタンを押下時、3rdの行の内容を2ndにコピーした上で、3rdの内容を削除しているのですが、画面の再読込が必要になっているのを、再読込無しで動作させたいです。 3. これは出来ればで結構なのですが、del2(またはdel3)ボタン押下時、その行に何もデータが存在しない場合は、何かしら警告メッセージを表示できるとありがたいです。 【動作確認方法】 下記の3つのファイルをドキュメントルート直下にtestフォルダを設置し、ブラウザからindex.phpにアクセスしてください。 その後、任意の名前とメールアドレスを入力し、add2ボタンを押下するとサブ入力画面に遷移するため、そこでcopyボタンの動作を試すことができます。 また、del2ボタンの動作は、サブ入力画面で任意の名前とメールアドレスを入力後、saveボタンを押下すると入力画面に遷移するため、そこでdel2(del3)ボタンの動作を試すことができます。 【ソースコード】 1. index.php <?php mb_internal_encoding('UTF-8'); $document_root = $_SERVER['DOCUMENT_ROOT']; $list=array( "mode" , "submit" , "name" , "name1" , "name2" , "name3" , "mail" , "mail1" , "mail2" , "mail3" ); foreach($_POST as $key=>$value){ if (in_array($key, $list)) { $$key=strip_tags($value); } } if($mode=="input") { if($submit == "add2") { $name1 = $name2; $mail1 = $mail2; require_once($document_root . "/test/sub_input.html"); } elseif($submit == "add3") { $name1 = $name3; $mail1 = $mail3; require_once($document_root . "/test/sub_input.html"); } elseif($submit == "del2") { $name2 = $name3; $mail2 = $mail3; $name3 = ""; $mail3 = ""; require_once($document_root . "/test/input.html"); } else { $name3 = ""; $mail3 = ""; require_once($document_root . "/test/input.html"); } } else if($mode=="sub_input") { if($submit == "copy") { $name1 = $name; $mail1 = $mail; require_once($document_root . "/test/sub_input.html"); } else { if($name2 == "") { $name2 = $name1; $mail2 = $mail1; require_once($document_root . "/test/input.html"); } else { $name3 = $name1; $mail3 = $mail1; require_once($document_root . "/test/input.html"); } } } else { require_once($document_root . "/test/input.html"); } ?> 2. input.html <form action="./index.php" method="post"> <table width="100%"> <tr> <td>名前</td> <td><input type="text" name="name" id="name" value="<?php echo $name ?>" /></td> <td>&nbsp;</td> </tr> <tr> <td>メールアドレス</td> <td><input type="text" name="mail" id="mail" value="<?php echo $mail ?>" /></td> <td>&nbsp;</td> </tr> <tr> <td>2nd</td> <td><?php echo $name2; ?><input type="hidden" name="name2" value="<?php echo $name2; ?>" /><input type="hidden" name="mail2" value="<?php echo $mail2; ?>" /></td> <td><input type="submit" name="submit" value="add2" /> <input type="submit" name="submit" value="del2" /></td> </tr> <tr> <td>3rd</td> <td><?php echo $name3; ?><input type="hidden" name="name3" value="<?php echo $name3; ?>" /><input type="hidden" name="mail3" value="<?php echo $mail3; ?>" /></td> <td><input type="submit" name="submit" value="add3" /> <input type="submit" name="submit" value="del3" /></td> </tr> </table> <input type="hidden" name="mode" value="input" /> </form> 3. sub_input.html <form action="./index.php" method="post"> <input type="submit" name="submit" value="copy" /> <table width="100%"> <tr> <td>名前</td> <td><input type="text" name="name1" id="name1" value="<?php echo $name1 ?>" /></td> </tr> <tr> <td>メールアドレス</td> <td><input type="text" name="mail1" id="mail1" value="<?php echo $mail1 ?>" /></td> </tr> </table> <input type="submit" name="submit" value="save" /> <input type="hidden" name="mode" value="sub_input" /> <input type="hidden" name="name" id="name" value="<?php echo $name ?>" /> <input type="hidden" name="name2" id="name" value="<?php echo $name2 ?>" /> <input type="hidden" name="name3" id="name" value="<?php echo $name3 ?>" /> <input type="hidden" name="mail" id="mail" value="<?php echo $mail ?>" /> <input type="hidden" name="mail2" id="mail" value="<?php echo $mail2 ?>" /> <input type="hidden" name="mail3" id="mail" value="<?php echo $mail3 ?>" /> </form> 以上、宜しくお願いします。

  • WSH

    フォームにデータがないまま実行するとEROORメッセージを出し、書き込み処理を行わないようにしたいのですが、 if (ひとつでもフォームに値が入っていないとき) msgbox("eroor") else (全部入っているとき) (書き込み) end if としているはずなのですが、なぜか動きません。 (入力しなくても書き込み処理をしてしまい、保存しましたと表示されてしまいます。) <script language=vbscript> <!-- Sub ok_OnClick n=1 Set fso = CreateObject("Scripting.FileSystemObject") Set tmpFile = fso.OpenTextFile("C:\borland\bcc55\t\1203\a.txt",8, True) if File1Name1="" Or File1Name2="" Or File1Name3="" Or File1Name4="" Or File1Name5="" Or n="" Then msgbox("eroor") else for I=1 to n str1=document.all("File" & CStr(I) & "Name1").value str2=document.all("File" & CStr(I) & "Name2").value str3=document.all("File" & CStr(I) & "Name3").value str4=document.all("File" & CStr(I) & "Name4").value str5=document.all("File" & CStr(I) & "Name5").value str=str1 & "," & str2 & "," & str3 & "," & str4 & "," & str5 tmpFile.WriteLine str next Document.Write "<center><br><br><br><br>" Document.Write "保存しました。" end if End Sub --> </script> <html><body><center> <table><tr><td><input SIZE=12 type=text id=File1Name1></td><td><input SIZE=12 type=text id=File1Name2></td><td><input SIZE=12 type=text id=File1Name3></td><td><input SIZE=12 type=text id=File1Name4></td><td><input SIZE=12 type=text id=File1Name5></td></tr></table><br><br><input type=button name=ok value=登録></center></body></html>

専門家に質問してみよう