2012-03-03 6 views
-1

いくつか下記のコードをコーディングしてください!ユーザー固有のギャラリーエリアPHPを作成しますか?

私は現在、メンバーがすべての情報を表示するプロファイルを設定できる場所があります。私は今、ユーザーに画像をアップロードするオプションを与えたいと思っています。個人的なギャラリーエリアがあります。

私が見つけたすべてのチュートリアルは、画像のアップロードを行う方法を示しています。そして、そこにギャラリーエリアがある他の人々がそれで働くことにユーザーに特定ではない。

これは、ユーザー固有のデータベースが必要と思われますか?または$ _SESSION変数を処理しますか?私はちょうどこれを行うことについて行く方法を知りません。

完全に失われた人が正しい方向に私を向けることができますか?

以下は私の現在のgallery.phpコードです。これはちょうどサムネイルを生成し、すべての画像をアップロードフォルダに表示します。

これを編集して、セッションまたは指定されたユーザープロファイル内のユーザーの画像を表示するにはどうすればよいですか?

<?php 
if (isset($_GET['img'])){ 
    //make thumbnail 
    if(file_exists($_GET['img'])){ 
     ignore_user_abort(true); 
     set_time_limit(120); 
     ini_set('memory_limit', '512M'); 

     $src_size = getimagesize($_GET['img']); 

     if ($src_size === false){ 
      die('That does not look like an image.'); 
     } 

     $thumb_width = 200; 
     $thumb_height = 150; 

     if ($src_size['mime'] === 'image/jpeg'){ 
      $src = imagecreatefromjpeg($_GET['img']); 
     }else if ($src_size['mime'] === 'image/png'){ 
      $src = imagecreatefrompng($_GET['img']); 
     }else if ($src_size['mime'] === 'image/gif'){ 
      $src = imagecreatefromgif($_GET['img']); 
     } 

     $src_aspect = round (($src_size[0]/$src_size[1]), 1); 
     $thumb_aspect = round(($thumb_width/$thumb_height), 1); 

     if ($src_aspect < $thumb_aspect){ 
      //higher than thumb 
      $new_size = array ($thumb_width, ($thumb_width/$src_size[0]) * $src_size[1]); 
      $src_pos = array (0, (($new_size[1] - $thumb_height) * ($src_size[1]/$new_size[1]))/2); 
     }else if ($src_aspect > $thumb_aspect){ 
      // wider than thumb 
      $new_size = array(($thumb_width/$src_size[1]) * $src_size[0], $thumb_height); 
      $src_pos = array((($new_size[0] - $thumb_width) * ($src_size[0]/$new_size[0]))/2, 0); 
     }else{ 
      // same shape as thumb 
      $new_size = array($thumb_width, $thumb_height); 
      $src_pos = array(0, 0); 
     } 

     if ($new_size[0] < 1) $new_size[0] = 1; 
     if ($new_size[1] < 1) $new_size[1] = 1; 

     $thumb = imagecreatetruecolor($thumb_width, $thumb_height); 
     imagecopyresampled($thumb, $src, 0, 0, $src_pos[0], $src_pos[1], $new_size[0], $new_size[1], $src_size[0], $src_size[1]); 

     if ($src_size['mime'] === 'image/jpeg'){ 
      imagejpeg($thumb, "thumbs/{$_GET[ 'img' ]}"); 
     }else if ($src_size['mime'] === 'image/png'){ 
      imagepng($thumb, "thumbs/{$_GET[ 'img' ]}"); 
     }else if ($src_size['mime'] === 'image/gif'){ 
      imagegif($thumb, "thumbs/{$_GET[ 'img' ]}"); 
     } 

     header("Location: thumbs/{$_GET[ 'img' ]}"); 
    } 

    die(); 
} 

if (is_dir('./thumbs') === false){ 
    mkdir('./thumbs', 0744); 
} 

$images = glob('*.{jpg, jpeg, png, gif}', GLOB_BRACE); 

?> 

      <?php 

      foreach ($images as $image){ 
       if (file_exists("./thumbs/{image}")){ 
        echo "<a href=\"{$image}\"><img src=\"thumbs/{$image}\" alt=\"{$image}\" /></a>"; 
       }else{ 
        echo "<a href=\"{$image}\"><img src=\"?img={$image}\" alt=\"{$image}\" /></a>"; 

       } 
      } 

      ?> 

答えて

0

あなたには1つの提案があります。
ギャラリー」 をするために一つのテーブルを作成し、イメージ名についてのデータを挿入しても、USER_IDと、このUSER_ID は、ログインしたユーザーのIDとなり、 特定のユーザーがログインしているときは、セッションから取り出すことができるということ。これが道あなたです特定のユーザーを使用して画像 ギャラリーがログインして管理することができます。あなたがより多くの 助けが必要なら、私に教えてください...乾杯

<?php 
    $uid = $_SESSION['uid']; 
    $query = mysql_query("SELECT * FROM images WHERE user_id=".$uid); 
?> 

をここで、あなただけの特定のユーザーに対して表示画像のための結果セットの上に使用することができます。

+0

こんにちはMilap、返信いただきありがとうございます!だから私はちょうどアップロードフォルダ内のすべての画像を表示する上の私のPHPコードを掲載した。データベースの設定が完了したら、指定したユーザーの画像のみを表示するためにこのコードを変更する必要がありますか? :) –

+0

私の編集した回答を参照してください.. – Milap

関連する問題