PHP — сохранение ввода в отдельные файлы с именем даты

Я сделал код в PHP, где вход сохраняется в файл «новости». Теперь я хотел бы изменить его так, чтобы каждый вход сохранялся в отдельный файл в специальной папке (новости), имя которой начинается с даты.

Я написал что-то вроде этого, но это не работает (файл не создается)

<?php
include "0begin.php";

$title=$_POST["title"];
isset($title) or $title=$_GET["title"];
$msg=$_POST["msg"];

?>
<h1>News</h1>

<form method=post>
Title<br><input type=text input name="title" value=<?=$title?> ><br>
Message<br>
<textarea input name="msg" cols=40 rows=5> </textarea><br>
<input type="submit">
<br><br>
</form>

<?php
$msg = $_POST['msg'];
$dateposted = date("YmdHis");
$fp = fopen("$dateposted.txt", "w");
fwrite($fp,$title, $msg).'&nbsp;';
fclose($fp);
?>
<?php
include "0end.php";

0

Решение

Я думаю, что ваша проблема заключается в fopen и fwrite, которые вы используете.
fopen ("$dateposted.txt","w") создаст вам файл с именем $ dateposted.txt. Я думаю, что вы скорее хотите fopen($dateposted."txt","w"),

Поскольку файл не создан, я бы проверил права доступа к папке назначения и изменил бы их, если пользователю, который запускает скрипт, например, apache в linux, не разрешено писать туда. Или задайте полный путь назначения, чтобы убедиться, что файл сохранен в правильном назначении.

Еще одна вещь, касающаяся fwrite. Из того, что я знаю, fwrite принимает 2 параметра. Файл и строка. Третий возможный параметр — максимальная длина добавляемых байтов. В вашем случае я бы назвал fwrite один раз для заголовка и один раз для сообщения. Кроме того, конкатенация строк в fwrite мне кажется неправильной, так как я предполагаю, что объединенная строка должна быть в файле, который вам нужно написать, например, fwrite($fp, $title.'&nbsp;');

0

Другие решения

Других решений пока нет …