PHP Echo внутри абзаца не работает со всеми записями

У меня есть простая форма, вот так;

<div class = "formholder">
        <form action = "column1.php" method = "post">
        <input type = "text" placeholder = "URL:" name = "url" required = ""><br>
        <input type = "text" placeholder = "Job Title:" name = "title" required = ""><br>
        <input type = "text" placeholder = "Job Site & Additional Details" name = "details"><br>
        <br>
        <input type = "submit"><br>
        </form>
        </div>

Затем эта форма обрабатывается column1.php, который содержит следующий PHP;

<?php
$url = $_POST["url"];
$title = $_POST["title"];
$details = $_POST ["details"];
$timestamp =date('l jS \of F Y h:i:s A');
$text = "<a href='{$url}'>{$title}</a><br><br> ".($details)." <br> At: {$timestamp} <br><br><hr><br> \n";
$file = fopen("./data/column1.html","a+ \n");
 fwrite($file, $text);
 fclose($file);
?>

Затем на странице я хочу показать материалы, которые я использую;

 <p class = "linktext"><?php echo file_get_contents("./data/column1.html"); ?></p>

CSS для моего класса linktext таков;

.linktext {
    font-family: 'Roboto', serif;
    font-size: 1vw;
    text-align: center;
    margin-top: 0px;
    margin-bottom: 0px;
    color: #FFFFFF;
    padding-left: 2vh;
    padding-right: 2vh;
    padding-bottom: 0.5vh;
    line-height: 1em;
}

@media only screen and (max-width: 500px) {
.linktext {
    font-family: 'Roboto', serif;
    font-size: 4vw;
    text-align: center;
    margin-top: 0px;
    margin-bottom: 0px;
    color: #FFFFFF;
    padding-left: 1vh;
    padding-right: 1vh;
    padding-bottom: 0.5vh;
    line-height: 1em;
}
}

По какой-то причине эхо работает нормально для первого результата, но как только будет отправлено второе представление, оно не будет отображаться правильно.

Файл с ответами выглядит так после двух отправок;

<a href='URL'>Job Title 1</a><br><br> Job Details <br> At: Thursday 30th of May 2019 10:33:47 PM <br><br><hr><br> 
<a href='URL'>Job Title 2</a><br><br> Job Details <br> At: Thursday 30th of May 2019 10:34:00 PM <br><br><hr><br> 

Но показывает это;

PHP Echo внутри абзаца не работает со всеми записями

Я не знаю, почему это решило не работать в других местах, с тем же типом формы, стиль работал просто отлично.

Любая помощь будет оценена по этому поводу, потому что я застрял.

Скорее всего, ваш код выводит искаженный HTML. Можете ли вы опубликовать актуальный список ссылок?

j08691 30.05.2019 23:40

Попробуйте обернуть весь фрагмент <div> или <p> или чем-то еще на уровне блока.

prieber 30.05.2019 23:47

Эй, я добавил содержимое public_html для загрузки [здесь] (темный режим.16mb.com/public_html.zip), у меня это работало раньше, но вы, вероятно, правы. Вот рабочий пример [здесь] (darkmode.16mb.com/run)

tryingtogethelp 30.05.2019 23:56

Спасибо за предложение @prieber, но оно не сработало. Весь код доступен здесь или вы можете использовать демоверсию здесь

tryingtogethelp 31.05.2019 00:11

Я добавил стиля в веб-версию, чтобы она была более очевидной @j08691

tryingtogethelp 31.05.2019 01:05

HTML в вашем примере недействителен

j08691 31.05.2019 03:40
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Некоторые примечания к этой части кода:

$file = fopen("./data/column1.html","a+ \n");
fwrite($file, $text);
fclose($file);

Атрибут "a+ \n" недействителен. Вместо этого используйте "a+". А здесь ты только пишешь. Так что "a" идеально.

У вас нет управления ошибками, например

$file = fopen("./data/column1.html","a");
if (!$file)
{
    // error handling
}
else
{
    fwrite($file,$text);
    fclose($file);
}

При использовании file_put_contents() код становится короче:

if ( file_put_contents( "./data/column1.html", $text, FILE_APPEND ) === false )
{
    // error handling
}

Это вся полезная информация, но, похоже, она не связана с проблемой в вопросе.

Barmar 30.05.2019 23:56

Согласованный. Хорошие комментарии, но они не просили проверить код.

prieber 31.05.2019 00:17

Ценю ответ, PHP работает, поэтому я хотел бы оставить его, просто нужно соблюдать CSS.

tryingtogethelp 31.05.2019 00:19
Ответ принят как подходящий

Я понял. Скорее, чем;

<p class = "linktext"><?php echo file_get_contents("./data/column1.html"); ?></p>

Я могу просто использовать;

<div class = "linktext"><?php echo file_get_contents("./data/column1.html"); ?></div>

Он поддерживает все стили и будет работать на основе того же CSS для текстового класса.

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