Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 05.12.2015
Сообщений: 6
1

Unlink не работает на DENVER

05.12.2015, 11:13. Показов 2003. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Столкнулся с такой проблемой изучаю PHP по книге Мориссон.М-Изучаем PHP и MySQL есть глава в которой надо добавляь файлы на сервер и потом удалять их, с добавлением файлов все понятно а вот удаление через функцию unlink файлов из папки не происходит выдает ошибку
Warning: unlink(images/) [function.unlink]: Permission denied in Z:\home\gitar.loc\www\delete.php on line 40

скрипт для удаления файлов вот такой

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  <title>Удаление</title>
  <link rel="stylesheet"  type="text/css" href="css/style.css">
</head>
<body>
  <h2>Удаление рейтинга</h2>
  <hr />
  
<?php
require_once('appvar.php');
require_once('connectdb.php');
    //Извлечение данных рейтинга из суперглобального массива GET
    if(isset($_GET['id']) && isset($_GET['date']) && isset($_GET['name']) && isset($_GET['score']) && isset($_GET['img'])){
    $id = $_GET['id'];
    $date = $_GET['date'];
    $name = $_GET['name'];
    $score = $_GET['score'];
    $img = $_GET['img'];
    }
    else 
    if (isset($_POST['id']) && isset($_POST['name']) && isset($_POST['score'])){
    //извлечение данных из суперглобального массива POST
    $id = $_POST['id'];
    $name = $_POST['name'];
    $score = $_POST['score'];
 
    }else
    {
    echo '<p class="error">Извините не одного рейтинга не выбрано для удаления</p>';
    }
 
  
    if(isset($_POST['submit'])){
        if($_POST['confirm'] == 'Yes'){
        //Удаление с сервера файла изображения, подтверждающего рейтинга
        unlink(GW_UPLOADPATH . $img);
 
    //соединение с базой данных
        $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
        or die ('Нет соeдинение с базой данных');
 
        //извлечение данных из базы данных
        $query = "DELETE FROM reiting WHERE id = $id LIMIT 1";
        $result = mysqli_query($dbc, $query)
        or die ('Данные не добавлены');
        mysqli_close($dbc);
        
        //Вывод страницы подтверждения пользователю
        echo '<p>Рейтинг со значением' . $score . 'для пользователя' .
                    $name . 'был успешно удален из базы данных</p>';
        }
        else{
            echo '<p class="error">Рейтинг не удален</p>';
        }
    }
    else if (isset($id) && isset($name) && isset($date) && isset($score)){
        echo '<p>Вы увирены, что хотите удвалить этот рейтинг?</p>' .
                 '<p><strong>Имя:</strong>' . $name . '<br /><strong>Дата:</strong>' . $date .'<br /><strong>Рейтинг:</strong>' . $score . '</p>' .
                 '<form method="post" action="delete.php">'.
                 '<input type="radio" name="confirm" value="Yes" />Да' .
                 '<input type="radio" name="confirm" value="No" checked=""checked" />Нет<br/>' .
                 '<input type="submit" name="submit" value="Удалить" />' .
                 '<input type="hidden" name="id" value="' . $id . '" />' .
                 '<input type="hidden" name="name" value="' . $name . '" />' .
                 '<input type="hidden" name="score" value="' . $score . '" />' .
                 '</form>';
    }
    
    echo '<p><a href="adm.php">&lt;&lt;Назад к списку рейтингов</a></p>';
?>
 
</body>
</html>
содержания файла require_once('appvar.php');
define('GW_UPLOADPATH', 'images/');
define('GW_MAXFILESIZE', 1000000);
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2015, 11:13
Ответы с готовыми решениями:

Не работает unlink();
Как правильно пользоваться unlink()? Есть переменная:$selecting_user_avatar =...

Denver работает, но не могу выйти на PHPmyAdmin
Добрый вечер. Подскажите пожалуйста как решить проблемку. Denver работает но! Ни с того ни с...

Установил под Windows Denver, сам денвер работает, а phpmyadmin нет
Здравствуйте! проблема в следующем: установил под Windows Denver, сам денвер робит, а вот...

unlink
Что означает этот символ &quot;@&quot; стоящий перед unlink ? т.е. вот так @unlink($target_path)

10
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
05.12.2015, 11:29 2
А вопрос в чём? В ошибке всё написано, доступ запрещён т.е. не хватает прав.
0
0 / 0 / 0
Регистрация: 05.12.2015
Сообщений: 6
05.12.2015, 14:50  [ТС] 3
как выставить эти права

