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

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

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

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

Q&A

解決済

2回答

673閲覧

php ファイル送信 真っ白

Hikoukai

総合スコア24

PHP

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

0グッド

0クリップ

投稿2020/07/16 10:42

php 画面が真っ白になる


php でファイルアップロードをしようとしました。アップロード先フォルダが存在するならアップロード。ないならフォルダを作成してアップロードしようとしました。
しかし画面は真っ白!!

php

1<php? 2ini_set( "display_errors", On ); 3error_reporting( E_ALL );//エラーを表示させようとしても表示されない。 4$filename = "upload-fl";//アップロード先フォルダ 5 6if (file_exists($filename)) { 7 echo "$filename が存在します"; 8 upload(); 9} else { 10 echo "$filename は存在しません"; 11  mkdir("/" .$filename, 0755); 12 upload(); 13} 14 15function upload(){ 16 17if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) { 18 if (move_uploaded_file ($_FILES["upfile"]["tmp_name"], "files/" rand( 1000000, 9999999) . $_FILES["upfile"]["name"])) { 19 chmod($filename. "/" . rand( 1000000, 9999999) . $_FILES["upfile"]["name"], 0644);//乱数をファイル名に付け足してできるだけ重複しないように 20 echo $_FILES["upfile"]["name"] . "をアップロードしました。"; 21} else { 22 echo "ファイルをアップロードできません。"; 23} 24} else { 25 echo "ファイルが選択されていません。"; 26} 27 28 29} 30 ?>

ーーーー
送信元

html

1<form action="fileget.php" method="post" enctype="multipart/form-data"> 2 ファイル:<br /> 3 <input type="file" name="upfile" size="30" /><br /> 4 <br /> 5 <input type="submit" value="アップロード" /> 6</form> 7

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

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

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

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

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

guest

回答2

0

ベストアンサー

<php?

<?php
にしましょう

また、
この様なケースを回避するには、display_errorsやerror_reportingをスクリプト内では無く、
.htaccessやphp.ini,Apacheのconf等に記述すると共に、
文法チェックを支援してくれるIDEを利用することです。

投稿2020/07/16 10:56

編集2020/07/16 11:04
tanat

総合スコア18727

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

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

Hikoukai

2020/07/16 11:52

あっ。たしかに!
Hikoukai

2020/07/16 11:52

<?php を <php? とかいていたとは...
Hikoukai

2020/07/16 12:15 編集

しかし、今度は、「このページは現在機能していません」と表示されます。 [PHPコードの構文チェック - 工具邦] さんのところでチェックさせてもらったところ、「parse error syntax error unexpected 'mkdir' (T_STRING) in CODE on line 11 Errors parsing CODE」というようなエラーが出ました。翻訳してみると、 「11 行目の CODE でエラー構文エラー予期しない 'mkdir' (T_STRING) を解析する CODE の解析中にエラーが発生しました」 となるのですが、 [mkdir("/" .$filename, 0755);]のどこが悪いのかがよくわかりません。
tanat

2020/07/16 12:26 編集

エラーとしては、mkdirより前方にエラーがあるよ。最終的にはmkdirで引っかかってるよ という感じです。 mkdirの前の行から1行ずつ書いていって(if等のブロックはブロックを書いて、中身を1行ずつ書くとかする)、エラーが出たところが原因という感じでチェックしていってみてください。(プログラミングの9割はそういう作業です) 今回のケースだと、 mkdirの前に全角スペースがあるように見えます。 とりあえず`PHP 開発環境`あたりで検索してみて、ローカルで最低限のデバッグが可能な開発環境を整えるところから始めてください。 まともなIDEを使えばこういう単純なミスをカバーしてくれます。
tanat

2020/07/16 12:37

全角スペースについてはハマりがちなところなので、 使用するIDEが決まったら`そのIDE名 全角スペース 表示 設定`等で検索すると良いですね。
guest

0

if (move_uploaded_file ($_FILES["upfile"]["tmp_name"], "files/" rand( 1000000, 9999999) . $_FILES["upfile"]["name"])) {
...
}
↓↓↓
chmod($filename, 0777); # 実行ユーザーが書き込めるようにおまじない
$distFile = $filename . "/" . rand( 1000000, 9999999) . $_FILES["upfile"]["name"];
if (move_uploaded_file ($_FILES["upfile"]["tmp_name"], $distFile)) {
chmod($distFile, 0644);//乱数をファイル名に付け足してできるだけ重複しないように
echo $_FILES["upfile"]["name"] . "をアップロードしました。";
}
アップロードファイルは絶対パスで扱った方が良いかもしれません。

投稿2020/07/16 11:00

tokio-sawada

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問