アプリ版:「スタンプのみでお礼する」機能のリリースについて

投稿フォームにファイルアップロード機能を付けたいと思っております。
条件としましては確認画面を間に挟みますことです。

以下のようなサンプルを作成しましたけれど、contact.htmlから
mail.php(確認画面)に画面遷移します際にファイルがサーバーへとアップロード
されますものの、その確認画面から実際の投稿をします為に、
まず、入力画面から確認画面へ情報が渡せずに困っております。

何か参考になりますサイトなど御座いませんでしょうか?

【contact.html】
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>

<form method="post" action="mail.php" enctype="multipart/form-data">

<input type="file" name="upfile" class="js_file" />
<input type="hidden" name="添付" class="js_file_hidden"/>
<script>
$(function(){
$(".js_file").change (function() {
var f_name = $(this)[0].files[0].name
$(this).next().val(f_name);
});
});
</script>

<p>
<input type="submit" value="確認" class="botan">
</p>

</form>

</body>
</html>


【mail.php】
<?php
if(isset($_POST)) $_POST = sanitize($_POST);//NULLバイト除去//

//↓有効なファイルかどうかを検証し、問題なければ名前を変更しアップロード完了
if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) {
chmod("files/" . $_FILES["upfile"]["name"], 0644); //パーミッション設定
$attachedFile = $_FILES["upfile"]["name"] ;
} else {
$attachedFile = "";
}
?>
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>

<form action="mail.php" method="POST" enctype="multipart/form-data">
<input type="submit" value=" 送信する ">
<input type="button" value="前画面に戻る" onclick="history.back()"></p>
</form>

</body>
</html>

<?php
function sanitize($arr){
if(is_array($arr)){
return array_map('sanitize',$arr);
}
return str_replace("\0","",$arr);
}
?>

A 回答 (1件)

方法は、アップロード済みのファイルをセッション変数($_SESSION)に保存するか、確認画面のフォームに <input type="hidden"> で埋め込むかです。

    • good
    • 0
この回答へのお礼

ありがとうございます。
$_SESSIONはまだ勉強しておりませんので、hiddenで埋め込みました。

お礼日時:2020/09/03 16:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!