У меня есть простая форма, как это;
<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>
Но показывает это;
Я не знаю, почему это решило не работать в других местах, с тем же типом формы, стиль работал просто отлично.
Любая помощь будет оценена по этому вопросу, потому что я застрял.
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 для текстового класса.
Некоторые примечания для этой части кода:
$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
}
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.