質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1092閲覧

move_uploaded_fileを使ってアップロードした画像が保存できません

higa_yomityu

総合スコア41

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/09/18 13:40

##move_uploaded_fileを使ってアップロードした画像が保存できません。
##コードになります

html

1<?php 2session_start(); 3if(!empty($_POST)){ 4 if($_POST['name']===''){ 5 $error['name']='blank'; 6 } 7 if($_POST['email']===''){ 8 $error['email']='blank'; 9 } 10 if(strlen($_POST['password'])<4){ 11 $error['password']='length'; 12 } 13 if($_POST['password']===''){ 14 $error['password']='blank'; 15 } 16 $fileName=$_FILES['image']['name']; 17 if(!empty($fileName)){ 18 $ext=substr($fileName,-3); 19 if($ext !='jpg' && $ext !='gif' && $ext !='png'){ 20 $error['image']='type'; 21 } 22 } 23 if(empty($error)){ 24 $image=date('YmdHis').$_FILES['image']['name']; 25 move_uploaded_file($_FILES['image']['tmp_name'],'../menmber_picture/'.$image); 26 $_SESSION['join']=$_POST; 27 $_SESSION['join']['image']=$image; 28 header('Location:check.php'); 29 exit(); 30 } 31} 32 33if($_REQUEST['action']=='rewrite' && isset($_SESSION['join'])){ 34 $_POST=$_SESSION['join']; 35} 36?> 37<!DOCTYPE html> 38<html lang="ja"> 39<head> 40 <meta charset="UTF-8"> 41 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 42 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 43 <title>会員登録</title> 44 45 <link rel="stylesheet" href="../style.css" /> 46</head> 47<body> 48<div id="wrap"> 49<div id="head"> 50<h1>会員登録</h1> 51</div> 52 53<div id="content"> 54<p>次のフォームに必要事項をご記入ください。</p> 55<form action="" method="post" enctype="multipart/form-data"> 56 <dl> 57 <dt>ニックネーム<span class="required">必須</span></dt> 58 <dd> 59 <input type="text" name="name" size="35" maxlength="255" value="<?php print(htmlspecialchars($_POST['name'],ENT_QUOTES));?>" /> 60 <?php if($error['name']==='blank'):?> 61 <p class="error">ニックネームを入力してください</p> 62 <?php endif;?> 63 </dd> 64 <dt>メールアドレス<span class="required">必須</span></dt> 65 <dd> 66 <input type="text" name="email" size="35" maxlength="255" value="<?php print(htmlspecialchars($_POST['email'],ENT_QUOTES));?>" /> 67 <?php if($error['email']==='blank'):?> 68 <p class="error">メールアドレスを入力してください</p> 69 <?php endif;?> 70 <dt>パスワード<span class="required">必須</span></dt> 71 <dd> 72 <input type="password" name="password" size="10" maxlength="20" value="<?php print(htmlspecialchars($_POST['password'],ENT_QUOTES));?>" /> 73 <?php if($error['password']==='length'):?> 74 <p class="error">パスワードを4文字以上で入力してください</p> 75 <?php endif;?> 76 <?php if($error['password']==='blank'):?> 77 <p class="error">パスワードを入力してください</p> 78 <?php endif;?> 79 </dd> 80 <dt>写真など</dt> 81 <dd> 82 <input type="file" name="image" size="35" value="test" /> 83 <?php if($error['image']==='type'):?> 84 <p class="error">画像は「.jpg」「.png」「.gif」の拡張子で挿入してください</p> 85 <?php endif;?> 86 <?php if (!empty($error)):?> 87 <p class="error">恐れ入りますが画像をもう一度表示してください</p> 88 <?php endif ;?> 89 </dd> 90 </dl> 91 <div><input type="submit" value="入力内容を確認する" /></div> 92</form> 93</div> 94</body> 95</html>

##試したこと

<?php if($error['image']==='type'):?> <p class="error">画像は「.jpg」「.png」「.gif」の拡張子で挿入してください</p> <?php endif;?> <?php if (!empty($error)):?> <p class="error">恐れ入りますが画像をもう一度表示してください</p> <?php endif ;?>```htmlに問題がないかを調べるために<img src"">で画像を出力しました。(出力できました) ##実行画面 ![イメージ説明](8f3e620c4ff2cad65ccfb4f7ce2e30ab.png) ![イメージ説明](e67f704013431c6d5926dde2c4d4c41e.png)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Create_NAYU

2020/09/18 14:07

move_uploaded_file は処理に失敗すると false を返し警告が出ます。 エラーメッセージを載せていただかないと原因が分からずお力添えができません。
hayato7

2020/09/18 14:11

move_uploaded_file($_FILES['image']['tmp_name'],'../menmber_picture/'.$image); この部分の(menmber_picture)の綴りが間違っています。ディレクトリ名と合っているか確認お願いいたします。
higa_yomityu

2020/09/18 14:22

hayato7さんありがとうございます。 解決できました!
hayato7

2020/09/18 14:56

良かったです! 解決策を書いて、解決済みにしてください。
guest

回答1

0

自己解決

スペルミスを修正するとエラーが解決しました

投稿2020/09/23 13:50

higa_yomityu

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問