PHP - сохранение ввода в отдельные файлы с именем даты - PullRequest
0 голосов
/ 18 ноября 2018

Я сделал код в 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";

1 Ответ

0 голосов
/ 18 ноября 2018

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

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

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

...