PHP - я не могу сохранить содержимое из ввода

Я борюсь с проблемой на моем веб-сайте. Я должен создать форму для заполнения, которая будет отображать новую информацию / новости. У меня такой код:

    <?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) Когда он начнет работать - как я могу позволить кому-то удалять новости с сайта, не открывая код? /онлайн/

Заранее спасибо :)

В вашем коде есть ошибки. например: <input type = text input name = "title" value = <? = $ title?> должен быть <input type = "text" name = "title" value = "<? = $ title?>">

Sfili_81 27.11.2018 10:16

И опечатка "fwirte". Используйте fread, а не include, чтобы получить содержимое вашего файла. Вместо этого я бы подумал о записи данных в БД.

Patrick 27.11.2018 10:19
stackoverflow.com/questions/45360673/…
Patrick 27.11.2018 10:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
121
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте этот код:

<?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 файлы не создаются.

user10670124 27.11.2018 10:41

Удалите папку / новости /, автоматически создайте папку php с правильным разрешением. Если не работает, снова распечатайте этот print_r($_SERVER['DOCUMENT_ROOT']) и покажите мне результат.

Davide 27.11.2018 10:47

И активная ошибка показа в php. (добавьте это в первую строку файла) ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);

Davide 27.11.2018 10:48

Ну, я удалил папку, и она снова появилась, но все равно файлы там не сохраняются. Я не уверен, где мне следует print_r ... В моем файле?

user10670124 27.11.2018 10:55

Вставьте ошибку отображения ini_set в ваш файл (первая строка после <? Php). И print_r в вашем файле var print_r($_SERVER['DOCUMENT_ROOT'])

Davide 27.11.2018 10:59

Я пытался это сделать, но в PHP мне нечего делать. Он ничего не показывает, и я работаю на школьном сервере, поэтому я не уверен, что он будет отображать что-нибудь.

user10670124 27.11.2018 11:12

@KimikoSourire, я редактирую свой исходный ответ. Повторите попытку нового кода ... теперь работает?

Davide 27.11.2018 11:30

Большое спасибо! Вы действительно сделали это . Теперь он работает, и мне очень жаль - я новичок в PHP, и задачи, которые мы получаем в университете, для меня слишком сложны. Еще раз спасибо за вашу помощь

user10670124 27.11.2018 15:14

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

user10670124 27.11.2018 15:18

@KimikoSourire как заменить? Файл создается на основе данных времени и миллисекунд!

Davide 27.11.2018 16:50

Другие вопросы по теме