#php
#php
Вопрос:
Я использую следующий код для загрузки файла в текстовую область на моей странице. это работает так, как должно. однако мне нужно иметь возможность вносить изменения в загруженный файл и сохранять его.
проблема, с которой я сталкиваюсь, заключается в том, что я могу загрузить файл в текстовую область, но я не могу его сохранить, и я продолжаю получать эту ошибку: Error opening file in write mode!
Это мой текущий код:
Код PHP:
$fn = $_GET['p'];
if (isset($_POST['content']))
{
$content = stripslashes($_POST['content']);
$fp = fopen($fn,"w") or die ("Error opening file in write mode!");
fputs($fp,$content);
fclose($fp) or die ("Error closing file!");
}
HTML-КОД:
<a href="?p=PAGE.html">PAGE.html</a>
<textarea id="code" style="width:450px;" rows="25" cols="50" name="content"><?php readfile($fn); ?></textarea>
Приведенный выше код загрузит PAGE.html
в текстовую область, если вы нажмете на <a></a>
ссылку, но это не позволит мне вносить изменения в файл.
но если я изменю $ fn = $_GET['p'];
на $fn = 'PAGE.html';
, все будет работать нормально, и я смогу вносить изменения в загруженный файл и сохранять его без каких-либо ошибок.
может кто-нибудь посоветовать по этому вопросу?
Спасибо
Ответ №1:
Это потому, что когда вы публикуете файл, он не добавляет имя страницы, поэтому переменная $ _GET будет пустой, когда вы отправите ее для сохранения.
При нажатии на ссылку он отображается как переменная $ _GET.
Но когда вы публикуете форму, вы больше не публикуете с переменной $ _GET. Поэтому вместо этого просто включите его в форму как скрытое поле и используйте $_REQUEST, чтобы получить его, независимо от того, является ли оно $ _GET или $ _POST
Итак, вот так…
$fn = $_REQUEST['page'];
и ваш html к этому…
<a href="?page=PAGE.html">PAGE.html</a>
<input type="hidden" name="page" value="<?php echo $fn;?>" />
<textarea id="code" style="width:450px;" rows="25" cols="50" name="content"><?php readfile($fn); ?></textarea>
Комментарии:
1. Ты спасатель жизни. ценю это.