Я борюсь с проблемой на моем веб-сайте. Я должен создать форму для заполнения, которая будет отображать новую информацию / новости. У меня такой код:
<?php
include "0begin.php";
$title=$_POST["title"];
isset($title) or $title=$_GET["title"];
$msg=$_POST["msg"];
isset($msg) or $msg=$_GET["msg"];
?>
<h1>News</h1>
<form method = "POST">
Title<br><input type=text input name = "title" value=<?=$title?> ><br>
News<br>
<textarea input name = "msg" cols=40 rows=5> </textarea><br>
<input type = "submit">
<br><br>
</form>
<?php
$dateposted=date("YmdHis");
if (!empty($title) and !empty($msg)) {
$fp=fopen("/home/aqueen/public_html/news/".$dateposted."txt", "w");
fwrite($fp,$title,$msg);
fwirte($fp,$msg);
fclose($fp);
include "/home/aqueen/public_html/news/".$dateposted."txt"; }
?>
Мои вопросы: 1) Как я могу исправить этот код? Он создает новый файл, но без содержимого внутри. 2) Он не показывает новый файл на веб-сайте /, вероятно, не включает его должным образом / 3) Когда он начнет работать - как я могу позволить кому-то удалять новости с сайта, не открывая код? /онлайн/
Заранее спасибо :)
И опечатка "fwirte". Используйте fread, а не include, чтобы получить содержимое вашего файла. Вместо этого я бы подумал о записи данных в БД.






Попробуйте этот код:
<?php
//include "0begin.php";
$title = $_POST["title"];
$msg = $_POST["msg"];
?>
<h1>News</h1>
<form method = "POST">
Title<br>
<input type = "text" name = "title"><br>
News<br>
<textarea name = "msg" cols = "40" rows = "5"></textarea><br>
<input type = "submit">
<br><br>
</form>
<?php
$dateposted=date("YmdHis");
if (!empty($title) and !empty($msg)) {
if (!file_exists('news/')) {
mkdir("news/", 0755);
}
if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/news/")){
$pathGenerated = $_SERVER['DOCUMENT_ROOT'] . "/news/";
}
if (file_exists( "news/")){
$pathGenerated = "news/";
}
$pathGenerated = str_replace('//', '', $pathGenerated);
$fp=fopen($pathGenerated."".$dateposted.".txt", "w");
$textInsert = "Titolo: ".$title." \nMessaggio: ".$msg;
fwrite($fp,$textInsert);
fclose($fp);
include $pathGenerated."".$dateposted.".txt";
}
?>
Автоматически создать папку /news/, если она не существует.
Спасибо за ответ. К сожалению, похоже, что это не работает. В папке news файлы не создаются.
Удалите папку / новости /, автоматически создайте папку php с правильным разрешением. Если не работает, снова распечатайте этот print_r($_SERVER['DOCUMENT_ROOT']) и покажите мне результат.
И активная ошибка показа в php. (добавьте это в первую строку файла) ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
Ну, я удалил папку, и она снова появилась, но все равно файлы там не сохраняются. Я не уверен, где мне следует print_r ... В моем файле?
Вставьте ошибку отображения ini_set в ваш файл (первая строка после <? Php). И print_r в вашем файле var print_r($_SERVER['DOCUMENT_ROOT'])
Я пытался это сделать, но в PHP мне нечего делать. Он ничего не показывает, и я работаю на школьном сервере, поэтому я не уверен, что он будет отображать что-нибудь.
@KimikoSourire, я редактирую свой исходный ответ. Повторите попытку нового кода ... теперь работает?
Большое спасибо! Вы действительно сделали это . Теперь он работает, и мне очень жаль - я новичок в PHP, и задачи, которые мы получаем в университете, для меня слишком сложны. Еще раз спасибо за вашу помощь
У меня еще один вопрос - как его изменить, чтобы он не заменял один файл другим при отображении? Я хотел бы сохранить все, что отправлено на моем веб-сайте, и при отправке формы они заменяются
@KimikoSourire как заменить? Файл создается на основе данных времени и миллисекунд!
В вашем коде есть ошибки. например: <input type = text input name = "title" value = <? = $ title?> должен быть <input type = "text" name = "title" value = "<? = $ title?>">