Создание пользовательской области галереи PHP? - PullRequest
0 голосов
/ 03 марта 2012

Некоторые, пожалуйста, помогите мне с кодированием ниже кусок!

Так что на данный момент у меня есть место, где участники могут настроить профиль, который отображает всю имеющуюся там информацию. Теперь я хочу дать пользователю возможность загружать изображения. и иметь персональную галерею.

Все учебники, которые я нашел, показывают только, как сделать загрузку изображений. И не конкретно для пользователей, что в этой галерее будут работать другие люди.

Полагаю, для этого понадобится база данных, чтобы сделать ее конкретной для пользователя? или отработать переменную $ _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>";

                }
            }

            ?>

1 Ответ

0 голосов
/ 03 марта 2012

У меня есть одно предложение для вас.
Создайте одну таблицу для " Галерея " и вставьте данные об имени изображения, а также user_id и этот user_id будет идентификатором зарегистрированного пользователя и который вы можете получить из сессии, когда конкретный пользователь вошел в систему. Это способ, которым вы можете управлять своим изображением Галерея с конкретным пользователем вошел в систему. Дайте мне знать, если вам нужно больше помогите .. Ура

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

Здесь вы можете использовать вышеуказанный набор результатов для отображения изображений только для конкретного пользователя.

...