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

Ошибка в простом скрипте

14.12.2012, 09:59. Показов 806. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Есть код загрузки файла и очистки все загружает но не удаляет файл из папки в чем ошибка не могу разобраться((

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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>
 
<body>
 
<h2><p><b> Форма для загрузки файлов </b></p></h2>
      <form action="" method="post" enctype="multipart/form-data">
      <input type="file" name="filename"><br> 
      <input type="submit" value="Загрузить"><br>
      </form>
      
       
      
 
<?php
 
 
   if($_FILES["filename"]["size"] > 1024*3*1024)
   {
     echo ("Размер файла превышает три мегабайта");
     exit;
   }
   // Проверяем загружен ли файл
   if(is_uploaded_file($_FILES["filename"]["tmp_name"]))
   {
     // Если файл загружен успешно, перемещаем его
     // из временной директории в конечную
     
     #===============================
     
     # путь и имя файла оригинальной картинки
$source_src ="{$_FILES["filename"]["tmp_name"]}"; //'path_2_source_image/source_image_file.gif';
# считываем параметры (высота/ширина, тип и т.п.)
# оригинальной картинки
$params = getimagesize($source_src);
# в зависимости от типа оригинальной картинки
# применяем соответствующую функцию для считывания
# и создания изображения с которым будем работать
switch ( $params[2] ) 
    {
    case 1: $source = imagecreatefromgif($source_src); break;
    case 2: $source = imagecreatefromjpeg($source_src); break;
    case 3: $source = imagecreatefrompng($source_src); break;
        }
# максимально допустимый размер
# (по ширине/высоте) уменьшенной картинки
$max_size = 500;
# если ширина или высота оригинальной картинки
# больше ограничения производим вычисления
if ( $params[0]>$max_size || $params[1]>$max_size ) 
    {
    # выбираем большее: ширины или высота
    # оригинальной картинки
    if ( $params[0]>$params[1] ) $size = $params[0]; # ширина
        else $size = $params[1]; # высота
    # используя нехитрую пропорцию вычислям
    # ширину и высоту уменьшенной картинки
    $resource_width = floor($params[0] * $max_size / $size);
    $resource_height = floor($params[1] * $max_size / $size);
 
    $resource = imagecreatetruecolor($resource_width, $resource_height); // создание «подкладки»
 
    # изменение размера и копирование полученного на «подкладку»
    imagecopyresampled($resource, $source, 0, 0, 0, 0,$resource_width, $resource_height, $params[0], $params[1]);
    }
    # если изменять размер не надо просто присваиваем переменной
    # $resource идентификатор оригинальной картинки
        else $resource = $source;
        
#----Генерация случайных чисел-----
$qwer= mt_rand(1, 15000000);
#----------------------------------     
 
# путь и имя файла уменьшенной картинки
$resource_src = 'news/'.$qwer.'.jpg';
# выводит уменьшенную картинку
imagejpeg($resource, $resource_src);
#===============================
 
#++++++++++++++++++++++++++++++++
 
 
           
        list($width, $height) = getimagesize('news/'.$qwer.'.jpg');
                if($width>$height)
                {
                    $image = 'width = "200"';
                }
                else
                {
                    $image = 'height = "200"';
                }
        
#$imgname="news/'.$qwer.'.jpg";
$imgname="news/{$qwer}.jpg";
            
            echo
            
            '<div style="float:left;width:210px;height:220px; border:1px solid red;" align="center">
                <img '.$image.' src="news/'.$qwer.'.jpg" />
                <br/>
                <b style="font:10px Verdana;">'.$qwer.'.jpg</b>
            </div>';
    
    
 
#++++++++++++++++++++++++++++++++
 
 
 
 
     }
 
   #  move_uploaded_file($_FILES["filename"]["tmp_name"], "/path/to/file/".$_FILES["filename"]["name"]);
  
   else
   
    {
      echo("Ошибка загрузки файла");
 
   } 
?>
 
 <form action="" method="post" name="imag"  >
      <input type="submit" value="очистить изображение" name="imag2"><br>
      </form>
 
 
<?php
 
 
if(isset($_POST['imag2']))
{
unlink($imgname);
//print '<meta http-equiv=Refresh content="2; URL=index.php">';
//exit(); 
 
 
}
 
 
?>
 
 
 
 
</body>
</html>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2012, 09:59
Ответы с готовыми решениями:

Ошибка в простом скрипте php
Почему сервер выдает ошибку: &quot;Fatal error: Cannot redeclare link() in /var/www/php/function.php on...

Не генерируются числа в простом скрипте
Скрипт на моем ПК работает, а на хостинге выдает ошибку. &lt;?php error_reporting(-1); ...

Найти ошибку в простом скрипте
class Builder{ ... 4 var $host=&quot;localhost&quot;; 5 var $db=&quot;database1&quot;; 6 var $dsn =...

Ошибка в простом коде ( } )
Здравствуйте! Выдается вот такая ошибка: Parse error: syntax error, unexpected '{', expecting '('...

17
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
14.12.2012, 12:35 2
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<form action="" method="post" name="imag"  >
      <input type="submit" value="очистить изображение" name="imag2"><br>
      </form>
 
 
<?php  
if(isset($_POST['imag2']))
{
unlink($imgname); 
}
 
 
?>
ну так откуда он возьмет имя файла $imgname ?
0
1 / 1 / 4
Регистрация: 01.06.2012
Сообщений: 150
14.12.2012, 13:23  [ТС] 3
Цитата Сообщение от crautcher Посмотреть сообщение
ну так откуда он возьмет имя файла $imgname ?
C Верху в других php ковычках.
0
5 / 5 / 1
Регистрация: 30.10.2009
Сообщений: 27
14.12.2012, 13:27 4
Переменная "видна" в части удаления?
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
14.12.2012, 13:29 5
пхп создаст переменную только если
PHP
1
if(is_uploaded_file($_FILES["filename"]["tmp_name"]))
иначе она пустая
1
1 / 1 / 4
Регистрация: 01.06.2012
Сообщений: 150
14.12.2012, 13:29  [ТС] 6
Цитата Сообщение от BoL4oNoK Посмотреть сообщение
Переменная "видна" в части удаления?
Да когда нажимаю кнопку очистить изображения и ставлю код вот так он мне показывает в сообщении что
PHP
1
echo ($imgname);
равен new/123456789.jpg

PHP
1
2
3
4
5
6
7
8
9
10
11
echo ($imgname);
if(isset($_POST['imag'])) 
{
 
unlink($imgname);
print '<meta http-equiv=Refresh content="2; URL=index.php">';
exit(); 
}
else
{
}
но когда ставлю
PHP
1
echo ($imgname);
после условия if он мне уже переменную не показывает что в ней.
0
5 / 5 / 1
Регистрация: 30.10.2009
Сообщений: 27
14.12.2012, 13:35 7
Пробуйте передать путь к файлу через форму удаления. Похоже, Вы отправляете форму на удаления и, соответственно, в скрипте переменная $imgname недоступна, так как она инициализируется только при загрузке файла. Пересмотрите логику скрипта.
1
1 / 1 / 4
Регистрация: 01.06.2012
Сообщений: 150
14.12.2012, 13:36  [ТС] 8
Ок спасибо за совет буду переделывать. мож что нибудь и выдет. если что отпишусь.
0
5 / 5 / 1
Регистрация: 30.10.2009
Сообщений: 27
14.12.2012, 13:43 9
Просто когда вы файл загрузили - скрипт знает что такое $imgname и она живет до конца выполнения скрипта. А когда отправляете форму "удалить" - скрипт уже не знает что ему удалять надо, потому что для него переменная не инициализирована. Например можно попробовать так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php 
$imgname = 'new/filename.jpg';
?>
 
<form action="" method="post" name="imag"  >
      <input type='hidden' name='filename' value='<?=$imgname ?>' >
      <input type="submit" value="очистить изображение" name="imag2"><br>
</form>
<?php
if (isset($_POST['imag2']) && isset($_POST['filename'])) {
unlink($_POST['filename']);
print '<meta http-equiv=Refresh content="2; URL=index.php">';
exit(); 
}
else
{
?>
1
1 / 1 / 4
Регистрация: 01.06.2012
Сообщений: 150
14.12.2012, 13:50  [ТС] 10
Добавлено через 43 секунды
BoL4oNoK, Таки работает спасибо. BoL4oNoK
0
5 / 5 / 1
Регистрация: 30.10.2009
Сообщений: 27
14.12.2012, 13:51 11
cezer, не за что))
0
1 / 1 / 4
Регистрация: 01.06.2012
Сообщений: 150
14.12.2012, 13:53  [ТС] 12
Цитата Сообщение от BoL4oNoK Посмотреть сообщение
cezer, не за что))
Слушай а не подскажешь ка избавиться от обновления страницы просто если нажимаю обновить страниwe браузер говорит что данные будут отосланны повторно.
0
5 / 5 / 1
Регистрация: 30.10.2009
Сообщений: 27
14.12.2012, 14:39 13
например, в конце редирект на саму себя
PHP
1
2
header('Location: /page.php');
exit();
0
1 / 1 / 4
Регистрация: 01.06.2012
Сообщений: 150
14.12.2012, 15:36  [ТС] 14
Цитата Сообщение от BoL4oNoK Посмотреть сообщение
например, в конце редирект на саму себя
PHP
1
2
header('Location: /page.php');
exit();
Спасибо. Как проверить на пустоту вот это:
PHP
1
2
3
4
'<div style="float:left;width:222px;height:200px; border:1px solid red;" align="center">
                <img '.$image.' src="news/'.$qwer.'.jpg" />
                <b style="font:10px Verdana;">'.$qwer.'.jpg</b>
            </div>';
ну т.е. если пустой имейдж то кнопки обзор и загрузить изображения есть на странице, если изображение есть то кнопоки обзор и загрузить убрать со страницы. как такой код будет выглядеть?

Добавлено через 10 минут
Цитата Сообщение от BoL4oNoK Посмотреть сообщение
например, в конце редирект на саму себя
PHP
1
2
header('Location: /page.php');
exit();

Спасибо. Как проверить на пустоту вот это:

PHP
1
2
3
4
'<div style="float:left;width:222px;height:200px; border:1px solid red;" align="center">
                <img '.$image.' src="news/'.$qwer.'.jpg" />
                <b style="font:10px Verdana;">'.$qwer.'.jpg</b>
            </div>';
ну т.е. если пустой имейдж то кнопки обзор и загрузить изображения есть на странице, если изображение есть то кнопоки обзор и загрузить убрать со страницы. как такой код будет выглядеть?
0
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
14.12.2012, 15:43 15
PHP
1
if (empty($image)) {........
0
1 / 1 / 4
Регистрация: 01.06.2012
Сообщений: 150
14.12.2012, 15:45  [ТС] 16
Цитата Сообщение от alpex Посмотреть сообщение
PHP
1
if (empty($image)) {........
Так понял спасибо, а как отключать кнопки?
0
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
14.12.2012, 15:48 17
PHP
1
2
3
4
5
if (empty($image)) {
// если нет image то пишем код кнопок
{ else {
// если есть image знач пишем что то другое
}
1
1 / 1 / 4
Регистрация: 01.06.2012
Сообщений: 150
14.12.2012, 15:51  [ТС] 18
Цитата Сообщение от alpex Посмотреть сообщение
PHP
1
2
3
4
5
if (empty($image)) {
// если нет image то пишем код кнопок
{ else {
// если есть image знач пишем что то другое
}
Такие простые вещи а я и не знал) спасибо alpex!
0
14.12.2012, 15:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2012, 15:51
Помогаю со студенческими работами здесь

Ошибка в скрипте
Синтаксическая ошибка echo

Ошибка в скрипте
Всем привет. Есть скрипт: &lt;?php if ( have_posts() ) : // если имеются записи в блоге. ...

Ошибка в скрипте
http://img.pixs.ru/storage/9/7/4/rezultatJP_2727123_323974.jpg Так должен выглядеть результат,...

Ошибка в скрипте
Использую скрипт из данной статьи с хабра http://habrahabr.ru/post/136395/ $imgw =...


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

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