• ベストアンサー

PHPでデータのアップロードをする方法

PHPでデータをアップロードするサイトを作っています http://www.php-labo.net/tutorial/php/upload.html を参考にアップロードはできるようになったのですが、贅沢を言えばファイルがアップロードされたときにお知らせメールがこちらに届くようになるといいなと思っています。 素人なのでどなたかわかりやすく教えてくださいませんか?

  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
noname#244856
noname#244856
回答No.2

既に回答にあるように、mb_send_mail関数ですね。 http://php.net/manual/ja/function.mb-send-mail.php http://www.abe-tatsuya.com/web_prog/php/mb_send_mail.php http://d.hatena.ne.jp/minmin_lucky7/20110425/1303701136 >> http://www.php-labo.net/tutorial/php/upload.html を参考に こちらのサイトはセキュリティーホールに対する考慮が一切説明されていないので下記URLをご覧ください。 http://qiita.com/items/939964377766a54d4682

char-lee-sun
質問者

お礼

回答ありがとうございます 加えて質問なのですが、入力項目 ex)日付(できればカレンダー表示)、時間、フリー項目をフォームで入力してもらい、送信メールに反映させることはできるでしょうか? 何度もお世話になりすいません

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5085/13288)
回答No.1

アップロードの処理が終わったところに mb_send_mail 関数を使って自分宛にメール送信させればできます。 http://www.php.net/manual/ja/function.mb-send-mail.php

char-lee-sun
質問者

お礼

回答ありがとうございます 加えて質問なのですが、入力項目 ex)日付(できればカレンダー表示)、時間、フリー項目をフォームで入力してもらい、送信メールに反映させることはできるでしょうか? 何度もお世話になりすいません

