форум вебмастероff на AlfaSpace.NET

Ubuntu и Linux |реактивный бесплатный хостинг | Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга | правила форума

  Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ °
Форум вебмастеров на AlfaSpace.NET / Служба спасения 911 / загрузка файлов на хостинг, выбор подпапки в форме, php
Автор Сообщение
snowman
Участник

25
# Дата: 11 Апр 2008 01:36


Наверное раздел не самый подходящий. Но я не так давно начал вникать в php, где-то неделю назад. И вот теперь думаю я или хостинг виноват

Надо загрузить файл (картинку) в подпапку, соотвествующую разделу фотогалереи.
Раздела пока два.

На локальной машине все отлично работает. А на хостинге игнорирует кусочек $dir и грузит в папку photogallery, без подпапки. В двойных кавычках - тоже игнорирует.

[html]<h2>Форма для загрузки фотографий</h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="500000">
<input type="file" name="filename" id="upload"><BR><BR>
<select size="3" name="dir">
<option value="interer">Интерьер</option>
<option value="portret">Портрет</option>
</select><BR><BR>
<input type="submit" value="загрузить">
</form>[/html]


[php]
<?php

chdir ("../photogallery/".$dir);

if(copy($HTTP_POST_FILES ["filename"] ["tmp_name"], $HTTP_POST_FILES ["filename"] ["name"]))
{
echo("Файл успешно загружен в папку $dir");
}
else
{
echo("Ошибка загрузки файла");
}
$rdir = getcwd();
echo ("<BR>Полный путь до нее: $rdir");
?>[/php]

В какую папку грузит я сделал вывод в отладочных целях
Если этот кусочек добавить не в chdir а в copy, то выдает ошибку этой фунции. Если сделать нечто вроде

[php]if($dir=portret){
chdir ("../photogallery/portret/);
}
else if (и т.д.) {
и т.п.
}[/php]

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

как будто переменной $dir не передается значение. или я что-то не написал чтоб его принимать или хостинг гонит.

если что этот сценарий находится в запароленой директории /admin/
поэтому проверок особых пока нет

Cryptex
Участник

253
# Дата: 11 Апр 2008 10:51


Ты прав, тут ей не передаётся значение из-за выключенной Register globals. Как лечится:

Например $dir = $_REQUEST["dir"];

madman
Участник

217
# Дата: 11 Апр 2008 16:23


snowman

1.
» snowman
то грузит в первый упомянутый раздел какой бы не был выбран.

В PHP оператор сравнения "==", а не "="

2. Зачем ты используеш chdir я не понимаю.
Вот тебе описание функции copy:
bool copy ( string $source , string $dest )
Поэтому нужно делать так

copy($_FILES["filename"]["tmp_name"], $dir."/".$_FILES["filename"]["name"]);

3. Лутше использовать суперглобальный масив $_FILES

4. Я б заменил конструкцию if ... elseif на switch

Ваш ответ

Quote  Bold Style  Italic Style  Underlined Style  URL Link  Email Link  Script AutoTab  Preformatted Text  Отменить *Что это?
... Запретить смайлы


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:23620, gzipped size:8298

Mp3 Download || Webs Studio™ || Song's Lyrics
eXTReMe Tracker Rambler's Top100 Рейтинг@Mail.ru Форум ТвойWeb [Valid RSS]