Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ошибка при определении файла

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: mkdir
Mister
Отправлено: 21 Апреля, 2010 - 07:48:29
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2007  
Откуда: Сухиничи Калуж.обл.


Помог: 0 раз(а)

[+]


Проблема подобная как и с выводом из CSV файла в другой теме, раньше всё работало нормально, в т.ч. и на старом хостинге, теперь не работает.

Сам скрипт сначала определяет создан каталог, а потом если каталог создан, то записывает туда закачанный файл, но при выполнении выдаёт ошибку:

Warning: mkdir() [function.mkdir]: File exists in /home/p3326/www/suhinichi-online .ru/zakaz/admin/add.php on line 90

Warning: Cannot modify header information - headers already sent by (output started at /home/p3326/www/suhinichi-online.ru/zakaz/admin/index.php:90) in /home/p3326/www/suhinichi-online .ru/zakaz/admin/add.php on line 110


Код:
PHP:
скопировать код в буфер обмена
  1.                 if (!file_exists('../$month'))
  2.                         {
  3. 90                      mkdir("../$month", 0777);
  4. 91                      //$month = "fdgh";
  5. 92                      }
  6. 93              if ((copy($_FILES['uploadfile']['tmp_name'], $path)))
  7. 94                      {
  8. 95                      unlink($_FILES['uploadfile']['tmp_name']);
  9. 96                      chmod($path, 0644);
  10. 97                      } else
  11. 98                      {
  12. 99                      $error = "<b>Ошибка! Файл не передан серверу.<b>";
  13. 100                     }
  14. 101             $size = floor(($_FILES['uploadfile']['size'])/1024);
  15. 102             $izv_date = date("Y-m-d");
  16. 103             $insert_query = mysql_query("INSERT INTO meropr VALUES (NULL , '$meropr' , '$path' , '$size' , '$ext' , '$dc' , '$izv_date');");
  17. 104             //include("header.tpl");
  18. 105-108 комментарии
  19. 109             unset ($_REQUEST['upload']);
  20. 110             header("Location: index.php?done=view");               
  21. 111             exit();

Подскажите пожалуйста, что делаю не так? на локальном компе всё работает и на другом хостинге тоже.


-----
..я не специалист, а только учусь
 
 Top
Мелкий Супермодератор
Отправлено: 21 Апреля, 2010 - 09:52:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




if (!file_exists('../$month'))
так вы преверяете наличие директории ../$month, а не того значения, что будет в этой переменной, в одиночных кавычках подстановки переменных не происходит.


-----
PostgreSQL DBA
 
 Top
Mister
Отправлено: 21 Апреля, 2010 - 11:37:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2007  
Откуда: Сухиничи Калуж.обл.


Помог: 0 раз(а)

[+]


Да да, именно идёт проверка наличия такого каталога. $month это переменная содержащая название каталога. Но почему-то он говорит, что каталог не найден и дальше всё не работает.


-----
..я не специалист, а только учусь
 
 Top
JustUserR
Отправлено: 21 Апреля, 2010 - 13:50:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Mister пишет:
Но почему-то он говорит, что каталог не найден и дальше всё не работает.
Может быть две причины - или basedir не соответствует пути где лежит текущий PHP-скрипт или нет прав на чтения данного каталога (А если нет прав на исполнения не нельзя получить список файлов в каталоге)


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
AdMeen
Отправлено: 21 Апреля, 2010 - 14:02:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 370
Дата рег-ции: Сент. 2009  
Откуда: Воронеж


Помог: 1 раз(а)




Mister пишет:
Да да, именно идёт проверка наличия такого каталога. $month это переменная содержащая название каталога. Но почему-то он говорит, что каталог не найден и дальше всё не работает.


вам же сказали '../$month' это именно '../$month', вне зависимости от того что у вас там в переменной. исправьте на "../$month" и будет вам счастье.
 
 Top
JustUserR
Отправлено: 21 Апреля, 2010 - 14:09:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Одиночные кавычки конечно не подставляют значения переменной Если очень хотити можете сделать chdir в родительский каталог и не использовать подстановку значения из строки


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Мелкий Супермодератор
Отправлено: 21 Апреля, 2010 - 14:32:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Mister пишет:
Но почему-то он говорит, что каталог не найден и дальше всё не работает.

сделайте

сильно удивитесь результату Подмигивание

(Отредактировано автором: 21 Апреля, 2010 - 14:32:46)



-----
PostgreSQL DBA
 
 Top
Mister
Отправлено: 21 Апреля, 2010 - 14:55:29
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2007  
Откуда: Сухиничи Калуж.обл.


Помог: 0 раз(а)

[+]


Блин, бывает же такое! Одна ошибка ушла, теперь говорит что у меня с заголовками что-то не так.
PHP:
скопировать код в буфер обмена
  1. 109             header("Location: index.php?done=view");

Warning: Cannot modify header information - headers already sent by (output started at /home/p3326/www/suhinichi-online.ru/zakaz/admin/index.php:90) in /home/p3326/www/suhinichi-online .ru/zakaz/admin/add_doc.php on line 109
и дальше работа скрипта останавливается.

Повторюсь, раньше в другой версии работало всё идеально.

(Отредактировано автором: 21 Апреля, 2010 - 14:55:51)



-----
..я не специалист, а только учусь
 
 Top
CenapaTop
Отправлено: 21 Апреля, 2010 - 15:11:23
Post Id



Частый гость


Покинул форум
Сообщений всего: 166
Дата рег-ции: Авг. 2009  


Помог: 1 раз(а)




В 90 строке сделан вывод в браузер.
 
 Top
Mister
Отправлено: 21 Апреля, 2010 - 16:53:47
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2007  
Откуда: Сухиничи Калуж.обл.


Помог: 0 раз(а)

[+]


CenapaTop пишет:
В 90 строке сделан вывод в браузер.

Это ещё почему это?


-----
..я не специалист, а только учусь
 
 Top
JustUserR
Отправлено: 21 Апреля, 2010 - 17:20:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Mister В таком случае если проект небольшой то желательно пересмотреть его архитектуру и сделать так чтобы заголовки всегда выводились вначала - но если изменять очень много то используйте буферизацию или для данного случая удобнее использовать JS-перенаправление
Помните что причиной вывода может быть не только echo но и любой символ между ?> <?php или до и после них


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Mister
Отправлено: 21 Апреля, 2010 - 17:51:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2007  
Откуда: Сухиничи Калуж.обл.


Помог: 0 раз(а)

[+]


Проверил, header -ов много и перед ними местами кое-где выводятся данные.

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


-----
..я не специалист, а только учусь
 
 Top
JustUserR
Отправлено: 22 Апреля, 2010 - 13:23:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Mister пишет:
Проверил, header -ов много и перед ними местами кое-где выводятся данные.
Теперь надо подумать, что написать вместо них, чтобы также переадресация была.
Самый удобный и несложный способ заключается в использовании JS-скрипта который будет выполнять перенаправление на нужную страницу
Можно использовать следующий JS-скрипт для выполнения такого перенаправления - он удобен тем что не дожидается полной загрузки страницы - и при этом запускается когда JS-скриптинг уже загружен
CODE (html):
скопировать код в буфер обмена
  1. <script>
  2. window.url_redir="http://someurl"
  3. window.redir=function() {window.location.href=url_redir}
  4. window.setTimeout("redir()",100)
  5. </script>
Можно дополнить его автоматическим определенем ткущего хоста при перенаправлении - или к примеру использовать тег <meta>


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB