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

<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> 

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

A Screenshot of the error.

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

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

0
tryingtogethelp 31 Май 2019 в 00:37

2 ответа

Лучший ответ

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

<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 для текстового класса.

1
tryingtogethelp 31 Май 2019 в 15:58

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

$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
}
0
Wiimm 30 Май 2019 в 21:47