関連するQ&A

  • phpを使ったアップロードサイトについて

    phpを使ってアップロードサイトを作りました アップロードを参照する際に、ディレクトリを指定する方法はありますでしょうか? お教えください なお、ページ自体は下記を参照しました http://www.php-labo.net/tutorial/php/upload.html よろしくお願いします

    • ベストアンサー
    • PHP
  • phpでアップロードしたファイルを変数に直接受け取る方法

    phpでアップロードしたファイルをテンポラリファイルに保存せず、直接変数に直接受け取りたいと思っております。 putメソッドというのがあるようなのですが、これは少しレアな気がしており、postで対応可能であればそうしたいと思っております。 PHP マニュアル 第38章 ファイルアップロードの処理 http://www.php.net/manual/ja/features.file-upload.php http://www.php.net/manual/ja/features.file-upload.put-method.php

    • ベストアンサー
    • PHP
  • PHPで画像データーのアップロードを行っています。

    PHPで画像データーのアップロードを行っています。 一つの画像を imagesファイルにアップロードするまでは出来たのですが一度に複数の画像をアップロードする方法が分りません。 本で読んだところ、fileを配列にすれば良いと書いてあったのですが単純にフォームを配列にしてもやはり一つの画像しかアップ出来ませんでした。 -- form.html -- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <form enctype="multipart/form-data" action='upload.php' method='post'> <input type="hidden" name="MAX_FILE_SIZE" value="102400" /> <input type="file" width=40 name="sendfile" /> <input type="submit" value="送信" /> </form> </body> </html> -- upload.php -- <?php if (!isset($_FILES['sendfile']['name'])){ echo 'ファイルが見つかりません。'; exit; } $fname = $_FILES['sendfile']['name']; $temp = $_FILES['sendfile']['tmp_name']; $target = './images/' . $fname; if (move_uploaded_file($temp,$target)){ echo $fname . "をアップロードしました。"; } else { echo "アップロードに失敗しました。"; } ?> 勉強中の私に分り易く教えていただける方、よろしくお願いいたします。 また、PHPでのメール自動送信は出来たのですが自動受信が分りません。 (お問い合わせメールの様な) これはかなり難しいのでしょうか? フォームからウィンドウズメール、アウトルック等で受信できるようにしたいのですが? PHP3.5+XAMPPでエクリプスを使い勉強しています。

    • ベストアンサー
    • PHP
  • phpでのファイルアップロード

    ファイルのアップロードについてご質問があります。 宜しくお願いします。 基礎phpという本でファイルをアップロードするサンプルがあり、このスクリプトでアップロードされたファイルを格納する『upload』というディレクトリをサーバに作成し、スクリプトを実行して、実際にファイルがアップロードできているかffftpにて『upload』ディレクトリの中を見てみると、なにも表示されませんでした。しかしブラウザから http://myドメイン/upload/ファイル名 にアクセスすると表示されます。 ですのでアップロードはできているがファイルが見えないという状態になっております。また『upload』ディレクトリの削除などもできなくなってしまいます。 サーバの設定が関係しているのかとも思ったのですが、サーバの設定を変更することはできないので、プログラムがわで何とかできないでしょうか? 大変申し訳ありませんが宜しくお願いいたします。 以下がそのコードです。 【up.html】 <html> <head><title>File Uploader</title></head> <body> <form method="post" enctype="multipart/form-data" action="up.php"> <input type="file" name="upfile"> <input type="submit" value="upload"> </form> </body> </html> 【up.php】 <html> <head><title>File Uploader</title></head> <body> <p> file uploader </p> <?php $updir = "./upload/"; $filename = $_FILES['upfile']['name']; if (move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename) == FALSE){ print("Upload failed..."); print($_FILES['upfile']['error']); }else { print("<b>" . $filename . "</b> uploaded!"); } ?> </body> </html>

    • ベストアンサー
    • PHP
  • PHPでのファイルアップロードについて

    初めて質問させていただきます。 PHPの勉強をはじめたばかりの初心者です。教本をもとに勉強を進めています。すべて教本どおりに設定し進めてきましたが、ファイルアップロードの箇所でどうしてもうまくいきません。いろいろ、php.iniを修正したり、PHPを修正したりしましたが本どおりの結果になりません。ご指導お願いします。 以下2種類のhtmlファイルとphpファイルを使用 (1)upform.htmlの内容 <HTML><BODY> <FORM METHOD="POST" ENCTYPE="MULTIPART/FORM-DATA" ACTION="upload.php"> <INPUT TYPE="FILE" NAME="upfile"><br> <INPUT TYPE="SUBMIT" VALUE="アップロード"> </FORM> </BODY></HTML> (2)upload.phpの内容 <html><body> <?php if(move_uploaded_file ($_FILES['upfile']['tmp_name'], "./htdocs/phpbook/" ) == FALSE) { print "失敗しました。"; }else{ print ($_FILES['upfile']['name']); print "をアップロードしました。"; } ?> </BODY></HTML> 上記内容でhtmlファイルを呼び出し、abc.txt(デスクトップに保存している)をアップロードしようとすると、以下のエラーが返されます。 ↓↓エラー内容 Warning: move_uploaded_file(./htdocs/phpbook/) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\phpbook\upload.php on line 7 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\WINDOWS\Temp\phpB.tmp' to './htdocs/phpbook/' in C:\Program Files\Apache Group\Apache2\htdocs\phpbook\upload.php on line 7 失敗しました。 ↑↑エラー内容 いろいろ思考錯誤し、upload.phpファイルの6行目"./htdocs/phpbook/"の箇所を、"abc.txt"としてみると、『アップロードしました』とアップロードに成功(?)し、abc.txtはC:\Program Files\Apache Group\Apache2\htdocs\phpbook内にアップロードされました。 教本では、"./htdocs/phpbook/"はファイルの保存先と注記されていますが、エラーになります。"abc.txt"に書き換えることでアップロードに成功しています。また、なぜ、アップロード先がC:\Program Files\Apache Group\Apache2\htdocs\phpbook内になるのかもわかりません。php.iniファイルの設定でしょうか。質問が長くなり、また、内容に足りない面もあるかもしれないですが、どうかよろしくお願いします。 【参考】 php.iniのFile Uploadsを抜きました。 ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). upload_tmp_dir = ; Maximum allowed size for uploaded files. upload_max_filesize = 2M

    • ベストアンサー
    • PHP
  • phpにてファイルをアップロード2

    先日質問させていただいたものなんですが、本やサイトを参考にして、以前とは違ったphpを使用してファイルをアップロードしようと考えています。 <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS"> <title><?php echo basename($PHP_SELF);?></title> </head> <body> <p>ファイルアップロード</p> <form method="POST" action="gazou_upload.php" enctype="multipart/form-data"> <input type="file" name="uploadfile"> <input type="submit" value="送信"> </form> <?php if(isset($uploadfile)) { // アップロードされたファイルのサイズを確認 if($uploadfile_size <= 2097152) { // 移動 $moveto = "/public_html/img" . basename($uploadfile_name); move_uploaded_file($uploadfile, $moveto) or die("アップロード失敗\n"); print "<p>ファイルをアップロードしました。 - $moveto</p>"; } } ?> </body> </html> 上記を使おうと思っているのですが、これを使用した場合、 (1)上記をhtmlとしておくだけで、ファイルのアップが可能になるのか?phpも必要ですよね? (2)この場合アップされたファイルはドコに保存されるのか?…僕はpublic_htmlの中のimgというフォルダに移動して欲しいのですが。 皆様お手数ですが、教えていただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPからファイルアップロードの実現

    ブラウザからファイルをアップロードするように、PHP内で同じことを実現させたいと考えています。 fsockopenを使用してGETやPOSTをすることは実現できていますが、ファイルのアップロードとなると少々勝手が違い、うまいことできません。 現状では下記のようなものを送信させているのですが、受け取り側のPHPで認識できません。 POST /upload.php HTTP/1.0 host: 127.0.0.1 Content-Type: multipart/form-data; boundary=---test Connection: close Content-Length: 120 ---test Content-Disposition: form-data; name="test"; filename="test.txt" Content-Type: text/plain testtest ---test 現状、テスト用に upload.php というので受け取っているのですが、$_FILES 変数は空の状態です。 基本的なところを理解していないので、根本的に間違っていたり、足りないところがあるような気がするのですが…。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPファイル・アップロードに関する質問

    あるPHP技術書籍で掲載のPHPファイル・アップロードの例を試したところ、アップロードするファイル・サイズは、小さいな(数KB)場合が成功、より大きな場合(例えば40KB~)が失敗!何故失敗なのかよく分かりません。ファイル種類には関係なさそうです。 詳しい方に教えて頂ければ助かります。 ※ ご参考 - 1. 具体的なHTML&PHPコードは、次の通りです。 2. 利用環境: 最新版XAMPP、Windows 7、XAMPPデフォルト・ルートをD:のある フォルダーに変更。D:に十分空き領域があると確認済み(数十GB)。 =====HTML===================== <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>fupload</title> </head> <body> <h3>ファイルアップロード</h3> <form method="POST" action="fupload.php" enctype="multipart/form-data"> <!-- MAX_FILE_SIZE は、必ず "file" input フィールドより前になければなりません --> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> <!-- input 要素の名前が $_FILES 配列での名前となります --> <input name="userfile" type="file" size="70"/> <input type="submit" value="アップロード" /> </form> </body> </html> =====PHP--===================== <?php $uploaddir = './up/file/'; $uploadfile = basename($_FILES['userfile']['name']); echo '<pre>'; //if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$uploadfile)) { echo "ファイルアップロードに成功しました。\n"; } else { echo "ファイルアップロードは不成功です。\n"; } echo '<pre>'; ?> =====PHP関連設定(php.ini)========-== ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. ; http://php.net/file-uploads file_uploads=On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). ; http://php.net/upload-tmp-dir upload_tmp_dir="C:\xampp\tmp" ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize=2M ; Maximum number of files that can be uploaded via a single request max_file_uploads=20

    • ベストアンサー
    • PHP
  • アップロード後にphpが動かない

    すいません。初めてphpを組んでアップロードしてみたのですが、上手く動かずプログラムがそのまま表示されます。 普通のhtmlのみで作ったサイトは持っているのですが、phpは初めてでググっても実際にどのようにアップロードして動かすのか説明したサイトなどが見つからず困っています。 サーバーはさくらのレンタルサーバーでphpは使えます。 サーバーのphpの設定画面にphp.iniというのがありますがこれを何か弄らないとダメなのでしょうか? ローカル環境では動いたのですが、他に何が必要なのでしょうか? (ファイル名はちゃんとindex.phpとしてあります)

    • ベストアンサー
    • PHP
  • PHP用ファイルアップロード機能について

    ドコモ端末でPHPのファイルアップロード機能を使えるようにしたいのですが、どのようにすればいいでしょうか? ちなみに、vodafoneならこの機能が使えます。 ドコモ端末で下のソースにアクセスすると、 ファイルを参照するボタンが見えず、ファイルをアップロードできません。 HTMLはキャリア毎に使えるタグがあるのは知っていますが、下のソースの場合はどのように変更すれば良いのでしょうか?ご教授下さい。宜しくお願いします。 #ソースはコレです。 <form method="post" action="upload_save.php" enctype="multipart/form-data"> <input type="hidden" name="max_file_size" value="1000000" /> <input type="file" name="upload_file" size="70"><br /> (上書き禁止) <input type="checkbox" name="forbidden" value="1" checked /> <input type="submit" value="アップロード" /> </form> #ファイル自体はphpですが、中身はほぼHTMLに関する質問になってしまい、申し訳ありません。

    • ベストアンサー
    • PHP