2012-03-21 2 views
1

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

<?php 
$userid = $_GET['UID']; 

$img_path = "./$userid"; 

chdir($img_path); 

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

foreach ($images as $image){ 
    if (file_exists("./thumbs/$img_path/{image}")){ 
     echo "<a href='$img_path/{$image}' rel='lightbox'><img src='./thumbs/$img_path/{$image}' alt=\"{$image}\" /></a>"; 
    } else { 
     echo "<a href='$img_path/{$image}' rel='lightbox'><img src='./$img_path/{$image}' width='200' height='150' alt=\"{$image}\" /></a>"; 
    } 
} 
?> 
+1

попробовать 'Unlink ($ файла)' функция для удаления – safarov

+2

Если я иду в URL вашего скрипта и добавить? UID = id_of_some_user_i_know_has_privilaged_access к URL, вы будете иметь довольно плохой день. – GordonM

+0

И где бы я мог разместить это? нужен ли он для этого один? –

ответ

2

Создание тега привязки в галерее с имя файла в качестве атрибута идентификации. например.

<?php 
$userid = $_GET['UID']; 

$img_path = "./$userid"; 

chdir($img_path); 

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

foreach ($images as $image){ 
    if (file_exists("./thumbs/$img_path/{image}")){ 
     echo "<a href='$img_path/{$image}' rel='lightbox'><img src='./thumbs/$img_path/{$image}' alt=\"{$image}\" /></a>"; 
     //add this line 
     echo "<a href='$img_path/{$image}?delete=$image' rel='lightbox'>Delete</a>";  
    } else { 
     echo "<a href='$img_path/{$image}' rel='lightbox'><img src='./$img_path/{$image}' width='200' height='150' alt=\"{$image}\" /></a>"; 
    } 
} 

//Updated and fixed the error, there was missing closing bracket here. 
if(isset($_GET['delete'])) { 
    $image = $_GET['delete']; 
    unlink('./thumbs/'.$img_path.'/'.$image); 
} 
+0

Дайте мне минуту, я получаю ошибку Parse: синтаксическая ошибка, неожиданная '{' on if (isset ($ _ GET ['delete']) {с вашим кодом, поэтому мне нужно просто выяснить, что не так с ним –

+0

У меня есть ошибка синтаксического анализа с вашим условием // для удаления файла –

+0

, вероятно, ошибка означает отсутствие двоеточия или закрывающей скобки. Можете ли вы показать мне точную ошибку? –

0

создать кнопку удаления внутри тегов привязки, которая направляет страницу удаления сценария, передав URL изображения, или идентификатор изображения в качестве параметра ...

<a href="http://example.com/delete.php?type=image&id=1">Delete this image</a> 

Внутри этого скрипта вам может потребоваться изменить права доступа к файлу/директории: http://php.net/manual/en/function.chmod.php

перед удалением (отмена) файла: http://www.php.net/manual/en/function.unlink.php.

Затем отправить пользователя обратно на исходную страницу с помощью вызова заголовка(): http://php.net/manual/en/function.header.php

+0

Большое вам спасибо за ваш ответ, я думаю, что могу все это подделать, только один маленький вопрос с вашей ссылкой на удаление изображения, как я могу отправить URL-адрес изображения динамически на эту строку? –

+0

похоже, что вы просто используете ту же самую ссылку, которую вы демпируете внутри тега : 'Delete this image' –

2

Вы можете использовать unlink функцию PHP:

<?php 
unlink('./' . $img_path . '/' . $image); 
unlink('./thumbs/' . $img_path . '/' . $image); 
?> 
+0

И затем я добавляю кнопку удаления в HTML под изображением, которое вызывает эту функцию? –

+0

Да, как то, что отвечает Ибрагим под моим сообщением. Это все :) –

Смежные вопросы