画像アップロード後のメッセージが表示されない - PHPプロ!Q&A掲示板

4844

  • 0P

画像アップロード後のメッセージが表示されない

質問日時 / 2017年5月18日 17:31    回答数 / 2件

Questioner:  lifelab  このエントリーをはてなブックマークに追加 

キーワード / 画像    アップロード   

あるサイトにおいて、会員登録後、プロフィール画像をアップロードできるページに飛びます。

そこで無事、画像がアップロードできたら「アップロードが完了しました」という文字列とともにTOPページへのリンクを表示したいのですが、画面が真っ白になります。

どうしたらいいでしょうか。

  1. <?
  2.   exit();
  3. }
  4.  
  5. $gif_path_save = "../images/deta/"//画像保存ディレクトリ
  6.  
  7. isset($_POST['up_on'])
  8. $hidden = $_POST['up_on'] : $hidden=false//確認用
  9. isset($_FILES['file']['name'])?
  10. $gif_name = $_FILES['file']['name'] : $gif_name = false//ファイルネームの取得
  11. isset($_FILES['file']['tmp_name'])
  12. $gif_path = $_FILES['file']['tmp_name'] : $gif_path = false//ファイル一時保存パスを取得
  13.  
  14. $error = "";
  15.  
  16. if( $hidden == 1 && ($gif_name == "" || !$gif_name )){
  17.   $error = "<font color=\"#cc3300\">画像を指定してください。</font>";
  18. }
  19.  
  20. if( $hidden == 1 && $gif_name ){
  21.   if( $gif_size = getimagesize($gif_path)){ //アップするファイルの幅と高さを取得
  22.     if( $gif_size[0] <= 900 && $gif_size[1] <= 600 ){
  23.       $gif_no = $id;
  24.       $ext = GetExt($gif_name);
  25.       $name = $gif_path_save.$gif_no.".".$ext;
  26.       move_uploaded_file( $gif_path$name);
  27.       if(file_exists($name)){
  28.         chmod($name,0777);
  29.       }
  30.       
  31.       //画像パスをDBに登録
  32. //      mysql_pconnect($dbhost,$dbuser,$dbpasswd);
  33. //      mysql_select_db("$db");
  34.             
  35.             $link  = mysqli_connect($dbhost$dbuser$dbpasswd$db);
  36.  
  37.             if (mysqli_connect_errno()) {
  38.                 error("データベースの接続に失敗しました。"mysqli_connect_error());
  39.               die();
  40.             }
  41.             
  42.       $query = "UPDATE ".$table_name." SET img_path='".$name."' where id='".$id."'";
  43.             
  44.             if ($result = mysqli_query($link$query)) {
  45.                 if($result->num_rows == 0){
  46. //                  echo "ご指定のIDは登録されていません。";
  47.                     die();
  48.                 }
  49.             } else {
  50. //               error("検索に失敗しました。");
  51.              die();
  52.             }
  53.             
  54. //      mysql_query($query) or die(mysql_error());
  55.             
  56.             $hidden = true;
  57.             $error = '';
  58.  
  59.     }else{
  60.       $error = "<font color=\"#cc3300\">画像サイズは900×600以内にお願いします</font>";
  61.     }
  62.   }else{
  63.     $error = "<font color=\"#cc3300\">画像以外はアップロード出来ません。</font>";
  64.   }
  65. }
  66. ?>
  67. <html>
  68. <head>
  69. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  70. <title>無題ドキュメント</title>
  71. </head>
  72.  
  73. <body background="../images/haikei3.gif">
  74. <?php
  75. if( !($hidden) || $error != "" ){
  76. ?>
  77. <form name="form1" enctype="multipart/form-data" method="post" action="gif_upload.php">
  78. <p>画像を選択後「アップロード」ボタンをクリックしてください<br>
  79. アップロードが完了したら白画面になります。<br>
  80. <font size="-1" color="#FF3300">※画像のサイズは幅900×高さ600ピクセル以内でお願いします。</font></p>
  81. <p><input type="file" name="file"><?= $error ?></p>
  82. <p><input type="submit" name="Submit" value="アップロード"></p>
  83. <input type="hidden" name="up_on" value="1">
  84. <input type="hidden" name="id" value="<?= $id ?>">
  85. </form>
  86. <?php
  87. }else{
  88. ?>
  89. アップロードが完了しました。<br>
  90. <div align="center"><a href="https://〇〇.net/" target="_top">TOP</a>へ</div>
  91. <?php
  92. }
  93. ?>
  94. </body>
  95. </html>

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01shimixerror_reportingやdisplay_errorsは適切に設定されて
 ┗A01-1lifelabご回答ありがとうございました。 すみません、プロ

回答一覧

並び替え:

A01
answerershimix [5月18日 18:55]

error_reportingやdisplay_errorsは適切に設定されていますか(エラー発生時に画面表示する設定になっていますか)。

http://php.net/manual/ja/errorfunc.configuration.php#ini.error-reporting


またerror()がどういう内容かわかりませんが(ユーザ定義関数ですよね)、何箇所かはerror()を呼ばずにdie()のみになっているところがあります。ここでエラーになっていたら「原因不明で真っ白」になると思います。例外処理を省略しないでください。




>$gif_path_save = "../images/deta/"; //画像保存ディレクトリ

ディレクトリ名が間違っている・・・というオチはありませんよね(念のため確認)。


>$ext = GetExt($gif_name);

せっかくgetimagesizeを実行済みですから、戻り値の$gif_size[2]から拡張子を決定すればいいと思います(GetExt関数でもう一度getimagesizeを実行しているんでしょうか)。

この意見に回答する

ツリーへ TOPへ

A01-1
replyerlifelab [6月15日 16:05]

ご回答ありがとうございました。

すみません、プログラムを組んだのは、今はもう連絡が取れない別の方で、私は素人です。

簡単に直せるのであればと思い、質問させていただきましたが、とても対処しきれません。

対応できるプロの方を探そうと思います。

失礼いたしました。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)