littus
Новичок
Доброго всем дня!
Есть файл gowhere.inc.php он у меня инклюдится в главный index.php при передаче методом GET cоответствующего id
(в частности query string у меня выглядит так: http://localhost/Level_1_Bau/index.php?id=gowhere).
Все файлы,которые инклюдятся,включая и gowhere.inc.php у меня лежат в отдельной папке [includes]
В самом файле gowhere.inc.php у меня лежит форма загрузки различных файлов на сервер и скрипт PHP-перемещение оных в другую, специально отведенную папку (в корневом каталоге сайта) под названием [upload].
Содержимое файла gowhere.inc.php:
if($_SERVER['REQUEST_METHOD']=='POST'){ // если была отправлена форма с загрузкой определенного файла на сервер
echo "<pre>"; print_r($_FILES); echo "<pre>"; //информация о загруженной файле (для наглядности)
$tmp_name = $_FILES['user_file']['tmp_name'];
$name = $_FILES['user_file']['name'];
move_uploaded_file($tmp_name, '../upload/'.$name);
}
?>
<form action='includes/gowhere.inc.php' method='POST' enctype='multipart/form-data'>
<input type='file' name='user_file'>
<input type='submit'>
</form>
1.Стал искать в обучающих материалах, там ссылка на обработку в форме отправки <form action.....> шла как: <?= $_SERVER['PHP_SELF'] ?>. Все хорошо
и правильно, но,поскольку у меня здесь контент файла gowhere.inc.php инклюдится по id, то серверная глоб.переменная $_SERVER['PHP_SELF'] меня просто
забрасывает на оснновную индексную страницу index.php, что не мудрено и никакого перемещения файла в мою папку [upload] не происходит.
2.Понимая, что мне надо считать то, что стоит в query string, попробовал другую серверную глоб.переменную поставить: $_SERVER['REQUEST_URI'].
Выдает 2 ошибки, первую, что не может открыть файл gowhere.inc.php (хотя полный путь к нему указывает точно !!??). Вторую, соответственно тянет за собою,
что не может переместить указанный файл в мою папку [upload].
Warning: move_uploaded_file(upload/form_aus-1.doc) [function.move-uploaded-file]: failed to open stream: No such file or directory in Z:\home\localhost\www\Level_1_Bau\includes\gowhere.inc.php on line 7
3.Если же просто ставлю в <form action.....> относительный путь на свой файл gowhere.inc.php:
<form action='includes/gowhere.inc.php' method='POST' enctype='multipart/form-data'> , то все работает и файл попадает куда нужно, однако и
оставляет меня,соответственно, на этом файле: http://localhost/Level_1_Bau/includes/gowhere.inc.php, а тут у меня только и только форма отправки,и мне нужно остаться именно на прежнем месте: http://localhost/Level_1_Bau/index.php?id=gowhere
Наверное можно сделать сразу же перезапрос страницы, отослав заголовок с $_SERVER['PHP_SELF'], но у меня он не отошлется на данном этапе,- до этого инклюда куча вывода контента в браузер.
хотелось бы знать как грамотно в данном примере и вообще прописать в <form action.....> и не хардить код простым includes/gowhere.inc.php, тем более, что это проблему не решает и перекидывает не туда куда надо.
Спасибо.
Есть файл gowhere.inc.php он у меня инклюдится в главный index.php при передаче методом GET cоответствующего id
(в частности query string у меня выглядит так: http://localhost/Level_1_Bau/index.php?id=gowhere).
Все файлы,которые инклюдятся,включая и gowhere.inc.php у меня лежат в отдельной папке [includes]
В самом файле gowhere.inc.php у меня лежит форма загрузки различных файлов на сервер и скрипт PHP-перемещение оных в другую, специально отведенную папку (в корневом каталоге сайта) под названием [upload].
Содержимое файла gowhere.inc.php:
if($_SERVER['REQUEST_METHOD']=='POST'){ // если была отправлена форма с загрузкой определенного файла на сервер
echo "<pre>"; print_r($_FILES); echo "<pre>"; //информация о загруженной файле (для наглядности)
$tmp_name = $_FILES['user_file']['tmp_name'];
$name = $_FILES['user_file']['name'];
move_uploaded_file($tmp_name, '../upload/'.$name);
}
?>
<form action='includes/gowhere.inc.php' method='POST' enctype='multipart/form-data'>
<input type='file' name='user_file'>
<input type='submit'>
</form>
1.Стал искать в обучающих материалах, там ссылка на обработку в форме отправки <form action.....> шла как: <?= $_SERVER['PHP_SELF'] ?>. Все хорошо
и правильно, но,поскольку у меня здесь контент файла gowhere.inc.php инклюдится по id, то серверная глоб.переменная $_SERVER['PHP_SELF'] меня просто
забрасывает на оснновную индексную страницу index.php, что не мудрено и никакого перемещения файла в мою папку [upload] не происходит.
2.Понимая, что мне надо считать то, что стоит в query string, попробовал другую серверную глоб.переменную поставить: $_SERVER['REQUEST_URI'].
Выдает 2 ошибки, первую, что не может открыть файл gowhere.inc.php (хотя полный путь к нему указывает точно !!??). Вторую, соответственно тянет за собою,
что не может переместить указанный файл в мою папку [upload].
Warning: move_uploaded_file(upload/form_aus-1.doc) [function.move-uploaded-file]: failed to open stream: No such file or directory in Z:\home\localhost\www\Level_1_Bau\includes\gowhere.inc.php on line 7
3.Если же просто ставлю в <form action.....> относительный путь на свой файл gowhere.inc.php:
<form action='includes/gowhere.inc.php' method='POST' enctype='multipart/form-data'> , то все работает и файл попадает куда нужно, однако и
оставляет меня,соответственно, на этом файле: http://localhost/Level_1_Bau/includes/gowhere.inc.php, а тут у меня только и только форма отправки,и мне нужно остаться именно на прежнем месте: http://localhost/Level_1_Bau/index.php?id=gowhere
Наверное можно сделать сразу же перезапрос страницы, отослав заголовок с $_SERVER['PHP_SELF'], но у меня он не отошлется на данном этапе,- до этого инклюда куча вывода контента в браузер.
хотелось бы знать как грамотно в данном примере и вообще прописать в <form action.....> и не хардить код простым includes/gowhere.inc.php, тем более, что это проблему не решает и перекидывает не туда куда надо.
Спасибо.