Добавлено через 3 часа 19 минут
Пересмотрел и перепробовал кучу вариантов помогите пожалуйста люди добрые
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
05.12.2015, 15:21 4
Цитата Сообщение от maverick1 Посмотреть сообщение
Пересмотрел и перепробовал кучу вариантов
измените права доступа к папке
0
0 / 0 / 0
Регистрация: 05.12.2015
Сообщений: 6
05.12.2015, 15:28  [ТС] 5
Изменял для этой папке права доступа все разрешил в том числе и к файлам внутри которы ы ней таже ошибка что я могу делать не так?
0
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
05.12.2015, 16:07 6
Цитата Сообщение от maverick1 Посмотреть сообщение
содержания файла require_once('appvar.php');
define('GW_UPLOADPATH', 'images/');
PHP
1
define('GW_UPLOADPATH', './images/');
Добавлено через 4 минуты
И ещё папку необходимо создать, если её нет.
PHP
1
@mkdir(GW_UPLOADPATH, 777);
0
0 / 0 / 0
Регистрация: 05.12.2015
Сообщений: 6
05.12.2015, 16:16  [ТС] 7
папка images она создана я внее изначально помещал картинки которые хотел удалить изменил код в файле appvar.php как вы и написали и дабавил строку
@mkdir(GW_UPLOADPATH, 777);
перед UNLINK увы таже ошибка
0
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
05.12.2015, 16:40 8
Цитата Сообщение от maverick1 Посмотреть сообщение
папка images она создана я внее изначально помещал картинки которые хотел удалить изменил код в файле appvar.php как вы и написали и дабавил строку
@mkdir(GW_UPLOADPATH, 777);
перед UNLINK увы таже ошибка
А файлы случайно не только для чтения? Свойства Название: readonly_checkbox_unchecked.jpg
Просмотров: 17

Размер: 4.0 Кб
0
0 / 0 / 0
Регистрация: 05.12.2015
Сообщений: 6
05.12.2015, 17:52  [ТС] 9
Нет галочка не стоит я это уже проверяли все запреты снял

Добавлено через 1 час 3 минуты
Из последнего сделаного:
1 Добавил фаил в папку images с название images.gif
2 в unlink(GW_UPLOADPATH . $img) прописал имя файла на прямую unlink(GW_UPLOADPATH . 'images.gif') в таком случае скрипт выполнился и фаил был удален из папки
Следовательно проблема в переменной $img как ее теперь переопределить
0
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
05.12.2015, 17:59 10
Лучший ответ Сообщение было отмечено maverick1 как решение

Решение

Что пишет
PHP
1
var_dump($img);
Вот здесь она у вас определяется...
PHP
1
    $img = $_GET['img'];
Добавлено через 3 минуты
PHP
1
    $img = $_POST['img'];
Попробуйте так.
0
0 / 0 / 0
Регистрация: 05.12.2015
Сообщений: 6
05.12.2015, 19:05  [ТС] 11
выдает туже ошибку что и в самом начале и значение NULL добавляет.
Да я понял где я ее определял так вопрос в другом почему не срабатывает

Добавлено через 23 минуты
Заменил на POST не чего скрипт перестал работать будем ковыряться дальше

Добавлено через 42 минуты
Хочу сказать всем большое спасибо кто помог в решении данной детской задачи. Скрипт заработал все файлы удалились.
Итог:
был добавлен следующий код
PHP
1
2
3
4
5
if(isset($_POST['submit'])){
        if($_POST['confirm'] == 'Yes'){
        //Удаление с сервера файла изображения, подтверждающего рейтинга
               [B] $img = $_POST['img'];[/B]
        unlink(GW_UPLOADPATH . $img);
а также пару строк в конце
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
else if (isset($id) && isset($name) && isset($date) && isset($score) [B]&& isset($img)[/B]){
        echo '<p>Вы увирены, что хотите удвалить этот рейтинг?</p>' .
                 '<p><strong>Имя:</strong>' . $name . '<br /><strong>Дата:</strong>' . $date .'<br /><strong>Рейтинг:</strong>' . $score . '<strong>Изображение:</strong>' . $img .'<br /></p>' .
                 '<form method="post" action="delete.php">'.
                 '<input type="radio" name="confirm" value="Yes" />Да' .
                 '<input type="radio" name="confirm" value="No" checked=""checked" />Нет<br/>' .
                 '<input type="submit" name="submit" value="Удалить" />' .
                 '<input type="hidden" name="id" value="' . $id . '" />' .
                 '<input type="hidden" name="name" value="' . $name . '" />' .
                 '<input type="hidden" name="score" value="' . $score . '" />' .
                 [B]'<input type="hidden" name="img" value="' . $img . '" />' .[/B]
                 '</form>';
    }
Надеюсь кому-то еще поможет, так как вопросов именно по этому скрипту, на других форумах задовалось много.
Всем спасибо тема закрыта.
0
05.12.2015, 19:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2015, 19:05
Помогаю со студенческими работами здесь

Unlink permission denied
Всем привет! При попытке удалить загруженные на сервер фото выдается ошибка Warning:...

Организация очереди с LINK/UNLINK в M/M/3
Здравствуйте! Довелось осваивать GPSS, возникли трудности с пониманием работы написанного.. ...

Работа со списком пользователя: блок UNLINK
Здравствуйте! Выполняя курсовую работу по GPSS столкнулась с непониманием принципа работы со...

Почему функция удаления названа Unlink
сабж


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru