Как остановить выполнение кода, когда форма не отправлена? - PullRequest
2 голосов
/ 17 декабря 2010

Я настоящий новичок с PHP, так что вот так.

У меня есть скрипт для редактирования файла с формой для того, что помещать в файл, но каждый раз, когда я захожу на страницу, он запускает скрипт и очищает файл перед тем, как вставить его.

Кроме того, как мне заставить его отправлять на другие страницы, а не только на страницу, которую я сделал?

<?php

$ourFileName = $_GET['page'];
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
$stringData = $_POST['stuff'];
fwrite($ourFileHandle, $stringData);
fclose($ourFileHandle);

?>

<form action="edit.php?page=index.html" method="post">
<textarea name="stuff" rows="10" cols="50" wrap="virtual" maxlength="300"></textarea>
<input name="submit" type="submit" value="Submit"> 
</form>

Ответы [ 2 ]

2 голосов
/ 17 декабря 2010

Требуется флаг a+ для второго аргумента.

Открыть для чтения и записи;поместите указатель файла в конец файла.Если файл не существует, попытайтесь создать его.

Кроме того, использование параметра GET для открытия файла оставляет вас открытыми для всех видов уязвимостей, таких как атаки обхода каталога и запись в существующие файлы PHP (которые вTurn может позволить злонамеренному пользователю делать все, что может делать PHP).

Вы также должны убедиться, что эти переменные установлены перед тем, как обращаться к ним (и, следовательно, открывать файл и писать без необходимости).

if (isset($_GET['page']) AND isset($_POST['stuff'])) { ... }

Чтобы отправить на другие страницы, измените атрибут form action, чтобы он указывал на новую страницу.

0 голосов
/ 17 декабря 2010

Поместите код управления файлами в if (isset $_POST['stuff']) {...}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...