//Подключаем файл конфигурации
include("config.inc.php");
//Подключаем файл с функциями
include("functions.inc.php");
//Указываем рабочую папку по умолчанию
if($_GET['url']) {$url = $_GET['url']; }
...
//Создание папок
if($_GET['mkdir'])
{
if(!$_POST['add']) {
echo '<br/><form name="" action="?mkdir=1" method="post">';
echo 'Имя новой папки:<br/>';
echo '<input name="ndir" type="text" value="" maxleight="25">';
echo '<input name="url" type="hidden" value="'.$_GET['url'].'"><br/>';
echo '<input type="submit" name="add" value="создать"></form>';
}
else {
if(makedir($_POST['url']."/".$_POST['ndir']) == TRUE) {
@header("location:index.php?url=".$_POST['url']);}
else {echo 'Ошибка <br/>';}
}}
functions.inc.php:
//Функция создания папки
function makedir ($url){
//Вырезаем пробелы и хтмл-тэги
$url = trim(htmlspecialchars($url));
//Если папка создается возвращаем TRUE, иначе FALSE
if(@mkdir($url)){return TRUE;}
else{return FALSE;} }
и config.inc.php:
<?php
$url="data";
?>
При создании папки всегда показывается папка data. Подскажите, пожалуйста, как сделать так, чтобы открывалась та папка, в которую и помещается новая папка (например, data/first/1)?
Спустя 6 часов, 22 минуты, 32 секунды (27.12.2010 - 09:36) linker написал(а):
Если не работает header, то здесь
@header("location:index.php?url=".$_POST['url']);удали @ и увидишь может быть ошибку.
Спустя 15 минут, 36 секунд (27.12.2010 - 09:52) wplounge написал(а):
1. Чтобы создать папку first в папке data, папка data уже должна быть создана. Создать вышенаписанным путем папку data, в ней папку first, а в ней папку 1 не получится.
2. header должен быть в начале скрипта, до того, как выводился какой-либо HTML, иначе скрипт работать не будет.
3. что такое @header и @mkdir? - непонятно
2. header должен быть в начале скрипта, до того, как выводился какой-либо HTML, иначе скрипт работать не будет.
3. что такое @header и @mkdir? - непонятно
Спустя 20 минут, 36 секунд (27.12.2010 - 10:12) linker написал(а):
@ означает подавление вывода ошибок.
Спустя 47 минут, 12 секунд (27.12.2010 - 11:00) Las написал(а):
Цитата |
удали @ и увидишь может быть ошибку. |
Без @ выводит предупреждение
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\exemple\index.php:1) in Z:\home\localhost\www\exemple\index.php on line 49
поэтому я ее и поставил. На строке 49 находится
@header("location:index.php?url=".$_POST['url']);
Цитата |
1. Чтобы создать папку first в папке data, папка data уже должна быть создана. Создать вышенаписанным путем папку data, в ней папку first, а в ней папку 1 не получится. 2. header должен быть в начале скрипта, до того, как выводился какой-либо HTML, иначе скрипт работать не будет. 3. что такое @header и @mkdir? - непонятно |
1. Папка data уже создана. код свою основную функцию выполняет. Проблема в том, что после создания папки открывается index.php вместо ndex.php?url=".$_POST['url']
2. Поместить header выше просто некуда.
3. mkdir - обработчик формы
Спустя 3 минуты, 25 секунд (27.12.2010 - 11:03) sharki написал(а):
Las
Ну вот видишь ты увидел почему у тебя ошибка, а не идти на форум и спрашивать почему же не срабатывает)
Ответ на твой вопрос был выше а именно:
Ну вот видишь ты увидел почему у тебя ошибка, а не идти на форум и спрашивать почему же не срабатывает)
Ответ на твой вопрос был выше а именно:
Цитата |
2. header должен быть в начале скрипта, до того, как выводился какой-либо HTML, иначе скрипт работать не будет. |
Немного подправлю, может и не в начале, главное чтобы ничего не выводилось перед header'ом (текст и т.д) убери все подавления ошибок и еще раз проанализируй код.
Если вообще @опа то можно сделать перенапряжение JS кодом.
Спустя 22 минуты, 51 секунда (27.12.2010 - 11:26) wplounge написал(а):
Цитата |
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\exemple\index.php:1) in Z:\home\localhost\www\exemple\index.php on line 49 |
Вот это сообщение и говорит о том, что header не в начале скрипта, или действительно где-то перед ним выводится html (Кстати, это предупреждение может вызывать даже лишний пробел).
Цитата |
Проблема в том, что после создания папки открывается index.php вместо ndex.php?url=".$_POST['url'] |
Так и должно быть. У тебя же index.php, после того как папка создана, никак $_POST['url'] не обрабатывает, т.е. $_POST['url'] просто пропадает.
Вот эта строчка
if($_GET['url']) {$url = $_GET['url']; }просто присвоит значение $_POST['url'] переменной $url, которая дальше нигде не используется.
Если хочешь, чтобы выводилось содержимое папки, в header вместо index.php?url=".$_POST['url'] выведи просто $_POST['url']
Спустя 35 минут, 38 секунд (27.12.2010 - 12:01) Las написал(а):
Цитата (wplounge @ 27.12.2010 - 08:26) |
Вот это сообщение и говорит о том, что header не в начале скрипта, или действительно где-то перед ним выводится html (Кстати, это предупреждение может вызывать даже лишний пробел). |
Спасибо! С header у меня нелады, сделал перенаправление через js.
Цитата (sharki @ 27.12.2010 - 08:03) |
Если вообще @опа то можно сделать перенапряжение JS кодом. |
Спасибо за совет.